xmmath 1.0.8 → 1.0.9

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.
package/dist/xmmath.es.js CHANGED
@@ -1,4 +1,4 @@
1
- const un = `{
1
+ const on = `{
2
2
  "wj": "⁠",
3
3
  "zwj": "‍",
4
4
  "zwnj": "‌",
@@ -827,91 +827,1588 @@ const un = `{
827
827
  "Im": "ℑ",
828
828
  "dotless": [{ "i": "𝚤", "j": "𝚥" }]
829
829
  }
830
+ `, an = `{
831
+ "abacus": "🧮",
832
+ "abc": "🔤",
833
+ "abcd": "🔡",
834
+ "ABCD": "🔠",
835
+ "accordion": "🪗",
836
+ "aesculapius": "⚕",
837
+ "airplane": [
838
+ "✈",
839
+ {
840
+ "landing": "🛬",
841
+ "small": "🛩",
842
+ "takeoff": "🛫"
843
+ }
844
+ ],
845
+ "alembic": "⚗",
846
+ "alien": ["👽", { "monster": "👾" }],
847
+ "ambulance": "🚑",
848
+ "amphora": "🏺",
849
+ "anchor": "⚓",
850
+ "anger": "💢",
851
+ "ant": "🐜",
852
+ "apple": [{ "green": "🍏", "red": "🍎" }],
853
+ "arm": [{ "mech": "🦾", "muscle": "💪", "selfie": "🤳" }],
854
+ "arrow": [
855
+ {
856
+ "r.filled": "➡",
857
+ "r.hook": "↪",
858
+ "r.soon": "🔜",
859
+ "l.filled": "⬅",
860
+ "l.hook": "↩",
861
+ "l.back": "🔙",
862
+ "l.end": "🔚",
863
+ "t.filled": "⬆",
864
+ "t.curve": "⤴",
865
+ "t.top": "🔝",
866
+ "b.filled": "⬇",
867
+ "b.curve": "⤵",
868
+ "l.r": "↔",
869
+ "l.r.on": "🔛",
870
+ "t.b": "↕",
871
+ "bl": "↙",
872
+ "br": "↘",
873
+ "tl": "↖",
874
+ "tr": "↗"
875
+ }
876
+ ],
877
+ "arrows": [{ "cycle": "🔄" }],
878
+ "ast": ["*", { "box": "✳" }],
879
+ "atm": "🏧",
880
+ "atom": "⚛",
881
+ "aubergine": "🍆",
882
+ "avocado": "🥑",
883
+ "axe": "🪓",
884
+ "baby": ["👶", { "angel": "👼", "box": "🚼" }],
885
+ "babybottle": "🍼",
886
+ "backpack": "🎒",
887
+ "bacon": "🥓",
888
+ "badger": "🦡",
889
+ "badminton": "🏸",
890
+ "bagel": "🥯",
891
+ "baggageclaim": "🛄",
892
+ "baguette": "🥖",
893
+ "balloon": "🎈",
894
+ "ballot": [{ "check": "☑" }],
895
+ "ballotbox": "🗳",
896
+ "banana": "🍌",
897
+ "banjo": "🪕",
898
+ "bank": "🏦",
899
+ "barberpole": "💈",
900
+ "baseball": "⚾",
901
+ "basecap": "🧢",
902
+ "basket": "🧺",
903
+ "basketball": ["⛹", { "ball": "🏀" }],
904
+ "bat": "🦇",
905
+ "bathtub": ["🛀", { "foam": "🛁" }],
906
+ "battery": ["🔋", { "low": "🪫" }],
907
+ "beach": [{ "palm": "🏝", "umbrella": "🏖" }],
908
+ "beads": "📿",
909
+ "beans": "🫘",
910
+ "bear": "🐻",
911
+ "beaver": "🦫",
912
+ "bed": ["🛏", { "person": "🛌" }],
913
+ "bee": "🐝",
914
+ "beer": ["🍺", { "clink": "🍻" }],
915
+ "beetle": ["🪲", { "lady": "🐞" }],
916
+ "bell": ["🔔", { "ding": "🛎", "not": "🔕" }],
917
+ "bento": "🍱",
918
+ "bicyclist": ["🚴", { "mountain": "🚵" }],
919
+ "bike": ["🚲", { "not": "🚳" }],
920
+ "bikini": "👙",
921
+ "billiards": "🎱",
922
+ "bin": "🗑",
923
+ "biohazard": "☣",
924
+ "bird": "🐦",
925
+ "bison": "🦬",
926
+ "blood": "🩸",
927
+ "blouse": "👚",
928
+ "blowfish": "🐡",
929
+ "blueberries": "🫐",
930
+ "boar": "🐗",
931
+ "boat": [
932
+ {
933
+ "sail": "⛵",
934
+ "row": "🚣",
935
+ "motor": "🛥",
936
+ "speed": "🚤",
937
+ "canoe": "🛶"
938
+ }
939
+ ],
940
+ "bolt": "🔩",
941
+ "bomb": "💣",
942
+ "bone": "🦴",
943
+ "book": [
944
+ {
945
+ "red": "📕",
946
+ "blue": "📘",
947
+ "green": "📗",
948
+ "orange": "📙",
949
+ "spiral": "📒",
950
+ "open": "📖"
951
+ }
952
+ ],
953
+ "bookmark": "🔖",
954
+ "books": "📚",
955
+ "boomerang": "🪃",
956
+ "bordercontrol": "🛂",
957
+ "bouquet": "💐",
958
+ "bow": "🏹",
959
+ "bowl": [{ "spoon": "🥣", "steam": "🍜" }],
960
+ "bowling": "🎳",
961
+ "boxing": "🥊",
962
+ "boy": "👦",
963
+ "brain": "🧠",
964
+ "bread": "🍞",
965
+ "brick": "🧱",
966
+ "bride": "👰",
967
+ "bridge": [{ "fog": "🌁", "night": "🌉" }],
968
+ "briefcase": "💼",
969
+ "briefs": "🩲",
970
+ "brightness": [{ "high": "🔆", "low": "🔅" }],
971
+ "broccoli": "🥦",
972
+ "broom": "🧹",
973
+ "brush": "🖌",
974
+ "bubble": [
975
+ {
976
+ "speech.r": "💬",
977
+ "speech.l": "🗨",
978
+ "thought": "💭",
979
+ "anger.r": "🗯"
980
+ }
981
+ ],
982
+ "bubbles": "🫧",
983
+ "bubbletea": "🧋",
984
+ "bucket": "🪣",
985
+ "buffalo": [{ "water": "🐃" }],
986
+ "bug": "🐛",
987
+ "builder": "👷",
988
+ "burger": "🍔",
989
+ "burrito": "🌯",
990
+ "bus": [
991
+ "🚌",
992
+ {
993
+ "front": "🚍",
994
+ "small": "🚐",
995
+ "stop": "🚏",
996
+ "trolley": "🚎"
997
+ }
998
+ ],
999
+ "butter": "🧈",
1000
+ "butterfly": "🦋",
1001
+ "button": ["🔲", { "alt": "🔳", "radio": "🔘" }],
1002
+ "cabinet": [{ "file": "🗄" }],
1003
+ "cablecar": ["🚠", { "small": "🚡" }],
1004
+ "cactus": "🌵",
1005
+ "cake": [
1006
+ "🎂",
1007
+ {
1008
+ "fish": "🍥",
1009
+ "moon": "🥮",
1010
+ "slice": "🍰"
1011
+ }
1012
+ ],
1013
+ "calendar": ["📅", { "spiral": "🗓", "tearoff": "📆" }],
1014
+ "camel": ["🐫", { "dromedar": "🐪" }],
1015
+ "camera": [
1016
+ "📷",
1017
+ {
1018
+ "flash": "📸",
1019
+ "movie": "🎥",
1020
+ "movie.box": "🎦",
1021
+ "video": "📹"
1022
+ }
1023
+ ],
1024
+ "camping": "🏕",
1025
+ "can": "🥫",
1026
+ "candle": "🕯",
1027
+ "candy": "🍬",
1028
+ "cane": "🦯",
1029
+ "car": [
1030
+ "🚗",
1031
+ {
1032
+ "front": "🚘",
1033
+ "pickup": "🛻",
1034
+ "police": "🚓",
1035
+ "police.front": "🚔",
1036
+ "racing": "🏎",
1037
+ "rickshaw": "🛺",
1038
+ "suv": "🚙"
1039
+ }
1040
+ ],
1041
+ "card": [{ "credit": "💳", "id": "🪪" }],
1042
+ "cardindex": "📇",
1043
+ "carrot": "🥕",
1044
+ "cart": "🛒",
1045
+ "cassette": "📼",
1046
+ "castle": [{ "eu": "🏰", "jp": "🏯" }],
1047
+ "cat": [
1048
+ "🐈",
1049
+ {
1050
+ "face": "🐱",
1051
+ "face.angry": "😾",
1052
+ "face.cry": "😿",
1053
+ "face.heart": "😻",
1054
+ "face.joy": "😹",
1055
+ "face.kiss": "😽",
1056
+ "face.laugh": "😸",
1057
+ "face.shock": "🙀",
1058
+ "face.smile": "😺",
1059
+ "face.smirk": "😼"
1060
+ }
1061
+ ],
1062
+ "chain": "🔗",
1063
+ "chains": "⛓",
1064
+ "chair": "🪑",
1065
+ "champagne": "🍾",
1066
+ "chart": [
1067
+ {
1068
+ "bar": "📊",
1069
+ "up": "📈",
1070
+ "down": "📉",
1071
+ "yen.up": "💹"
1072
+ }
1073
+ ],
1074
+ "checkmark": [{ "heavy": "✔", "box": "✅" }],
1075
+ "cheese": "🧀",
1076
+ "cherries": "🍒",
1077
+ "chess": "♟",
1078
+ "chestnut": "🌰",
1079
+ "chicken": [
1080
+ "🐔",
1081
+ {
1082
+ "baby": "🐥",
1083
+ "baby.egg": "🐣",
1084
+ "baby.head": "🐤",
1085
+ "leg": "🍗",
1086
+ "male": "🐓"
1087
+ }
1088
+ ],
1089
+ "child": "🧒",
1090
+ "chipmunk": "🐿",
1091
+ "chocolate": "🍫",
1092
+ "chopsticks": "🥢",
1093
+ "church": ["⛪", { "love": "💒" }],
1094
+ "cigarette": ["🚬", { "not": "🚭" }],
1095
+ "circle": [
1096
+ {
1097
+ "black": "⚫",
1098
+ "blue": "🔵",
1099
+ "brown": "🟤",
1100
+ "green": "🟢",
1101
+ "orange": "🟠",
1102
+ "purple": "🟣",
1103
+ "white": "⚪",
1104
+ "red": "🔴",
1105
+ "yellow": "🟡",
1106
+ "stroked": "⭕"
1107
+ }
1108
+ ],
1109
+ "circus": "🎪",
1110
+ "city": [
1111
+ "🏙",
1112
+ {
1113
+ "dusk": "🌆",
1114
+ "night": "🌃",
1115
+ "sunset": "🌇"
1116
+ }
1117
+ ],
1118
+ "clamp": "🗜",
1119
+ "clapperboard": "🎬",
1120
+ "climbing": "🧗",
1121
+ "clip": "📎",
1122
+ "clipboard": "📋",
1123
+ "clips": "🖇",
1124
+ "clock": [
1125
+ {
1126
+ "one": "🕐",
1127
+ "one.thirty": "🕜",
1128
+ "two": "🕑",
1129
+ "two.thirty": "🕝",
1130
+ "three": "🕒",
1131
+ "three.thirty": "🕞",
1132
+ "four": "🕓",
1133
+ "four.thirty": "🕟",
1134
+ "five": "🕔",
1135
+ "five.thirty": "🕠",
1136
+ "six": "🕕",
1137
+ "six.thirty": "🕡",
1138
+ "seven": "🕖",
1139
+ "seven.thirty": "🕢",
1140
+ "eight": "🕗",
1141
+ "eight.thirty": "🕣",
1142
+ "nine": "🕘",
1143
+ "nine.thirty": "🕤",
1144
+ "ten": "🕙",
1145
+ "ten.thirty": "🕥",
1146
+ "eleven": "🕚",
1147
+ "eleven.thirty": "🕦",
1148
+ "twelve": "🕛",
1149
+ "twelve.thirty": "🕧",
1150
+ "alarm": "⏰",
1151
+ "old": "🕰",
1152
+ "timer": "⏲"
1153
+ }
1154
+ ],
1155
+ "cloud": [
1156
+ "☁",
1157
+ {
1158
+ "dust": "💨",
1159
+ "rain": "🌧",
1160
+ "snow": "🌨",
1161
+ "storm": "⛈",
1162
+ "sun": "⛅",
1163
+ "sun.hidden": "🌥",
1164
+ "sun.rain": "🌦",
1165
+ "thunder": "🌩"
1166
+ }
1167
+ ],
1168
+ "coat": ["🧥", { "lab": "🥼" }],
1169
+ "cockroach": "🪳",
1170
+ "cocktail": [{ "martini": "🍸", "tropical": "🍹" }],
1171
+ "coconut": "🥥",
1172
+ "coffee": "☕",
1173
+ "coffin": "⚰",
1174
+ "coin": "🪙",
1175
+ "comet": "☄",
1176
+ "compass": "🧭",
1177
+ "computer": "🖥",
1178
+ "computermouse": "🖱",
1179
+ "confetti": "🎊",
1180
+ "construction": "🚧",
1181
+ "controller": "🎮",
1182
+ "cookie": ["🍪", { "fortune": "🥠" }],
1183
+ "cooking": "🍳",
1184
+ "cool": "🆒",
1185
+ "copyright": "©",
1186
+ "coral": "🪸",
1187
+ "corn": "🌽",
1188
+ "couch": "🛋",
1189
+ "couple": "💑",
1190
+ "cow": ["🐄", { "face": "🐮" }],
1191
+ "crab": "🦀",
1192
+ "crane": "🏗",
1193
+ "crayon": "🖍",
1194
+ "cricket": "🦗",
1195
+ "cricketbat": "🏏",
1196
+ "crocodile": "🐊",
1197
+ "croissant": "🥐",
1198
+ "crossmark": ["❌", { "box": "❎" }],
1199
+ "crown": "👑",
1200
+ "crutch": "🩼",
1201
+ "crystal": "🔮",
1202
+ "cucumber": "🥒",
1203
+ "cup": [{ "straw": "🥤" }],
1204
+ "cupcake": "🧁",
1205
+ "curling": "🥌",
1206
+ "curry": "🍛",
1207
+ "custard": "🍮",
1208
+ "customs": "🛃",
1209
+ "cutlery": "🍴",
1210
+ "cyclone": "🌀",
1211
+ "dancing": [{ "man": "🕺", "woman": "💃", "women.bunny": "👯" }],
1212
+ "darts": "🎯",
1213
+ "dash": [{ "wave.double": "〰" }],
1214
+ "deer": "🦌",
1215
+ "desert": "🏜",
1216
+ "detective": "🕵",
1217
+ "diamond": [
1218
+ {
1219
+ "blue": "🔷",
1220
+ "blue.small": "🔹",
1221
+ "orange": "🔶",
1222
+ "orange.small": "🔸",
1223
+ "dot": "💠"
1224
+ }
1225
+ ],
1226
+ "die": "🎲",
1227
+ "dino": [{ "pod": "🦕", "rex": "🦖" }],
1228
+ "disc": [{ "cd": "💿", "dvd": "📀", "mini": "💽" }],
1229
+ "discoball": "🪩",
1230
+ "diving": "🤿",
1231
+ "dodo": "🦤",
1232
+ "dog": [
1233
+ "🐕",
1234
+ {
1235
+ "face": "🐶",
1236
+ "guide": "🦮",
1237
+ "poodle": "🐩"
1238
+ }
1239
+ ],
1240
+ "dollar": "💲",
1241
+ "dolphin": "🐬",
1242
+ "donut": "🍩",
1243
+ "door": "🚪",
1244
+ "dove": [{ "peace": "🕊" }],
1245
+ "dragon": ["🐉", { "face": "🐲" }],
1246
+ "dress": ["👗", { "kimono": "👘", "sari": "🥻" }],
1247
+ "drop": "💧",
1248
+ "drops": "💦",
1249
+ "drum": ["🥁", { "big": "🪘" }],
1250
+ "duck": "🦆",
1251
+ "dumpling": "🥟",
1252
+ "eagle": "🦅",
1253
+ "ear": ["👂", { "aid": "🦻" }],
1254
+ "egg": "🥚",
1255
+ "eighteen": [{ "not": "🔞" }],
1256
+ "elephant": "🐘",
1257
+ "elevator": "🛗",
1258
+ "elf": "🧝",
1259
+ "email": "📧",
1260
+ "excl": [
1261
+ "❗",
1262
+ {
1263
+ "white": "❕",
1264
+ "double": "‼",
1265
+ "quest": "⁉"
1266
+ }
1267
+ ],
1268
+ "explosion": "💥",
1269
+ "extinguisher": "🧯",
1270
+ "eye": "👁",
1271
+ "eyes": "👀",
1272
+ "face": [
1273
+ {
1274
+ "grin": "😀",
1275
+ "angry": "😠",
1276
+ "angry.red": "😡",
1277
+ "anguish": "😧",
1278
+ "astonish": "😲",
1279
+ "bandage": "🤕",
1280
+ "beam": "😁",
1281
+ "blank": "😶",
1282
+ "clown": "🤡",
1283
+ "cold": "🥶",
1284
+ "concern": "😦",
1285
+ "cool": "😎",
1286
+ "cover": "🤭",
1287
+ "cowboy": "🤠",
1288
+ "cry": "😭",
1289
+ "devil.smile": "😈",
1290
+ "devil.frown": "👿",
1291
+ "diagonal": "🫤",
1292
+ "disguise": "🥸",
1293
+ "dizzy": "😵",
1294
+ "dotted": "🫥",
1295
+ "down": "😞",
1296
+ "down.sweat": "😓",
1297
+ "drool": "🤤",
1298
+ "explode": "🤯",
1299
+ "eyeroll": "🙄",
1300
+ "friendly": "☺",
1301
+ "fear": "😨",
1302
+ "fear.sweat": "😰",
1303
+ "fever": "🤒",
1304
+ "flush": "😳",
1305
+ "frown": "☹",
1306
+ "frown.slight": "🙁",
1307
+ "frust": "😣",
1308
+ "goofy": "🤪",
1309
+ "halo": "😇",
1310
+ "happy": "😊",
1311
+ "heart": "😍",
1312
+ "hearts": "🥰",
1313
+ "heat": "🥵",
1314
+ "hug": "🤗",
1315
+ "inv": "🙃",
1316
+ "joy": "😂",
1317
+ "kiss": "😗",
1318
+ "kiss.smile": "😙",
1319
+ "kiss.heart": "😘",
1320
+ "kiss.blush": "😚",
1321
+ "lick": "😋",
1322
+ "lie": "🤥",
1323
+ "mask": "😷",
1324
+ "meh": "😒",
1325
+ "melt": "🫠",
1326
+ "money": "🤑",
1327
+ "monocle": "🧐",
1328
+ "nausea": "🤢",
1329
+ "nerd": "🤓",
1330
+ "neutral": "😐",
1331
+ "open": "😃",
1332
+ "party": "🥳",
1333
+ "peek": "🫣",
1334
+ "plead": "🥺",
1335
+ "relief": "😌",
1336
+ "rofl": "🤣",
1337
+ "sad": "😔",
1338
+ "salute": "🫡",
1339
+ "shock": "😱",
1340
+ "shush": "🤫",
1341
+ "skeptic": "🤨",
1342
+ "sleep": "😴",
1343
+ "sleepy": "😪",
1344
+ "smile": "😄",
1345
+ "smile.slight": "🙂",
1346
+ "smile.sweat": "😅",
1347
+ "smile.tear": "🥲",
1348
+ "smirk": "😏",
1349
+ "sneeze": "🤧",
1350
+ "speak.not": "🫢",
1351
+ "squint": "😆",
1352
+ "stars": "🤩",
1353
+ "straight": "😑",
1354
+ "suffer": "😖",
1355
+ "surprise": "😯",
1356
+ "symbols": "🤬",
1357
+ "tear": "😢",
1358
+ "tear.relief": "😥",
1359
+ "tear.withheld": "🥹",
1360
+ "teeth": "😬",
1361
+ "think": "🤔",
1362
+ "tired": "😫",
1363
+ "tongue": "😛",
1364
+ "tongue.squint": "😝",
1365
+ "tongue.wink": "😜",
1366
+ "triumph": "😤",
1367
+ "unhappy": "😕",
1368
+ "vomit": "🤮",
1369
+ "weary": "😩",
1370
+ "wink": "😉",
1371
+ "woozy": "🥴",
1372
+ "worry": "😟",
1373
+ "wow": "😮",
1374
+ "yawn": "🥱",
1375
+ "zip": "🤐"
1376
+ }
1377
+ ],
1378
+ "factory": "🏭",
1379
+ "fairy": "🧚",
1380
+ "faith": [
1381
+ {
1382
+ "christ": "✝",
1383
+ "dharma": "☸",
1384
+ "islam": "☪",
1385
+ "judaism": "✡",
1386
+ "menorah": "🕎",
1387
+ "om": "🕉",
1388
+ "orthodox": "☦",
1389
+ "peace": "☮",
1390
+ "star.dot": "🔯",
1391
+ "worship": "🛐",
1392
+ "yinyang": "☯"
1393
+ }
1394
+ ],
1395
+ "falafel": "🧆",
1396
+ "family": "👪",
1397
+ "fax": "📠",
1398
+ "feather": "🪶",
1399
+ "feeding": [{ "breast": "🤱" }],
1400
+ "fencing": "🤺",
1401
+ "ferriswheel": "🎡",
1402
+ "filebox": "🗃",
1403
+ "filedividers": "🗂",
1404
+ "film": "🎞",
1405
+ "finger": [
1406
+ {
1407
+ "r": "👉",
1408
+ "l": "👈",
1409
+ "t": "👆",
1410
+ "t.alt": "☝",
1411
+ "b": "👇",
1412
+ "front": "🫵",
1413
+ "m": "🖕"
1414
+ }
1415
+ ],
1416
+ "fingers": [{ "cross": "🤞", "pinch": "🤌", "snap": "🫰" }],
1417
+ "fire": "🔥",
1418
+ "firecracker": "🧨",
1419
+ "fireengine": "🚒",
1420
+ "fireworks": "🎆",
1421
+ "fish": ["🐟", { "tropical": "🐠" }],
1422
+ "fishing": "🎣",
1423
+ "fist": [
1424
+ {
1425
+ "front": "👊",
1426
+ "r": "🤜",
1427
+ "l": "🤛",
1428
+ "raised": "✊"
1429
+ }
1430
+ ],
1431
+ "flag": [
1432
+ {
1433
+ "black": "🏴",
1434
+ "white": "🏳",
1435
+ "goal": "🏁",
1436
+ "golf": "⛳",
1437
+ "red": "🚩"
1438
+ }
1439
+ ],
1440
+ "flags": [{ "jp.crossed": "🎌" }],
1441
+ "flamingo": "🦩",
1442
+ "flashlight": "🔦",
1443
+ "flatbread": "🫓",
1444
+ "fleur": "⚜",
1445
+ "floppy": "💾",
1446
+ "flower": [
1447
+ {
1448
+ "hibiscus": "🌺",
1449
+ "lotus": "🪷",
1450
+ "pink": "🌸",
1451
+ "rose": "🌹",
1452
+ "sun": "🌻",
1453
+ "tulip": "🌷",
1454
+ "white": "💮",
1455
+ "wilted": "🥀",
1456
+ "yellow": "🌼"
1457
+ }
1458
+ ],
1459
+ "fly": "🪰",
1460
+ "fog": "🌫",
1461
+ "folder": ["📁", { "open": "📂" }],
1462
+ "fondue": "🫕",
1463
+ "foot": "🦶",
1464
+ "football": ["⚽", { "am": "🏈" }],
1465
+ "forex": "💱",
1466
+ "fountain": "⛲",
1467
+ "fox": "🦊",
1468
+ "free": "🆓",
1469
+ "fries": "🍟",
1470
+ "frisbee": "🥏",
1471
+ "frog": [{ "face": "🐸" }],
1472
+ "fuelpump": "⛽",
1473
+ "garlic": "🧄",
1474
+ "gear": "⚙",
1475
+ "gem": "💎",
1476
+ "genie": "🧞",
1477
+ "ghost": "👻",
1478
+ "giraffe": "🦒",
1479
+ "girl": "👧",
1480
+ "glass": [
1481
+ {
1482
+ "clink": "🥂",
1483
+ "milk": "🥛",
1484
+ "pour": "🫗",
1485
+ "tumbler": "🥃"
1486
+ }
1487
+ ],
1488
+ "glasses": ["👓", { "sun": "🕶" }],
1489
+ "globe": [
1490
+ {
1491
+ "am": "🌎",
1492
+ "as.au": "🌏",
1493
+ "eu.af": "🌍",
1494
+ "meridian": "🌐"
1495
+ }
1496
+ ],
1497
+ "gloves": "🧤",
1498
+ "goal": "🥅",
1499
+ "goat": "🐐",
1500
+ "goggles": "🥽",
1501
+ "golfing": "🏌",
1502
+ "gorilla": "🦍",
1503
+ "grapes": "🍇",
1504
+ "guard": [{ "man": "💂" }],
1505
+ "guitar": "🎸",
1506
+ "gymnastics": "🤸",
1507
+ "haircut": "💇",
1508
+ "hammer": ["🔨", { "pick": "⚒", "wrench": "🛠" }],
1509
+ "hamsa": "🪬",
1510
+ "hamster": [{ "face": "🐹" }],
1511
+ "hand": [
1512
+ {
1513
+ "raised": "✋",
1514
+ "raised.alt": "🤚",
1515
+ "r": "🫱",
1516
+ "l": "🫲",
1517
+ "t": "🫴",
1518
+ "b": "🫳",
1519
+ "ok": "👌",
1520
+ "call": "🤙",
1521
+ "love": "🤟",
1522
+ "part": "🖖",
1523
+ "peace": "✌",
1524
+ "pinch": "🤏",
1525
+ "rock": "🤘",
1526
+ "splay": "🖐",
1527
+ "wave": "👋",
1528
+ "write": "✍"
1529
+ }
1530
+ ],
1531
+ "handbag": "👜",
1532
+ "handball": "🤾",
1533
+ "handholding": [{ "man.man": "👬", "woman.man": "👫", "woman.woman": "👭" }],
1534
+ "hands": [
1535
+ {
1536
+ "folded": "🙏",
1537
+ "palms": "🤲",
1538
+ "clap": "👏",
1539
+ "heart": "🫶",
1540
+ "open": "👐",
1541
+ "raised": "🙌",
1542
+ "shake": "🤝"
1543
+ }
1544
+ ],
1545
+ "hash": "#",
1546
+ "hat": [{ "ribbon": "👒", "top": "🎩" }],
1547
+ "headphone": "🎧",
1548
+ "heart": [
1549
+ "❤",
1550
+ {
1551
+ "arrow": "💘",
1552
+ "beat": "💓",
1553
+ "black": "🖤",
1554
+ "blue": "💙",
1555
+ "box": "💟",
1556
+ "broken": "💔",
1557
+ "brown": "🤎",
1558
+ "double": "💕",
1559
+ "excl": "❣",
1560
+ "green": "💚",
1561
+ "grow": "💗",
1562
+ "orange": "🧡",
1563
+ "purple": "💜",
1564
+ "real": "🫀",
1565
+ "revolve": "💞",
1566
+ "ribbon": "💝",
1567
+ "spark": "💖",
1568
+ "white": "🤍",
1569
+ "yellow": "💛"
1570
+ }
1571
+ ],
1572
+ "hedgehog": "🦔",
1573
+ "helicopter": "🚁",
1574
+ "helix": "🧬",
1575
+ "helmet": [{ "cross": "⛑", "military": "🪖" }],
1576
+ "hippo": "🦛",
1577
+ "hockey": "🏑",
1578
+ "hole": "🕳",
1579
+ "honey": "🍯",
1580
+ "hongbao": "🧧",
1581
+ "hook": "🪝",
1582
+ "horn": [{ "postal": "📯" }],
1583
+ "horse": [
1584
+ "🐎",
1585
+ {
1586
+ "carousel": "🎠",
1587
+ "face": "🐴",
1588
+ "race": "🏇"
1589
+ }
1590
+ ],
1591
+ "hospital": "🏥",
1592
+ "hotdog": "🌭",
1593
+ "hotel": ["🏨", { "love": "🏩" }],
1594
+ "hotspring": "♨",
1595
+ "hourglass": ["⌛", { "flow": "⏳" }],
1596
+ "house": [
1597
+ "🏠",
1598
+ {
1599
+ "derelict": "🏚",
1600
+ "garden": "🏡",
1601
+ "multiple": "🏘"
1602
+ }
1603
+ ],
1604
+ "hundred": "💯",
1605
+ "hut": "🛖",
1606
+ "ice": "🧊",
1607
+ "icecream": ["🍨", { "shaved": "🍧", "soft": "🍦" }],
1608
+ "icehockey": "🏒",
1609
+ "id": "🆔",
1610
+ "info": "ℹ",
1611
+ "izakaya": "🏮",
1612
+ "jar": "🫙",
1613
+ "jeans": "👖",
1614
+ "jigsaw": "🧩",
1615
+ "joystick": "🕹",
1616
+ "juggling": "🤹",
1617
+ "juice": "🧃",
1618
+ "kaaba": "🕋",
1619
+ "kadomatsu": "🎍",
1620
+ "kangaroo": "🦘",
1621
+ "gachi": "🈷",
1622
+ "go": "🈴",
1623
+ "hi": "㊙",
1624
+ "ka": "🉑",
1625
+ "kachi": "🈹",
1626
+ "kara": "🈳",
1627
+ "kon": "🈲",
1628
+ "man1": "🈵",
1629
+ "muryo": "🈚",
1630
+ "shin": "🈸",
1631
+ "shuku": "㊗",
1632
+ "toku": "🉐",
1633
+ "yo": "🈺",
1634
+ "yubi": "🈯",
1635
+ "yuryo": "🈶",
1636
+ "koko": "🈁",
1637
+ "sa": "🈂",
1638
+ "kebab": "🥙",
1639
+ "key": ["🔑", { "old": "🗝" }],
1640
+ "keyboard": "⌨",
1641
+ "kiss": "💏",
1642
+ "kissmark": "💋",
1643
+ "kite": "🪁",
1644
+ "kiwi": "🥝",
1645
+ "knife": ["🔪", { "dagger": "🗡" }],
1646
+ "knot": "🪢",
1647
+ "koala": "🐨",
1648
+ "koinobori": "🎏",
1649
+ "label": "🏷",
1650
+ "lacrosse": "🥍",
1651
+ "ladder": "🪜",
1652
+ "lamp": [{ "diya": "🪔" }],
1653
+ "laptop": "💻",
1654
+ "a": "🅰",
1655
+ "ab": "🆎",
1656
+ "b": "🅱",
1657
+ "cl": "🆑",
1658
+ "o": "🅾",
1659
+ "leaf": [
1660
+ {
1661
+ "clover.three": "☘",
1662
+ "clover.four": "🍀",
1663
+ "fall": "🍂",
1664
+ "herb": "🌿",
1665
+ "maple": "🍁",
1666
+ "wind": "🍃"
1667
+ }
1668
+ ],
1669
+ "leftluggage": "🛅",
1670
+ "leg": ["🦵", { "mech": "🦿" }],
1671
+ "lemon": "🍋",
1672
+ "leopard": "🐆",
1673
+ "letter": [{ "love": "💌" }],
1674
+ "liberty": "🗽",
1675
+ "lightbulb": "💡",
1676
+ "lightning": "⚡",
1677
+ "lion": "🦁",
1678
+ "lipstick": "💄",
1679
+ "litter": ["🚮", { "not": "🚯" }],
1680
+ "lizard": "🦎",
1681
+ "llama": "🦙",
1682
+ "lobster": "🦞",
1683
+ "lock": [
1684
+ "🔒",
1685
+ {
1686
+ "key": "🔐",
1687
+ "open": "🔓",
1688
+ "pen": "🔏"
1689
+ }
1690
+ ],
1691
+ "lollipop": "🍭",
1692
+ "lotion": "🧴",
1693
+ "luggage": "🧳",
1694
+ "lungs": "🫁",
1695
+ "mage": "🧙",
1696
+ "magnet": "🧲",
1697
+ "magnify": [{ "r": "🔎", "l": "🔍" }],
1698
+ "mahjong": [{ "dragon.red": "🀄" }],
1699
+ "mail": ["✉", { "arrow": "📩" }],
1700
+ "mailbox": [
1701
+ {
1702
+ "closed.empty": "📪",
1703
+ "closed.full": "📫",
1704
+ "open.empty": "📭",
1705
+ "open.full": "📬"
1706
+ }
1707
+ ],
1708
+ "mammoth": "🦣",
1709
+ "man": [
1710
+ "👨",
1711
+ {
1712
+ "box": "🚹",
1713
+ "crown": "🤴",
1714
+ "guapimao": "👲",
1715
+ "levitate": "🕴",
1716
+ "old": "👴",
1717
+ "pregnant": "🫃",
1718
+ "turban": "👳",
1719
+ "tuxedo": "🤵"
1720
+ }
1721
+ ],
1722
+ "mango": "🥭",
1723
+ "map": [{ "world": "🗺", "jp": "🗾" }],
1724
+ "martialarts": "🥋",
1725
+ "masks": "🎭",
1726
+ "mate": "🧉",
1727
+ "matryoshka": "🪆",
1728
+ "meat": ["🥩", { "bone": "🍖" }],
1729
+ "medal": [
1730
+ {
1731
+ "first": "🥇",
1732
+ "second": "🥈",
1733
+ "third": "🥉",
1734
+ "sports": "🏅",
1735
+ "military": "🎖"
1736
+ }
1737
+ ],
1738
+ "megaphone": ["📢", { "simple": "📣" }],
1739
+ "melon": "🍈",
1740
+ "merperson": "🧜",
1741
+ "metro": "Ⓜ",
1742
+ "microbe": "🦠",
1743
+ "microphone": ["🎤", { "studio": "🎙" }],
1744
+ "microscope": "🔬",
1745
+ "milkyway": "🌌",
1746
+ "mirror": "🪞",
1747
+ "mixer": "🎛",
1748
+ "money": [
1749
+ {
1750
+ "bag": "💰",
1751
+ "dollar": "💵",
1752
+ "euro": "💶",
1753
+ "pound": "💷",
1754
+ "yen": "💴",
1755
+ "wings": "💸"
1756
+ }
1757
+ ],
1758
+ "monkey": [
1759
+ "🐒",
1760
+ {
1761
+ "face": "🐵",
1762
+ "hear.not": "🙉",
1763
+ "see.not": "🙈",
1764
+ "speak.not": "🙊"
1765
+ }
1766
+ ],
1767
+ "moon": [
1768
+ {
1769
+ "crescent": "🌙",
1770
+ "full": "🌕",
1771
+ "full.face": "🌝",
1772
+ "new": "🌑",
1773
+ "new.face": "🌚",
1774
+ "wane.one": "🌖",
1775
+ "wane.two": "🌗",
1776
+ "wane.three.face": "🌜",
1777
+ "wane.three": "🌘",
1778
+ "wax.one": "🌒",
1779
+ "wax.two": "🌓",
1780
+ "wax.two.face": "🌛",
1781
+ "wax.three": "🌔"
1782
+ }
1783
+ ],
1784
+ "mortarboard": "🎓",
1785
+ "mosque": "🕌",
1786
+ "mosquito": "🦟",
1787
+ "motorcycle": "🏍",
1788
+ "motorway": "🛣",
1789
+ "mountain": [
1790
+ "⛰",
1791
+ {
1792
+ "fuji": "🗻",
1793
+ "snow": "🏔",
1794
+ "sunrise": "🌄"
1795
+ }
1796
+ ],
1797
+ "mouse": ["🐁", { "face": "🐭" }],
1798
+ "mousetrap": "🪤",
1799
+ "mouth": ["👄", { "bite": "🫦" }],
1800
+ "moyai": "🗿",
1801
+ "museum": "🏛",
1802
+ "mushroom": "🍄",
1803
+ "musicalscore": "🎼",
1804
+ "nails": [{ "polish": "💅" }],
1805
+ "namebadge": "📛",
1806
+ "nazar": "🧿",
1807
+ "necktie": "👔",
1808
+ "needle": "🪡",
1809
+ "nest": [{ "empty": "🪹", "eggs": "🪺" }],
1810
+ "new": "🆕",
1811
+ "newspaper": ["📰", { "rolled": "🗞" }],
1812
+ "ng": "🆖",
1813
+ "ningyo": "🎎",
1814
+ "ninja": "🥷",
1815
+ "noentry": "⛔",
1816
+ "nose": "👃",
1817
+ "notebook": ["📓", { "deco": "📔" }],
1818
+ "notepad": "🗒",
1819
+ "notes": ["🎵", { "triple": "🎶" }],
1820
+ "numbers": "🔢",
1821
+ "octopus": "🐙",
1822
+ "office": "🏢",
1823
+ "oil": "🛢",
1824
+ "ok": "🆗",
1825
+ "olive": "🫒",
1826
+ "oni": "👹",
1827
+ "onion": "🧅",
1828
+ "orangutan": "🦧",
1829
+ "otter": "🦦",
1830
+ "owl": "🦉",
1831
+ "ox": "🐂",
1832
+ "oyster": "🦪",
1833
+ "package": "📦",
1834
+ "paella": "🥘",
1835
+ "page": ["📄", { "curl": "📃", "pencil": "📝" }],
1836
+ "pager": "📟",
1837
+ "pages": [{ "tabs": "📑" }],
1838
+ "painting": "🖼",
1839
+ "palette": "🎨",
1840
+ "pancakes": "🥞",
1841
+ "panda": "🐼",
1842
+ "parachute": "🪂",
1843
+ "park": "🏞",
1844
+ "parking": "🅿",
1845
+ "parrot": "🦜",
1846
+ "partalteration": "〽",
1847
+ "party": "🎉",
1848
+ "peach": "🍑",
1849
+ "peacock": "🦚",
1850
+ "peanuts": "🥜",
1851
+ "pear": "🍐",
1852
+ "pedestrian": ["🚶", { "not": "🚷" }],
1853
+ "pen": [{ "ball": "🖊", "fountain": "🖋" }],
1854
+ "pencil": "✏",
1855
+ "penguin": "🐧",
1856
+ "pepper": ["🫑", { "hot": "🌶" }],
1857
+ "person": [
1858
+ "🧑",
1859
+ {
1860
+ "angry": "🙎",
1861
+ "beard": "🧔",
1862
+ "blonde": "👱",
1863
+ "bow": "🙇",
1864
+ "crown": "🫅",
1865
+ "deaf": "🧏",
1866
+ "facepalm": "🤦",
1867
+ "frown": "🙍",
1868
+ "hijab": "🧕",
1869
+ "kneel": "🧎",
1870
+ "lotus": "🧘",
1871
+ "massage": "💆",
1872
+ "no": "🙅",
1873
+ "ok": "🙆",
1874
+ "old": "🧓",
1875
+ "pregnant": "🫄",
1876
+ "raise": "🙋",
1877
+ "sassy": "💁",
1878
+ "shrug": "🤷",
1879
+ "stand": "🧍",
1880
+ "steam": "🧖"
1881
+ }
1882
+ ],
1883
+ "petri": "🧫",
1884
+ "phone": [
1885
+ "📱",
1886
+ {
1887
+ "arrow": "📲",
1888
+ "classic": "☎",
1889
+ "not": "📵",
1890
+ "off": "📴",
1891
+ "receiver": "📞",
1892
+ "signal": "📶",
1893
+ "vibrate": "📳"
1894
+ }
1895
+ ],
1896
+ "piano": "🎹",
1897
+ "pick": "⛏",
1898
+ "pie": "🥧",
1899
+ "pig": ["🐖", { "face": "🐷", "nose": "🐽" }],
1900
+ "pill": "💊",
1901
+ "pin": ["📌", { "round": "📍" }],
1902
+ "pinata": "🪅",
1903
+ "pineapple": "🍍",
1904
+ "pingpong": "🏓",
1905
+ "pistol": "🔫",
1906
+ "pizza": "🍕",
1907
+ "placard": "🪧",
1908
+ "planet": "🪐",
1909
+ "plant": "🪴",
1910
+ "plaster": "🩹",
1911
+ "plate": [{ "cutlery": "🍽" }],
1912
+ "playback": [
1913
+ {
1914
+ "down": "⏬",
1915
+ "eject": "⏏",
1916
+ "forward": "⏩",
1917
+ "pause": "⏸",
1918
+ "record": "⏺",
1919
+ "repeat": "🔁",
1920
+ "repeat.once": "🔂",
1921
+ "repeat.v": "🔃",
1922
+ "restart": "⏮",
1923
+ "rewind": "⏪",
1924
+ "shuffle": "🔀",
1925
+ "skip": "⏭",
1926
+ "stop": "⏹",
1927
+ "toggle": "⏯",
1928
+ "up": "⏫"
1929
+ }
1930
+ ],
1931
+ "playingcard": [{ "flower": "🎴", "joker": "🃏" }],
1932
+ "plunger": "🪠",
1933
+ "policeofficer": "👮",
1934
+ "poo": "💩",
1935
+ "popcorn": "🍿",
1936
+ "post": [{ "eu": "🏤", "jp": "🏣" }],
1937
+ "postbox": "📮",
1938
+ "potato": ["🥔", { "sweet": "🍠" }],
1939
+ "pouch": "👝",
1940
+ "powerplug": "🔌",
1941
+ "present": "🎁",
1942
+ "pretzel": "🥨",
1943
+ "printer": "🖨",
1944
+ "prints": [{ "foot": "👣", "paw": "🐾" }],
1945
+ "prohibited": "🚫",
1946
+ "projector": "📽",
1947
+ "pumpkin": [{ "lantern": "🎃" }],
1948
+ "purse": "👛",
1949
+ "quest": ["❓", { "white": "❔" }],
1950
+ "rabbit": ["🐇", { "face": "🐰" }],
1951
+ "raccoon": "🦝",
1952
+ "radio": "📻",
1953
+ "radioactive": "☢",
1954
+ "railway": "🛤",
1955
+ "rainbow": "🌈",
1956
+ "ram": "🐏",
1957
+ "rat": "🐀",
1958
+ "razor": "🪒",
1959
+ "receipt": "🧾",
1960
+ "recycling": "♻",
1961
+ "reg": "®",
1962
+ "restroom": "🚻",
1963
+ "rhino": "🦏",
1964
+ "ribbon": ["🎀", { "remind": "🎗" }],
1965
+ "rice": [
1966
+ "🍚",
1967
+ {
1968
+ "cracker": "🍘",
1969
+ "ear": "🌾",
1970
+ "onigiri": "🍙"
1971
+ }
1972
+ ],
1973
+ "ring": "💍",
1974
+ "ringbuoy": "🛟",
1975
+ "robot": "🤖",
1976
+ "rock": "🪨",
1977
+ "rocket": "🚀",
1978
+ "rollercoaster": "🎢",
1979
+ "rosette": "🏵",
1980
+ "rugby": "🏉",
1981
+ "ruler": ["📏", { "triangle": "📐" }],
1982
+ "running": "🏃",
1983
+ "safetypin": "🧷",
1984
+ "safetyvest": "🦺",
1985
+ "sake": "🍶",
1986
+ "salad": "🥗",
1987
+ "salt": "🧂",
1988
+ "sandwich": "🥪",
1989
+ "santa": [{ "man": "🎅", "woman": "🤶" }],
1990
+ "satdish": "📡",
1991
+ "satellite": "🛰",
1992
+ "saw": "🪚",
1993
+ "saxophone": "🎷",
1994
+ "scales": "⚖",
1995
+ "scarf": "🧣",
1996
+ "school": "🏫",
1997
+ "scissors": "✂",
1998
+ "scooter": ["🛴", { "motor": "🛵" }],
1999
+ "scorpion": "🦂",
2000
+ "screwdriver": "🪛",
2001
+ "scroll": "📜",
2002
+ "seal": "🦭",
2003
+ "seat": "💺",
2004
+ "seedling": "🌱",
2005
+ "shark": "🦈",
2006
+ "sheep": "🐑",
2007
+ "shell": [{ "spiral": "🐚" }],
2008
+ "shield": "🛡",
2009
+ "ship": ["🚢", { "cruise": "🛳", "ferry": "⛴" }],
2010
+ "shirt": [{ "sports": "🎽", "t": "👕" }],
2011
+ "shoe": [
2012
+ "👞",
2013
+ {
2014
+ "ballet": "🩰",
2015
+ "flat": "🥿",
2016
+ "heel": "👠",
2017
+ "hike": "🥾",
2018
+ "ice": "⛸",
2019
+ "roller": "🛼",
2020
+ "sandal.heel": "👡",
2021
+ "ski": "🎿",
2022
+ "sneaker": "👟",
2023
+ "tall": "👢",
2024
+ "thong": "🩴"
2025
+ }
2026
+ ],
2027
+ "shopping": "🛍",
2028
+ "shorts": "🩳",
2029
+ "shoshinsha": "🔰",
2030
+ "shower": "🚿",
2031
+ "shrimp": ["🦐", { "fried": "🍤" }],
2032
+ "shrine": "⛩",
2033
+ "sign": [{ "crossing": "🚸", "stop": "🛑" }],
2034
+ "silhouette": [
2035
+ "👤",
2036
+ {
2037
+ "double": "👥",
2038
+ "hug": "🫂",
2039
+ "speak": "🗣"
2040
+ }
2041
+ ],
2042
+ "siren": "🚨",
2043
+ "skateboard": "🛹",
2044
+ "skewer": [{ "dango": "🍡", "oden": "🍢" }],
2045
+ "skiing": "⛷",
2046
+ "skull": ["💀", { "bones": "☠" }],
2047
+ "skunk": "🦨",
2048
+ "sled": "🛷",
2049
+ "slide": "🛝",
2050
+ "slider": "🎚",
2051
+ "sloth": "🦥",
2052
+ "slots": "🎰",
2053
+ "snail": "🐌",
2054
+ "snake": "🐍",
2055
+ "snowboarding": "🏂",
2056
+ "snowflake": "❄",
2057
+ "snowman": ["⛄", { "snow": "☃" }],
2058
+ "soap": "🧼",
2059
+ "socks": "🧦",
2060
+ "softball": "🥎",
2061
+ "sos": "🆘",
2062
+ "soup": "🍲",
2063
+ "spaghetti": "🍝",
2064
+ "sparkle": [{ "box": "❇" }],
2065
+ "sparkler": "🎇",
2066
+ "sparkles": "✨",
2067
+ "speaker": [
2068
+ "🔈",
2069
+ {
2070
+ "not": "🔇",
2071
+ "wave": "🔉",
2072
+ "waves": "🔊"
2073
+ }
2074
+ ],
2075
+ "spider": "🕷",
2076
+ "spiderweb": "🕸",
2077
+ "spinach": "🥬",
2078
+ "sponge": "🧽",
2079
+ "spoon": "🥄",
2080
+ "square": [
2081
+ {
2082
+ "black": "⬛",
2083
+ "black.tiny": "▪",
2084
+ "black.small": "◾",
2085
+ "black.medium": "◼",
2086
+ "white": "⬜",
2087
+ "white.tiny": "▫",
2088
+ "white.small": "◽",
2089
+ "white.medium": "◻",
2090
+ "blue": "🟦",
2091
+ "brown": "🟫",
2092
+ "green": "🟩",
2093
+ "orange": "🟧",
2094
+ "purple": "🟪",
2095
+ "red": "🟥",
2096
+ "yellow": "🟨"
2097
+ }
2098
+ ],
2099
+ "squid": "🦑",
2100
+ "stadium": "🏟",
2101
+ "star": [
2102
+ "⭐",
2103
+ {
2104
+ "arc": "💫",
2105
+ "box": "✴",
2106
+ "glow": "🌟",
2107
+ "shoot": "🌠"
2108
+ }
2109
+ ],
2110
+ "stethoscope": "🩺",
2111
+ "store": [{ "big": "🏬", "small": "🏪" }],
2112
+ "strawberry": "🍓",
2113
+ "suit": [
2114
+ {
2115
+ "club": "♣",
2116
+ "diamond": "♦",
2117
+ "heart": "♥",
2118
+ "spade": "♠"
2119
+ }
2120
+ ],
2121
+ "sun": ["☀", { "cloud": "🌤", "face": "🌞" }],
2122
+ "sunrise": "🌅",
2123
+ "superhero": "🦸",
2124
+ "supervillain": "🦹",
2125
+ "surfing": "🏄",
2126
+ "sushi": "🍣",
2127
+ "swan": "🦢",
2128
+ "swimming": "🏊",
2129
+ "swimsuit": "🩱",
2130
+ "swords": "⚔",
2131
+ "symbols": "🔣",
2132
+ "synagogue": "🕍",
2133
+ "syringe": "💉",
2134
+ "taco": "🌮",
2135
+ "takeout": "🥡",
2136
+ "tamale": "🫔",
2137
+ "tanabata": "🎋",
2138
+ "tangerine": "🍊",
2139
+ "tap": ["🚰", { "not": "🚱" }],
2140
+ "taxi": ["🚕", { "front": "🚖" }],
2141
+ "teacup": "🍵",
2142
+ "teapot": "🫖",
2143
+ "teddy": "🧸",
2144
+ "telescope": "🔭",
2145
+ "temple": "🛕",
2146
+ "ten": "🔟",
2147
+ "tengu": "👺",
2148
+ "tennis": "🎾",
2149
+ "tent": "⛺",
2150
+ "testtube": "🧪",
2151
+ "thermometer": "🌡",
2152
+ "thread": "🧵",
2153
+ "thumb": [{ "up": "👍", "down": "👎" }],
2154
+ "ticket": [{ "event": "🎟", "travel": "🎫" }],
2155
+ "tiger": ["🐅", { "face": "🐯" }],
2156
+ "tm": "™",
2157
+ "toilet": "🚽",
2158
+ "toiletpaper": "🧻",
2159
+ "tomato": "🍅",
2160
+ "tombstone": "🪦",
2161
+ "tongue": "👅",
2162
+ "toolbox": "🧰",
2163
+ "tooth": "🦷",
2164
+ "toothbrush": "🪥",
2165
+ "tornado": "🌪",
2166
+ "tower": [{ "tokyo": "🗼" }],
2167
+ "trackball": "🖲",
2168
+ "tractor": "🚜",
2169
+ "trafficlight": [{ "v": "🚦", "h": "🚥" }],
2170
+ "train": [
2171
+ "🚆",
2172
+ {
2173
+ "car": "🚃",
2174
+ "light": "🚈",
2175
+ "metro": "🚇",
2176
+ "mono": "🚝",
2177
+ "mountain": "🚞",
2178
+ "speed": "🚄",
2179
+ "speed.bullet": "🚅",
2180
+ "steam": "🚂",
2181
+ "stop": "🚉",
2182
+ "suspend": "🚟",
2183
+ "tram": "🚊",
2184
+ "tram.car": "🚋"
2185
+ }
2186
+ ],
2187
+ "transgender": "⚧",
2188
+ "tray": [{ "inbox": "📥", "mail": "📨", "outbox": "📤" }],
2189
+ "tree": [
2190
+ {
2191
+ "deciduous": "🌳",
2192
+ "evergreen": "🌲",
2193
+ "palm": "🌴",
2194
+ "xmas": "🎄"
2195
+ }
2196
+ ],
2197
+ "triangle": [
2198
+ {
2199
+ "r": "▶",
2200
+ "l": "◀",
2201
+ "t": "🔼",
2202
+ "b": "🔽",
2203
+ "t.red": "🔺",
2204
+ "b.red": "🔻"
2205
+ }
2206
+ ],
2207
+ "trident": "🔱",
2208
+ "troll": "🧌",
2209
+ "trophy": "🏆",
2210
+ "truck": ["🚚", { "trailer": "🚛" }],
2211
+ "trumpet": "🎺",
2212
+ "tsukimi": "🎑",
2213
+ "turkey": "🦃",
2214
+ "turtle": "🐢",
2215
+ "tv": "📺",
2216
+ "ufo": "🛸",
2217
+ "umbrella": [
2218
+ {
2219
+ "open": "☂",
2220
+ "closed": "🌂",
2221
+ "rain": "☔",
2222
+ "sun": "⛱"
2223
+ }
2224
+ ],
2225
+ "unicorn": "🦄",
2226
+ "unknown": "🦳",
2227
+ "up": "🆙",
2228
+ "urn": "⚱",
2229
+ "vampire": "🧛",
2230
+ "violin": "🎻",
2231
+ "volcano": "🌋",
2232
+ "volleyball": "🏐",
2233
+ "vs": "🆚",
2234
+ "waffle": "🧇",
2235
+ "wand": "🪄",
2236
+ "warning": "⚠",
2237
+ "watch": ["⌚", { "stop": "⏱" }],
2238
+ "watermelon": "🍉",
2239
+ "waterpolo": "🤽",
2240
+ "wave": "🌊",
2241
+ "wc": "🚾",
2242
+ "weightlifting": "🏋",
2243
+ "whale": ["🐋", { "spout": "🐳" }],
2244
+ "wheel": "🛞",
2245
+ "wheelchair": ["🦽", { "box": "♿", "motor": "🦼" }],
2246
+ "wind": "🌬",
2247
+ "windchime": "🎐",
2248
+ "window": "🪟",
2249
+ "wine": "🍷",
2250
+ "wolf": "🐺",
2251
+ "woman": [
2252
+ "👩",
2253
+ {
2254
+ "box": "🚺",
2255
+ "crown": "👸",
2256
+ "old": "👵",
2257
+ "pregnant": "🤰"
2258
+ }
2259
+ ],
2260
+ "wood": "🪵",
2261
+ "worm": "🪱",
2262
+ "wrench": "🔧",
2263
+ "wrestling": "🤼",
2264
+ "xray": "🩻",
2265
+ "yarn": "🧶",
2266
+ "yoyo": "🪀",
2267
+ "zebra": "🦓",
2268
+ "zodiac": [
2269
+ {
2270
+ "aquarius": "♒",
2271
+ "aries": "♈",
2272
+ "cancer": "♋",
2273
+ "capri": "♑",
2274
+ "gemini": "♊",
2275
+ "leo": "♌",
2276
+ "libra": "♎",
2277
+ "ophi": "⛎",
2278
+ "pisces": "♓",
2279
+ "sagit": "♐",
2280
+ "scorpio": "♏",
2281
+ "taurus": "♉",
2282
+ "virgo": "♍"
2283
+ }
2284
+ ],
2285
+ "zombie": "🧟",
2286
+ "zzz": "💤"
2287
+ }
830
2288
  `;
831
- function d(n, e, l) {
2289
+ function b(n, e, l) {
832
2290
  let r = document.createElementNS("http://www.w3.org/1998/Math/MathML", n);
833
2291
  if (e && (r.textContent = e), l)
834
2292
  for (let t in l)
835
2293
  r.setAttribute(t, l[t]);
836
2294
  return r;
837
2295
  }
838
- const L = "mathvariant", sn = Intl.Segmenter, pn = new sn("emoji", { granularity: "grapheme" });
839
- function dn(n) {
840
- let e = /[a-zA-Z]/, l = /[\(\)]/, r = /[ \t\n\r]+/, t = "", o = [], s = [], f = o, c = "";
841
- n = n.replace(/(\\u\{[\dA-Fa-f]+\})/g, (v) => {
842
- const b = parseInt(v.slice(3, -1), 16);
843
- return String.fromCodePoint(b);
2296
+ const N = "mathvariant", sn = Intl.Segmenter, un = new sn("emoji", { granularity: "grapheme" });
2297
+ function cn(n) {
2298
+ let e = /[a-zA-Z]/, l = /[\(\)\{\}\[\]]/;
2299
+ const r = /[\(\{\[]/, t = /[\)\}\]]/;
2300
+ let o = /^[ \t\n\r]+$/, h = "", d = !1, i = [], m = [], v = i, f = "";
2301
+ n = n.replace(/(\\u\{[\dA-Fa-f]+\})/g, (a) => {
2302
+ const c = parseInt(a.slice(3, -1), 16);
2303
+ return String.fromCodePoint(c);
844
2304
  });
845
- let m = [];
846
- for (let v = 0; v < n.length; v++) {
847
- const b = n[v];
848
- if (b == '"' && n[v - 1] != "\\") {
849
- t != "str" ? t = "str" : t = "";
2305
+ let p = [];
2306
+ for (let a = 0; a < n.length; a++) {
2307
+ const c = n[a], y = n[a - 1];
2308
+ if (c === '"' && y != "\\" && !d) {
2309
+ h != "str" ? h = "str" : h = "";
850
2310
  continue;
851
2311
  }
852
- t != "str" && (b == "(" && m.push(v), b == ")" && (m.length == 0 || n[v - 1] != "\\" && m.pop()));
853
- }
854
- let y = I.emoji ? typeof I.emoji == "boolean" ? Array.from(pn.segment(n)).map((v) => v.segment) : I.emoji(n) : [...n];
855
- for (let v = 0; v < y.length; v++) {
856
- const b = y[v];
857
- if (b == '"' && y[v - 1] != "\\") {
858
- t != "str" ? t = "str" : (f.push({ type: t, value: c }), t = "", c = "");
859
- continue;
860
- }
861
- if (t == "str") {
862
- c += b;
863
- continue;
864
- }
865
- if (b.match(r) && (t = "blank"), t == "blank" && !b.match(r) && (f.push({ type: t, value: "" }), t = ""), b === "#") {
866
- f.push({ type: "sharp", value: b });
867
- continue;
2312
+ if (h !== "str") {
2313
+ {
2314
+ const Z = n[a + 1];
2315
+ if (c === "/" && Z === "/" && (d = "line"), d === "line" && c === `
2316
+ `) {
2317
+ a++, d = !1;
2318
+ continue;
2319
+ }
2320
+ if (c === "/" && Z === "*" && (d = "block"), d === "block" && c === "*" && Z === "/") {
2321
+ a++, d = !1;
2322
+ continue;
2323
+ }
2324
+ }
2325
+ c.match(r) && !d && y != "\\" && p.push(a), c.match(t) && !d && y != "\\" && (p.length === 0 || p.pop());
868
2326
  }
869
- if (t == "" && (!y[v - 1] || !y[v - 1].match(e)) && (!y[v + 1] || !y[v + 1].match(e)) && !b.match(l)) {
870
- f.push({ type: "v", value: b });
2327
+ }
2328
+ d = !1;
2329
+ let u = I.emoji ? I.emoji(n) : Array.from(un.segment(n)).map((a) => a.segment), s = [];
2330
+ for (let a of u)
2331
+ a.length > 1 && a.includes(",") ? s.push(...a) : s.push(a);
2332
+ u = s;
2333
+ for (let a = 0; a < u.length; a++) {
2334
+ const c = u[a], y = u[a + 1];
2335
+ if (c === "/" && y === "/" && (d = "line"), d === "line" && c === `
2336
+ `) {
2337
+ a++, d = !1;
871
2338
  continue;
872
2339
  }
873
- if (t == "" && !b.match(e) && !b.match(l)) {
874
- f.push({ type: "v", value: b });
2340
+ if (c === "/" && y === "*" && (d = "block"), d === "block" && c === "*" && y === "/") {
2341
+ a++, d = !1;
875
2342
  continue;
876
2343
  }
877
- if ((y[v - 1] && y[v - 1].match(e) || y[v + 1] && y[v + 1].match(e)) && b.match(e) && (t = "f"), t == "f" && (c += b), t == "f" && (!y[v + 1] || !y[v + 1].match(e)) && (f.push({ type: t, value: c }), t = "", c = ""), b == "(")
878
- if (m.includes(v) || y[v - 1] == "\\")
879
- f.push({ type: "v", value: b });
880
- else {
881
- s.push({ tree: f, close: !1 }), f.push({ type: "group", value: c, children: [] }), f = f.at(-1).children, c = "";
2344
+ if (!d) {
2345
+ if (h === "blank" && !c.match(o) && (v.push({ type: h, value: "" }), h = ""), c === '"' && u[a - 1] != "\\") {
2346
+ h != "str" ? h = "str" : (v.push({ type: h, value: f }), h = "", f = "");
2347
+ continue;
2348
+ }
2349
+ if (h == "str") {
2350
+ f += c;
2351
+ continue;
2352
+ }
2353
+ if (c.match(o) && (h = "blank"), c === "#") {
2354
+ v.push({ type: "sharp", value: "" });
882
2355
  continue;
883
2356
  }
884
- if (b == ")")
885
- if (s.at(-1)) {
886
- if (s.at(-1).close == !1) {
887
- s.at(-1).close = !0, f = s.at(-1).tree, s.pop();
2357
+ if (h == "" && (!u[a - 1] || !u[a - 1].match(e)) && (!u[a + 1] || !u[a + 1].match(e)) && !c.match(l)) {
2358
+ v.push({ type: "v", value: c });
2359
+ continue;
2360
+ }
2361
+ if (h == "" && !c.match(e) && !c.match(l)) {
2362
+ v.push({ type: "v", value: c });
2363
+ continue;
2364
+ }
2365
+ if ((u[a - 1] && u[a - 1].match(e) || u[a + 1] && u[a + 1].match(e)) && c.match(e) && (h = "f"), h == "f" && (f += c), h == "f" && (!u[a + 1] || !u[a + 1].match(e)) && (v.push({ type: h, value: f }), h = "", f = ""), c.match(r))
2366
+ if (u[a - 1] === "\\")
2367
+ v.push({ type: "v", value: c, esc: !0 });
2368
+ else if (p.includes(a))
2369
+ v.push({ type: "v", value: c });
2370
+ else {
2371
+ m.push({ tree: v, close: !1 }), v.push({ type: "group", value: f, children: [], kh: c }), v = v.at(-1).children, f = "";
888
2372
  continue;
889
2373
  }
890
- } else
891
- f.push({ type: "v", value: b });
2374
+ if (c.match(t))
2375
+ if (u[a - 1] === "\\")
2376
+ v.push({ type: "v", value: c, esc: !0 });
2377
+ else if (m.at(-1)) {
2378
+ if (m.at(-1).close === !1) {
2379
+ m.at(-1).close = !0, v = m.at(-1).tree, v.at(-1).kh += c, m.pop();
2380
+ continue;
2381
+ }
2382
+ } else
2383
+ v.push({ type: "v", value: c });
2384
+ }
892
2385
  }
893
- return o;
2386
+ return i;
894
2387
  }
895
- let D = JSON.parse(un), k = {};
896
- for (let n in D)
897
- if (typeof D[n] == "string")
898
- k[n] = D[n];
899
- else
900
- for (let e of D[n])
901
- if (typeof e == "string")
902
- k[n] = e;
903
- else {
904
- k[n] || (k[n] = e[Object.keys(e)[0]]);
905
- for (let l in e) {
906
- k[`${n}.${l}`] = e[l];
907
- let r = l.split(".");
908
- for (let t = 1; t < r.length; t++) {
909
- let o = r.slice(0, t).join(".");
910
- e[o] || (k[`${n}.${o}`] = e[l]);
2388
+ let pn = JSON.parse(on);
2389
+ function Q(n) {
2390
+ const e = {};
2391
+ for (let l in n)
2392
+ if (typeof n[l] == "string")
2393
+ e[l] = n[l];
2394
+ else
2395
+ for (let r of n[l])
2396
+ if (typeof r == "string")
2397
+ e[l] = r;
2398
+ else {
2399
+ e[l] || (e[l] = r[Object.keys(r)[0]]);
2400
+ for (let t in r) {
2401
+ e[`${l}.${t}`] = r[t];
2402
+ let o = t.split(".");
2403
+ for (let h = 1; h < o.length; h++) {
2404
+ let d = o.slice(0, h).join(".");
2405
+ r[d] || (e[`${l}.${d}`] = r[t]);
2406
+ }
911
2407
  }
912
2408
  }
913
- }
914
- let R = {
2409
+ return e;
2410
+ }
2411
+ let z = Q(pn), dn = Q(JSON.parse(an)), D = {
915
2412
  "->": "arrow.r",
916
2413
  "|->": "arrow.r.bar",
917
2414
  "=>": "arrow.r.double",
@@ -954,242 +2451,235 @@ let R = {
954
2451
  "-": "minus",
955
2452
  "'": "prime",
956
2453
  "~": "space.nobreak"
957
- }, G = 0;
958
- for (let n in R)
959
- n.length > G && (G = n.length);
960
- const Q = { "(": ["(", ")"], "[": ["[", "]"], "{": ["{", "}"], "|": ["|", "|"], "||": ["‖", "‖"] };
961
- let N = {
962
- accent: (n, e) => {
963
- let l = d("mrow");
964
- l.append(g(n[0]));
965
- let r = d("mrow");
966
- r.append(g(n[1]));
967
- let t = d("mover");
968
- return t.setAttribute("accent", "true"), t.append(l, r), t;
2454
+ }, B = 0;
2455
+ for (let n in D)
2456
+ n.length > B && (B = n.length);
2457
+ const fn = {
2458
+ "(": ["(", ")"],
2459
+ "[": ["[", "]"],
2460
+ "{": ["{", "}"],
2461
+ "|": ["|", "|"],
2462
+ "||": ["‖", "‖"],
2463
+ "": ["", ""]
2464
+ };
2465
+ function H(n, e) {
2466
+ const l = C(n, "delim");
2467
+ let r = "";
2468
+ return l !== null && (l === void 0 ? r = e : r = l), fn[r];
2469
+ }
2470
+ let k = {
2471
+ accent: (n, e, l) => {
2472
+ let r = b("mrow");
2473
+ r.append(g(n[0], l));
2474
+ let t = b("mrow");
2475
+ t.append(g(n[1], l)), t.children[0].innerHTML = bn(t.children[0].innerHTML);
2476
+ let o = b("mover");
2477
+ return o.setAttribute("accent", "true"), o.append(r, t), o;
969
2478
  },
970
- attach: (n, e) => {
971
- let l = d("mrow");
972
- l.append(g(n[0]));
973
- let r, t = d("mrow");
974
- e.tl && t.append(g(e.tl));
975
- let o = d("mrow");
976
- e.bl && o.append(g(e.bl));
977
- let s = d("mrow");
978
- e.tr && s.append(g(e.tr));
979
- let f = d("mrow");
980
- if (e.br && f.append(g(e.br)), (e.tl || e.bl || e.tr || e.br) && (e.tl || e.bl ? (r = d("mmultiscripts"), r.append(l, f, s, d("mprescripts"), o, t)) : e.tr && e.br ? (r = d("msubsup"), r.append(l, f, s)) : e.tr ? (r = d("msup"), r.append(l, s)) : (r = d("msub"), r.append(l, f))), e.t || e.b) {
981
- let c = d("munderover");
982
- r ? c.append(r) : c.append(l);
983
- let m = d("mrow");
984
- e.t && m.append(g(e.t));
985
- let y = d("mrow");
986
- e.b && y.append(g(e.b)), c.append(y, m), r = c;
2479
+ attach: (n, e, l) => {
2480
+ let r = b("mrow");
2481
+ r.append(g(n[0]));
2482
+ let t, o = b("mrow");
2483
+ e.tl && o.append(g(e.tl, l));
2484
+ let h = b("mrow");
2485
+ e.bl && h.append(g(e.bl, l));
2486
+ let d = b("mrow");
2487
+ e.tr && d.append(g(e.tr, l));
2488
+ let i = b("mrow");
2489
+ if (e.br && i.append(g(e.br, l)), (e.tl || e.bl || e.tr || e.br) && (e.tl || e.bl ? (t = b("mmultiscripts"), t.append(r, i, d, b("mprescripts"), h, o)) : e.tr && e.br ? (t = b("msubsup"), t.append(r, i, d)) : e.tr ? (t = b("msup"), t.append(r, d)) : (t = b("msub"), t.append(r, i))), e.t || e.b) {
2490
+ let m = b("munderover");
2491
+ t ? m.append(t) : m.append(r);
2492
+ let v = b("mrow");
2493
+ e.t && v.append(g(e.t, l));
2494
+ let f = b("mrow");
2495
+ e.b && f.append(g(e.b, l)), m.append(f, v), t = m;
987
2496
  }
988
- return r;
2497
+ return t;
989
2498
  },
990
- scripts: (n, e) => g(n[0]),
991
- limits: (n, e) => g(n[0]),
992
- binom: (n, e) => {
993
- let l = d("mrow"), r = d("mrow");
994
- r.append(g(n[0]));
995
- let t = d("mrow");
996
- const o = [];
997
- for (let m of n.slice(1))
998
- o.push(...m, S);
999
- t.append(g(o.slice(0, -1)));
1000
- let s = d("mfrac", null, { linethickness: "0" });
1001
- s.append(r, t);
1002
- let f = d("mo", "("), c = d("mo", ")");
1003
- return l.append(f, s, c), l;
2499
+ scripts: (n, e, l) => g(n[0], l),
2500
+ limits: (n, e, l) => g(n[0], l),
2501
+ binom: (n, e, l) => {
2502
+ let r = b("mrow"), t = b("mrow");
2503
+ t.append(g(n[0], l));
2504
+ let o = b("mrow");
2505
+ const h = [];
2506
+ for (let v of n.slice(1))
2507
+ h.push(...v, A);
2508
+ o.append(g(h.slice(0, -1), l));
2509
+ let d = b("mfrac", null, { linethickness: "0" });
2510
+ d.append(t, o);
2511
+ let i = b("mo", "("), m = b("mo", ")");
2512
+ return r.append(i, d, m), r;
1004
2513
  },
1005
- cancel: (n, e) => {
1006
- let l = d("mrow");
1007
- const r = (o) => `linear-gradient(to ${o ? "left" : "right"} top, transparent 47.75%, currentColor 49.5%, currentColor 50.5%, transparent 52.25%)`;
1008
- let t = "";
1009
- return B(e.cross) ? t = r(!0) + "," + r(!1) : B(e.inverted) ? t = r(!1) : t = r(!0), l.style.backgroundImage = t, l.append(g(n[0])), l;
2514
+ cancel: (n, e, l) => {
2515
+ let r = b("mrow");
2516
+ const t = (h) => `linear-gradient(to ${h ? "left" : "right"} top, transparent 47.75%, currentColor 49.5%, currentColor 50.5%, transparent 52.25%)`;
2517
+ let o = "";
2518
+ return T(e.cross) ? o = t(!0) + "," + t(!1) : T(e.inverted) ? o = t(!1) : o = t(!0), r.style.backgroundImage = o, r.append(g(n[0], l)), r;
1010
2519
  },
1011
- cases: (n, e) => {
1012
- var s, f, c, m;
1013
- let l = d("mrow");
1014
- const r = ((f = (s = e == null ? void 0 : e.delim) == null ? void 0 : s[0]) == null ? void 0 : f.value) || "{";
1015
- let t = N.x_table(n, { cases: [] });
1016
- const o = ((m = (c = e == null ? void 0 : e.gap) == null ? void 0 : c[0]) == null ? void 0 : m.value) || "0.5em";
1017
- if (t.setAttribute("rowspacing", o), B(e == null ? void 0 : e.reverse)) {
1018
- const y = d("mo", Q[r][1]);
1019
- l.append(t, y);
2520
+ cases: (n, e, l) => {
2521
+ let r = b("mrow");
2522
+ const t = H(e, "{");
2523
+ let o = k.x_table(n, { cases: [] }, l);
2524
+ const h = C(e, "gap") || "0.5em";
2525
+ if (o.setAttribute("rowspacing", h), T(e == null ? void 0 : e.reverse)) {
2526
+ const d = b("mo", t[1]);
2527
+ r.append(o, d);
1020
2528
  } else {
1021
- const y = d("mo", r);
1022
- l.append(y, t);
2529
+ const d = b("mo", t[0]);
2530
+ r.append(d, o);
1023
2531
  }
1024
- return l;
2532
+ return r;
1025
2533
  },
1026
- frac: (n, e) => {
1027
- console.log(n);
1028
- let l = d("mrow");
1029
- l.append(g(n[0]));
1030
- let r = d("mrow");
1031
- r.append(g(n[1]));
1032
- let t = d("mfrac");
1033
- return t.append(l, r), t;
2534
+ frac: (n, e, l) => {
2535
+ let r = b("mrow");
2536
+ r.append(g(n[0], l));
2537
+ let t = b("mrow");
2538
+ t.append(g(n[1], l));
2539
+ let o = b("mfrac");
2540
+ return o.append(r, t), o;
1034
2541
  },
1035
- lr: (n, e) => {
1036
- var y, v;
1037
- let l = n[0], r, t;
1038
- for (let b = 0; b < l.length; b++) {
1039
- const q = l[b];
1040
- if (q.type != "blank") {
1041
- r = { c: [q], n: b };
1042
- break;
1043
- }
1044
- }
1045
- for (let b = l.length - 1; b >= 0; b--) {
1046
- const q = l[b];
1047
- if (q.type != "blank") {
1048
- t = { c: [q], n: b };
1049
- break;
1050
- }
1051
- }
1052
- const o = (v = (y = e == null ? void 0 : e.size) == null ? void 0 : y[0]) == null ? void 0 : v.value, s = g(r.c), f = g(t.c);
1053
- if (o && o != "auto") {
1054
- const b = s.querySelector("mo"), q = f.querySelector("mo");
1055
- b.setAttribute("maxsize", o), b.setAttribute("minsize", o), q.setAttribute("maxsize", o), q.setAttribute("minsize", o);
2542
+ lr: (n, e, l) => {
2543
+ let r = rn(n.map((i) => yn(i)));
2544
+ const t = O(r), o = C(e, "size"), h = g(t, l), d = b("mrow");
2545
+ if (d.append(h), o && o != "auto") {
2546
+ const i = d.children[0], m = d.children[d.children.length - 1];
2547
+ i == null || i.setAttribute("maxsize", o), i == null || i.setAttribute("minsize", o), m == null || m.setAttribute("maxsize", o), m == null || m.setAttribute("minsize", o);
1056
2548
  }
1057
- const c = g(l.slice(r.n + 1, t.n)), m = d("mrow");
1058
- return m.append(s, c, f), m;
2549
+ return d;
1059
2550
  },
1060
2551
  mid: (n, e) => {
1061
2552
  var r, t;
1062
- return d("mo", (t = (r = n == null ? void 0 : n[0]) == null ? void 0 : r[0]) == null ? void 0 : t.value, { stretchy: "true" });
2553
+ return b("mo", (t = (r = n == null ? void 0 : n[0]) == null ? void 0 : r[0]) == null ? void 0 : t.value, { stretchy: "true" });
1063
2554
  },
1064
2555
  mat: (n, e, l) => {
1065
- var q, p, a, i, u, h, w, j, X;
1066
- let r = ((p = (q = e == null ? void 0 : e.delim) == null ? void 0 : q[0]) == null ? void 0 : p.value) || "(", t = { "(": ["(", ")"], "[": ["[", "]"], "{": ["{", "}"], "|": ["|", "|"], "||": ["‖", "‖"] }, o = d("mrow"), s = d("mo", t[r][0]), f = d("mo", t[r][1]), c = d("mtable"), m = vn((a = e == null ? void 0 : e.augment) == null ? void 0 : a[0].children);
2556
+ var u;
2557
+ let r = H(e, "("), t = b("mrow"), o = b("mo", r[0]), h = b("mo", r[1]), d = b("mtable"), i;
2558
+ (u = n[0][0]) != null && u.type ? i = [n] : i = n;
2559
+ let m = C(e, "augment");
1067
2560
  if (m) {
1068
- let E = NaN, Z = NaN;
1069
- if (Array.isArray(m) ? E = Number(m.map((z) => z.value).join("")) : Z = Number(m.hline.map((z) => z.value).join("")), E < 0 && (E = l[0].length + E), Z < 0 && (Z = l.length + Z), Z) {
1070
- let z = [];
1071
- for (let A = 1; A < l.length; A++)
1072
- z.push(A === Z);
1073
- c.setAttribute("rowlines", z.map((A) => A ? "solid" : "none").join(" "));
2561
+ let s = NaN, a = NaN;
2562
+ if (typeof m != "object" ? s = Number(m) : (m.hline && (a = Number(m.hline.map((c) => c.value).join(""))), m.vline && (s = Number(m.vline.map((c) => c.value).join("")))), s < 0 && (s = i[0].length + s), a < 0 && (a = i.length + a), a) {
2563
+ let c = [];
2564
+ for (let y = 1; y < i.length; y++)
2565
+ c.push(y === a);
2566
+ d.setAttribute("rowlines", c.map((y) => y ? "solid" : "none").join(" "));
1074
2567
  }
1075
- if (E) {
1076
- let z = [];
1077
- for (let A = 1; A < l[0].length; A++)
1078
- z.push(A === E);
1079
- c.setAttribute("columnlines", z.map((A) => A ? "solid" : "none").join(" "));
2568
+ if (s) {
2569
+ let c = [];
2570
+ for (let y = 1; y < i[0].length; y++)
2571
+ c.push(y === s);
2572
+ d.setAttribute("columnlines", c.map((y) => y ? "solid" : "none").join(" "));
1080
2573
  }
1081
2574
  }
1082
- const y = (u = (i = e == null ? void 0 : e.gap) == null ? void 0 : i[0]) == null ? void 0 : u.value, v = (w = (h = e == null ? void 0 : e["row-gap"]) == null ? void 0 : h[0]) == null ? void 0 : w.value, b = (X = (j = e == null ? void 0 : e["column-gap"]) == null ? void 0 : j[0]) == null ? void 0 : X.value;
1083
- c.setAttribute("columnspacing", b || y || "0.5em"), c.setAttribute("rowspacing", v || y || "0.5em");
1084
- for (let E of l) {
1085
- let Z = d("mtr");
1086
- if (E.length) {
1087
- for (let z of E) {
1088
- let A = d("mtd");
1089
- A.append(g(z)), Z.append(A);
1090
- }
1091
- c.append(Z);
2575
+ const v = C(e, "gap"), f = C(e, "row-gap"), p = C(e, "column-gap");
2576
+ d.setAttribute("columnspacing", p || v || "0.5em"), d.setAttribute("rowspacing", f || v || "0.5em");
2577
+ for (let s of i) {
2578
+ let a = b("mtr");
2579
+ for (let c of s) {
2580
+ let y = b("mtd");
2581
+ y.append(g(c, l)), a.append(y);
1092
2582
  }
2583
+ d.append(a);
1093
2584
  }
1094
- return o.append(s, c, f), o;
2585
+ return t.append(o, d, h), t;
1095
2586
  },
1096
- root: (n, e) => {
1097
- let l = d("mrow");
1098
- l.append(g(n[0]));
1099
- let r = d("mrow");
1100
- r.append(g(n[1]));
1101
- let t = d("mroot");
1102
- return t.append(r, l), t;
2587
+ root: (n, e, l) => {
2588
+ let r = b("mrow");
2589
+ r.append(g(n[0], l));
2590
+ let t = b("mrow");
2591
+ t.append(g(n[1], l));
2592
+ let o = b("mroot");
2593
+ return o.append(t, r), o;
1103
2594
  },
1104
- sqrt: (n, e) => N.root([[], n[0]], null),
1105
- display: (n, e) => {
1106
- let l = d("mrow", null, { displaystyle: "true" });
1107
- return l.append(g(n[0])), l;
2595
+ sqrt: (n, e, l) => k.root([[], n[0]], null, l),
2596
+ display: (n, e, l) => {
2597
+ let r = b("mrow", null, { displaystyle: "true" });
2598
+ return r.append(g(n[0], l)), r;
1108
2599
  },
1109
- inline: (n, e) => {
1110
- let l = d("mrow", null, { displaystyle: "false", scriptlevel: "0" });
1111
- return l.append(g(n[0])), l;
2600
+ inline: (n, e, l) => {
2601
+ let r = b("mrow", null, { displaystyle: "false", scriptlevel: "0" });
2602
+ return r.append(g(n[0], l)), r;
1112
2603
  },
1113
- script: (n, e) => {
1114
- let l = d("mrow", null, { displaystyle: "false", scriptlevel: "1" });
1115
- return l.append(g(n[0])), l;
2604
+ script: (n, e, l) => {
2605
+ let r = b("mrow", null, { displaystyle: "false", scriptlevel: "1" });
2606
+ return r.append(g(n[0], l)), r;
1116
2607
  },
1117
- sscript: (n, e) => {
1118
- let l = d("mrow", null, { displaystyle: "false", scriptlevel: "2" });
1119
- return l.append(g(n[0])), l;
2608
+ sscript: (n, e, l) => {
2609
+ let r = b("mrow", null, { displaystyle: "false", scriptlevel: "2" });
2610
+ return r.append(g(n[0], l)), r;
1120
2611
  },
1121
- upright: (n, e) => {
1122
- let l = d("mrow");
1123
- return l.append(g(n[0])), l.querySelectorAll("mi").forEach((r) => {
1124
- r.getAttribute(L) || r.setAttribute(L, "normal");
1125
- }), l.querySelectorAll("ms").forEach((r) => {
1126
- r.getAttribute(L) || r.setAttribute(L, "normal");
1127
- }), l;
2612
+ upright: (n, e, l) => {
2613
+ let r = b("mrow");
2614
+ return r.append(g(n[0], l)), r.querySelectorAll("mi").forEach((t) => {
2615
+ t.getAttribute(N) || t.setAttribute(N, "normal");
2616
+ }), r.querySelectorAll("ms").forEach((t) => {
2617
+ t.getAttribute(N) || t.setAttribute(N, "normal");
2618
+ }), r;
1128
2619
  },
1129
- italic: (n, e) => {
1130
- let l = d("mrow");
1131
- return l.querySelectorAll("mi").forEach((r) => {
1132
- r.getAttribute(L) || r.setAttribute(L, "italic");
1133
- }), l.querySelectorAll("ms").forEach((r) => {
1134
- r.getAttribute(L) || r.setAttribute(L, "italic");
1135
- }), l.append(g(n[0])), l;
2620
+ italic: (n, e, l) => {
2621
+ let r = b("mrow");
2622
+ return r.append(g(n[0], l)), r.querySelectorAll("mi").forEach((t) => {
2623
+ t.getAttribute(N) || t.setAttribute(N, "italic");
2624
+ }), r.querySelectorAll("ms").forEach((t) => {
2625
+ t.getAttribute(N) || t.setAttribute(N, "italic");
2626
+ }), r;
1136
2627
  },
1137
- bold: (n, e) => {
1138
- let l = d("mrow");
1139
- return l.style.fontWeight = "bold", l.append(g(n[0])), l;
2628
+ bold: (n, e, l) => {
2629
+ let r = b("mrow");
2630
+ return r.style.fontWeight = "bold", r.append(g(n[0], l)), r;
1140
2631
  },
1141
- op: (n, e, l, r) => {
1142
- let t = d("mrow"), o = d("ms");
1143
- return o.append(g(n[0], r)), t.append(o), t;
2632
+ op: (n, e, l) => {
2633
+ let r = b("mrow"), t = b("ms");
2634
+ return t.append(g(n[0], l)), r.append(t), r;
1144
2635
  },
1145
- underline: (n, e) => $("under", n[0], "_", n == null ? void 0 : n[1]),
1146
- overline: (n, e) => $("over", n[0], "‾", n == null ? void 0 : n[1]),
1147
- underbrace: (n, e) => $("under", n[0], "⏟", n == null ? void 0 : n[1]),
1148
- overbrace: (n, e) => $("over", n[0], "⏞", n == null ? void 0 : n[1]),
1149
- underbracket: (n, e) => $("under", n[0], "⎵", n == null ? void 0 : n[1]),
1150
- overbracket: (n, e) => $("over", n[0], "⎴", n == null ? void 0 : n[1]),
1151
- serif: (n, e) => g(n[0], "serif"),
1152
- sans: (n, e) => g(n[0], "sans"),
1153
- frak: (n, e) => g(n[0], "frak"),
1154
- mono: (n, e) => g(n[0], "mono"),
1155
- bb: (n, e) => g(n[0], "bb"),
1156
- cal: (n, e) => g(n[0], "cal"),
1157
- vec: (n, e) => {
1158
- var m, y, v, b;
1159
- let l = ((y = (m = e == null ? void 0 : e.delim) == null ? void 0 : m[0]) == null ? void 0 : y.value) || "(", r = Q, t = d("mrow"), o = d("mo", r[l][0]), s = d("mo", r[l][1]), f = d("mtable");
1160
- const c = ((b = (v = e == null ? void 0 : e.gap) == null ? void 0 : v[0]) == null ? void 0 : b.value) || "0.5em";
1161
- f.setAttribute("rowspacing", c);
1162
- for (let q of n) {
1163
- let p = d("mtr");
1164
- p.append(g(q)), f.append(p);
1165
- }
1166
- return t.append(o, f, s), t;
2636
+ underline: (n, e, l) => W("under", n[0], l),
2637
+ overline: (n, e, l) => W("over", n[0], l),
2638
+ underbrace: (n, e, l) => P("under", n[0], "⏟", n == null ? void 0 : n[1], l),
2639
+ overbrace: (n, e, l) => P("over", n[0], "⏞", n == null ? void 0 : n[1], l),
2640
+ underbracket: (n, e, l) => P("under", n[0], "⎵", n == null ? void 0 : n[1], l),
2641
+ overbracket: (n, e, l) => P("over", n[0], "⎴", n == null ? void 0 : n[1], l),
2642
+ serif: (n) => g(n[0], "serif"),
2643
+ sans: (n) => g(n[0], "sans"),
2644
+ frak: (n) => g(n[0], "frak"),
2645
+ mono: (n) => g(n[0], "mono"),
2646
+ bb: (n) => g(n[0], "bb"),
2647
+ cal: (n) => g(n[0], "cal"),
2648
+ vec: (n, e, l) => {
2649
+ let r = H(e, "("), t = b("mrow"), o = b("mo", r[0]), h = b("mo", r[1]), d = K(n, l);
2650
+ const i = C(e, "gap") || "0.5em";
2651
+ return d.setAttribute("rowspacing", i), d.setAttribute("columnspacing", "0.5em"), t.append(o, d, h), t;
1167
2652
  },
1168
- h: (n, e) => d("mspace", "", { width: n[0][0].value }),
2653
+ h: (n, e) => b("mspace", "", { width: n[0][0].value }),
1169
2654
  // 额外
1170
2655
  //
1171
2656
  x_table: (n, e) => {
1172
- let l = 0, r = d("mtable");
1173
- for (let o of n) {
1174
- let s = d("mtr"), f = [], c = [];
1175
- for (let m = 0; m < o.length; m++)
1176
- !o[m].esc && o[m].value == "&" ? c.length > 0 && (f.push(c), c = []) : c.push(o[m]);
1177
- c.length > 0 && f.push(c), f.length > l && (l = f.length);
1178
- for (let m of f) {
1179
- let y = d("mtd");
1180
- s.append(y), y.append(g(m));
1181
- }
1182
- r.append(s);
2657
+ let l = K(n);
2658
+ return e.cases && l.setAttribute("columnalign", "left"), l;
2659
+ }
2660
+ };
2661
+ function K(n, e) {
2662
+ let l = 0, r = b("mtable");
2663
+ for (let t of n) {
2664
+ const o = t.filter((h) => q(h, w("&"))).length;
2665
+ o > l && (l = o);
2666
+ }
2667
+ for (let t of n) {
2668
+ let o = b("mtr"), h = [[]];
2669
+ for (let i = 0; i < t.length; i++)
2670
+ q(t[i], w("&")) ? h.push([]) : h.at(-1).push(t[i]);
2671
+ for (let i of h) {
2672
+ let m = b("mtd");
2673
+ o.append(m), m.append(g(i, e));
1183
2674
  }
1184
- let t = [];
1185
- if (e.cases)
1186
- t.push("left");
1187
- else
1188
- for (let o = 0; o < l; o++)
1189
- o % 2 == 0 ? t.push("right") : t.push("left");
1190
- return r.setAttribute("columnalign", t.join(" ")), r;
2675
+ const d = [];
2676
+ for (let i = 0; i <= l; i++)
2677
+ i % 2 === 0 ? d.push("right") : d.push("left");
2678
+ r.setAttribute("columnalign", d.join(" ")), r.setAttribute("columnspacing", "0"), r.append(o);
1191
2679
  }
1192
- }, ln = [
2680
+ return r;
2681
+ }
2682
+ let V = [
1193
2683
  { id: "arccos" },
1194
2684
  { id: "arcsin" },
1195
2685
  { id: "arctan" },
@@ -1230,34 +2720,107 @@ let N = {
1230
2720
  { id: "tr" },
1231
2721
  { id: "tanh" },
1232
2722
  { id: "liminf", str: "lim inf", limits: !0 },
1233
- { id: "limsup", str: "lim sup", limits: !0 }
2723
+ { id: "limsup", str: "lim sup", limits: !0 },
2724
+ { id: "dif", str: "d" },
2725
+ { id: "Dif", str: "D" }
1234
2726
  ];
1235
- function cn() {
1236
- for (let n of ln)
1237
- N[n.id] = (e, l, r, t) => {
1238
- let o = N.op([[{ type: "str", value: n.str || n.id }]], {}, null, t);
2727
+ function hn() {
2728
+ for (let n of V)
2729
+ k[n.id] = (e, l, r) => {
2730
+ let t = k.op([[{ type: "str", value: n.str || n.id }]], {}, r);
1239
2731
  if (e) {
1240
- let s = document.createDocumentFragment();
1241
- return s.append(o, on(e[0])), s;
2732
+ let o = document.createDocumentFragment();
2733
+ return o.append(t, vn(rn(e))), o;
1242
2734
  } else
1243
- return o;
2735
+ return t;
1244
2736
  };
1245
2737
  }
1246
- cn();
1247
- const V = {
2738
+ hn();
2739
+ const R = {
1248
2740
  quad: "1em",
1249
2741
  med: "0.222em",
1250
2742
  thin: "0.17em",
1251
2743
  thick: "0.28em",
1252
2744
  wide: "2em"
1253
2745
  };
1254
- for (let n in V)
1255
- N[n] = () => N.h([[{ type: "str", value: V[n] }]]);
1256
- let tn = [], rn = ["∏", "∐", "∑", "⋀", "⋁", "⋂", "⋃", "⨀", "⨁", "⨂", "⨃", "⨄", "⨅", "⨆"];
1257
- for (let n in k)
1258
- for (let e of rn)
1259
- k[n] == e && tn.push(n);
1260
- function fn() {
2746
+ for (let n in R)
2747
+ k[n] = () => k.h([[{ type: "str", value: R[n] }]]);
2748
+ let Y = [], nn = ["∏", "∐", "∑", "⋀", "⋁", "⋂", "⋃", "⨀", "⨁", "⨂", "⨃", "⨄", "⨅", "⨆"];
2749
+ for (let n in z)
2750
+ for (let e of nn)
2751
+ z[n] == e && Y.push(n);
2752
+ function bn(n) {
2753
+ switch (n) {
2754
+ case "̀":
2755
+ case "`":
2756
+ return "̀";
2757
+ case "́":
2758
+ case "´":
2759
+ return "́";
2760
+ case "̂":
2761
+ case "^":
2762
+ case "ˆ":
2763
+ return "̂";
2764
+ case "̃":
2765
+ case "~":
2766
+ case "∼":
2767
+ case "˜":
2768
+ return "̃";
2769
+ case "̄":
2770
+ case "¯":
2771
+ return "̄";
2772
+ case "̅":
2773
+ case "-":
2774
+ case "‾":
2775
+ case "−":
2776
+ return "̅";
2777
+ case "̆":
2778
+ case "˘":
2779
+ return "̆";
2780
+ case "̇":
2781
+ case ".":
2782
+ case "˙":
2783
+ case "⋅":
2784
+ return "̇";
2785
+ case "̈":
2786
+ case "¨":
2787
+ return "̈";
2788
+ case "⃛":
2789
+ return "⃛";
2790
+ case "⃜":
2791
+ return "⃜";
2792
+ case "̊":
2793
+ case "∘":
2794
+ case "○":
2795
+ return "̊";
2796
+ case "̋":
2797
+ case "˝":
2798
+ return "̋";
2799
+ case "̌":
2800
+ case "ˇ":
2801
+ return "̌";
2802
+ case "⃖":
2803
+ case "←":
2804
+ return "⃖";
2805
+ case "⃗":
2806
+ case "→":
2807
+ case "⟶":
2808
+ return "⃗";
2809
+ case "⃡":
2810
+ case "↔":
2811
+ case "⟷":
2812
+ return "⃡";
2813
+ case "⃐":
2814
+ case "↼":
2815
+ return "⃐";
2816
+ case "⃑":
2817
+ case "⇀":
2818
+ return "⃑";
2819
+ default:
2820
+ return n;
2821
+ }
2822
+ }
2823
+ function mn() {
1261
2824
  const n = [
1262
2825
  "grave",
1263
2826
  "acute",
@@ -1282,473 +2845,606 @@ function fn() {
1282
2845
  "harpoon.lt"
1283
2846
  ];
1284
2847
  for (let e of n)
1285
- N[e] = (l) => N.accent([l[0], [{ type: "f", value: e }]], {});
2848
+ k[e] = (l, r, t) => k.accent([l[0], [{ type: "f", value: e }]], {}, t);
1286
2849
  }
1287
- fn();
1288
- function hn() {
2850
+ mn();
2851
+ function gn() {
1289
2852
  let n = [
1290
- { name: "abs", l: x("|"), r: x("|") },
1291
- { name: "norm", l: x("‖"), r: x("‖") },
1292
- { name: "floor", l: x("⌊"), r: x("⌋") },
1293
- { name: "ceil", l: x("⌈"), r: x("⌉") },
1294
- { name: "round", l: x("⌊"), r: x("⌉") }
2853
+ { name: "abs", l: w("|"), r: w("|") },
2854
+ { name: "norm", l: w("‖"), r: w("‖") },
2855
+ { name: "floor", l: w("⌊"), r: w("⌋") },
2856
+ { name: "ceil", l: w("⌈"), r: w("⌉") },
2857
+ { name: "round", l: w("⌊"), r: w("⌉") }
1295
2858
  ];
1296
2859
  for (let e of n)
1297
- N[e.name] = (l, r) => N.lr([[e.l, ...l[0], e.r]], r);
2860
+ k[e.name] = (l, r, t) => k.lr([[e.l, ...l[0], e.r]], r, t);
1298
2861
  }
1299
- hn();
1300
- function $(n, e, l, r) {
1301
- let t = n == "under" ? d("munder", null, { accentunder: "true" }) : d("mover", null, { accent: "true" }), o = d("mrow");
1302
- if (o.append(g(e)), r) {
1303
- let s = d("mrow");
1304
- s.append(g(r));
1305
- let f = n == "under" ? d("munder") : d("mover"), c = d("mo", l);
1306
- f.append(c, s), t.append(o, f);
2862
+ gn();
2863
+ function P(n, e, l, r, t) {
2864
+ let o = n === "under" ? b("munder", null, { accentunder: "true" }) : b("mover", null, { accent: "true" }), h = b("mrow");
2865
+ if (h.append(g(e, t)), r) {
2866
+ let d = b("mrow");
2867
+ d.append(g(r, t));
2868
+ let i = b(n === "under" ? "munder" : "mover"), m = b("mo", l);
2869
+ i.append(m, d), o.append(h, i);
1307
2870
  } else {
1308
- let s = d("mo", l);
1309
- t.append(o, s);
2871
+ let d = b("mo", l);
2872
+ o.append(h, d);
1310
2873
  }
1311
- return t;
2874
+ return o;
2875
+ }
2876
+ function W(n, e, l) {
2877
+ let r = n === "under" ? b("munder", null, { accentunder: "true" }) : b("mover", null, { accent: "true" }), t = b("mrow");
2878
+ return t.append(g(e, l)), n === "under" && (t.style.borderBottom = "1px solid black"), n === "over" && (t.style.borderTop = "1px solid black"), r.append(t), r;
1312
2879
  }
1313
- function on(n) {
1314
- let e = d("mrow"), l = d("mo");
2880
+ const E = {
2881
+ "√": k.sqrt,
2882
+ "∛": (n, e, l) => k.root([[w("3")], n[0]], null, l),
2883
+ "∜": (n, e, l) => k.root([[w("4")], n[0]], null, l)
2884
+ };
2885
+ function vn(n) {
2886
+ let e = b("mrow"), l = b("mo");
1315
2887
  l.textContent = "(";
1316
- let r = g(n), t = d("mo");
2888
+ let r = g(n), t = b("mo");
1317
2889
  return t.textContent = ")", e.append(l, r, t), e;
1318
2890
  }
1319
- function _(n) {
1320
- return n.type == "group" ? n.children : [n];
2891
+ function x(n) {
2892
+ return n.type === "group" ? n.kh === "()" ? n.children : [n] : [n];
1321
2893
  }
1322
- function bn(n) {
1323
- return [{ type: "group", value: "", children: n }];
2894
+ function yn(n) {
2895
+ return n.length === 1 && n[0].type === "group" && (n = [w(n[0].kh[0]), ...n[0].children, w(n[0].kh[1])]), n;
1324
2896
  }
1325
- function C(n) {
1326
- return O(n, { type: "v", value: "^" });
2897
+ function wn(n) {
2898
+ return [{ type: "group", value: "", children: n, kh: "()" }];
1327
2899
  }
1328
- function M(n) {
1329
- return O(n, { type: "v", value: "_" });
2900
+ function j(n) {
2901
+ return q(n, { type: "v", value: "^" });
2902
+ }
2903
+ function _(n) {
2904
+ return q(n, { type: "v", value: "_" });
1330
2905
  }
1331
- function P(n) {
1332
- return O(n, { type: "v", value: "/" });
2906
+ function M(n) {
2907
+ return q(n, { type: "v", value: "/" });
1333
2908
  }
1334
- function Y(n) {
2909
+ function G(n) {
1335
2910
  return n && n.value == "br" && n.esc;
1336
2911
  }
1337
- function K(n) {
2912
+ function $(n) {
1338
2913
  if (n.length == 1) {
1339
2914
  let e = n[0];
1340
2915
  if (e.type == "f") {
1341
- if (tn.includes(e.value) || e.value.split(".").at(0) === "arrow")
2916
+ if (Y.includes(e.value) || e.value.split(".").at(0) === "arrow")
1342
2917
  return !0;
1343
- for (let l of ln)
2918
+ for (let l of V)
1344
2919
  if (l.limits && e.value == l.id)
1345
2920
  return !0;
1346
- if (e.value == "scripts")
2921
+ if (e.value === "scripts")
1347
2922
  return !1;
1348
- if (e.value == "op") {
1349
- let { dic: l } = an(e);
1350
- return B(l.limits);
2923
+ if (e.value === "limits")
2924
+ return !0;
2925
+ if (e.value === "op") {
2926
+ let { dic: l } = tn(e);
2927
+ return T(l.limits);
1351
2928
  }
1352
2929
  }
1353
- if (e.type == "v" && rn.includes(e.value))
2930
+ if (e.type == "v" && nn.includes(e.value))
1354
2931
  return !0;
1355
2932
  } else
1356
2933
  return !1;
1357
2934
  }
1358
- function F(n, e) {
1359
- return n.value == e && n.type == "v" && !n.esc;
2935
+ function F(n) {
2936
+ return J(n, { type: "v", value: "." });
1360
2937
  }
1361
- function T(n) {
1362
- return W(n, { type: "v", value: "." });
1363
- }
1364
- function nn(n) {
2938
+ function U(n) {
1365
2939
  return n && (n.type == "f" || n.type == "v" && n.value.match(/[a-z]/));
1366
2940
  }
1367
- function mn(n) {
2941
+ function kn(n) {
1368
2942
  return n && n.type == "v" && n.value == "!" && !n.esc;
1369
2943
  }
1370
- let S = { type: "v", value: "," };
1371
- function x(n) {
2944
+ let A = { type: "v", value: "," };
2945
+ function w(n) {
1372
2946
  return { type: "v", value: n };
1373
2947
  }
1374
- function W(n, e) {
2948
+ function J(n, e) {
1375
2949
  return !n || !e ? !1 : n.type === e.type && n.value === e.value;
1376
2950
  }
1377
- function O(n, e) {
2951
+ function q(n, e) {
1378
2952
  return !n || !e ? !1 : n.type === e.type && n.value === e.value && (n == null ? void 0 : n.esc) === (e == null ? void 0 : e.esc);
1379
2953
  }
1380
- function J(n) {
1381
- if (!n)
2954
+ function S(n, ...e) {
2955
+ return e.includes(n == null ? void 0 : n.type);
2956
+ }
2957
+ function O(n) {
2958
+ if (!n || !n[0])
1382
2959
  return [];
1383
- for (; n.length > 0 && n[0].type === "blank"; )
1384
- n.shift();
1385
- for (; n.length > 0 && n.at(-1).type === "blank"; )
1386
- n.pop();
1387
- return n;
2960
+ let e = 0, l = n.length;
2961
+ return n[0].type === "blank" && (e = 1), n.at(-1).type === "blank" && l--, n.slice(e, l);
1388
2962
  }
1389
- function H(n) {
2963
+ function L(n) {
1390
2964
  let e = [];
1391
2965
  for (let l in n) {
1392
2966
  e.push({ type: "f", value: l }), e.push({ type: "v", value: ":" });
1393
2967
  for (let r of n[l])
1394
- W(r, S) && (r.esc = !0);
1395
- e.push(...n[l]), Number(l) + 1 != Object.keys(n).length && e.push(S);
2968
+ J(r, A) && (r.esc = !0);
2969
+ e.push(...n[l]), Number(l) + 1 != Object.keys(n).length && e.push(A);
1396
2970
  }
1397
2971
  return e;
1398
2972
  }
1399
- function vn(n) {
1400
- if (n = J(n), !n.find((t) => O(t, x(":"))))
1401
- return n;
2973
+ function qn(n) {
2974
+ n = O(n);
1402
2975
  const e = new Object();
1403
2976
  let l = "", r = [];
1404
- n.push(S);
2977
+ n.push(A);
1405
2978
  for (let t = 0; t < n.length; t++)
1406
- !l && n[t].type != "blank" ? l = n[t].value : r.length ? O(n[t], S) ? (e[l] = J(r), l = "", r = []) : r.push(n[t]) : O(n[t], x(":")) && r.push(n[t + 1]);
2979
+ !l && n[t].type != "blank" ? l = n[t].value : r.length ? q(n[t], A) ? (e[l] = O(r), l = "", r = []) : r.push(n[t]) : q(n[t], w(":")) && r.push(n[t + 1]);
1407
2980
  return e;
1408
2981
  }
1409
- function B(n) {
2982
+ function C(n, e) {
2983
+ var r;
2984
+ if (!((r = n == null ? void 0 : n[e]) != null && r[0]))
2985
+ return;
2986
+ const l = n[e][0];
2987
+ if (l.type === "sharp") {
2988
+ if (l.value === "true")
2989
+ return !0;
2990
+ if (l.value === "false")
2991
+ return !1;
2992
+ if (l.value === "none")
2993
+ return null;
2994
+ if (l.children)
2995
+ return l.children.find((t) => q(t, w(":"))) ? qn(l.children) : l.children.map((t) => t.value).join("");
2996
+ }
2997
+ return n[e].map((t) => t.value).join("");
2998
+ }
2999
+ function T(n) {
1410
3000
  var e;
1411
- return O((e = J(n)) == null ? void 0 : e[0], { type: "sharp", value: "true" });
3001
+ return q((e = O(n)) == null ? void 0 : e[0], { type: "sharp", value: "true" });
1412
3002
  }
1413
- function U(n) {
1414
- var e, l, r, t, o, s, f, c, m, y, v, b, q;
3003
+ function en(n) {
3004
+ var e, l, r;
1415
3005
  {
1416
- let p = [], a = /[0-9]/, i = "";
1417
- for (let u = 0; u < n.length; u++) {
1418
- let h = n[u];
1419
- h.value.match(a) || (e = n[u - 1]) != null && e.value.match(a) && T(h) && ((l = n[u + 1]) != null && l.value.match(a)) ? i += h.value : p.push(h), h.value.match(a) && (!n[u + 1] || !n[u + 1].value.match(a)) && !(T(n[u + 1]) && ((r = n[u + 2]) != null && r.value.match(a))) && (p.push({ type: "v", value: i }), i = "");
3006
+ let t = [], o = /[0-9]/, h = "";
3007
+ for (let d = 0; d < n.length; d++) {
3008
+ let i = n[d];
3009
+ i.value.match(o) || (e = n[d - 1]) != null && e.value.match(o) && F(i) && ((l = n[d + 1]) != null && l.value.match(o)) ? h += i.value : t.push(i), i.value.match(o) && (!n[d + 1] || !n[d + 1].value.match(o)) && !(F(n[d + 1]) && ((r = n[d + 2]) != null && r.value.match(o))) && (t.push({ type: "v", value: h }), h = "");
1420
3010
  }
1421
- n = p;
3011
+ n = t;
1422
3012
  }
1423
3013
  {
1424
- let p = [];
1425
- for (let a = 0; a < n.length; a++) {
1426
- let i = n[a];
1427
- if (i.value == "\\" && i.type == "v") {
1428
- if (n != null && n[a + 1]) {
1429
- let u = n[a + 1];
1430
- if (u.value == "\\" && u.type == "v")
1431
- p.push({ type: "v", value: "\\" }), a++;
1432
- else if (u.type == "blank")
1433
- p.push({ type: "v", value: "br", esc: !0 }), a++;
1434
- else if (u.type == "f") {
1435
- let h = u.value;
1436
- p.push({ type: "v", value: h[0] }), p.push({ type: h.length == 2 ? "v" : "f", value: h.slice(1) }), a++;
1437
- } else if (u.type === "sharp")
1438
- p.push({ type: "v", value: "#" }), a++;
3014
+ let t = [];
3015
+ for (let o = 0; o < n.length; o++) {
3016
+ let h = n[o];
3017
+ if (q(h, w("\\"))) {
3018
+ if (n != null && n[o + 1]) {
3019
+ let d = n[o + 1];
3020
+ if (J(d, w("\\")))
3021
+ t.push({ type: "v", value: "\\", esc: !0 }), o++;
3022
+ else if (d.type === "blank")
3023
+ t.push({ type: "v", value: "br", esc: !0 }), o++;
3024
+ else if (d.type === "f") {
3025
+ let i = d.value;
3026
+ t.push({ type: "v", value: i[0] }), t.push({ type: i.length == 2 ? "v" : "f", value: i.slice(1) }), o++;
3027
+ } else if (d.type === "sharp")
3028
+ t.push({ type: "v", value: "#" }), o++;
1439
3029
  else {
1440
- let h = u;
1441
- h.esc = !0, p.push(h), a++;
3030
+ let i = d;
3031
+ i.esc = !0, t.push(i), o++;
1442
3032
  }
1443
3033
  }
1444
3034
  } else
1445
- p.push(i);
3035
+ t.push(h);
1446
3036
  }
1447
- n = p;
3037
+ n = t;
1448
3038
  }
3039
+ return n;
3040
+ }
3041
+ function ln(n) {
3042
+ var e, l, r, t, o, h, d, i, m, v;
1449
3043
  {
1450
- const p = [];
1451
- for (let a = 0; a < n.length; a++) {
1452
- const i = n[a];
1453
- if (i.type === "sharp") {
1454
- if (((t = n[a + 1]) == null ? void 0 : t.type) === "group") {
1455
- i.children = n[a + 1].children;
1456
- for (let h in i.children)
1457
- i.children[h].value === "\\" && i.children[h].type === "v" && i.children[Number(h) + 1] && (i.children[Number(h) + 1].esc = !0);
1458
- const u = i.children.map((h) => h.value).join("");
1459
- u.match(/^[0-9\+\-\*\/()]+$/), i.value = u;
3044
+ let f = [];
3045
+ for (let p = 0; p < n.length; p++) {
3046
+ let u = n[p];
3047
+ if (u.esc)
3048
+ f.push(u);
3049
+ else if (u.type == "v") {
3050
+ let s = p, a = u.value, c = [];
3051
+ for (D[a] && c.push(a); ((e = n == null ? void 0 : n[s + 1]) == null ? void 0 : e.type) == "v" && a.length <= B; )
3052
+ a += n[s + 1].value, D[a] && c.push(a), s++;
3053
+ if (c.length) {
3054
+ let y = { type: "f", value: D[c.at(-1)], src: c.at(-1) };
3055
+ f.push(y), p += c.at(-1).length - 1;
1460
3056
  } else
1461
- i.value = (o = n[a + 1]) == null ? void 0 : o.value, ((s = n[a + 2]) == null ? void 0 : s.type) === "f" && (i.value += n[a + 2].value, a++);
1462
- p.push(i), a++;
1463
- continue;
3057
+ f.push(u);
1464
3058
  } else
1465
- p.push(i);
3059
+ f.push(u);
1466
3060
  }
1467
- n = p;
3061
+ n = f;
1468
3062
  }
1469
3063
  {
1470
- let p = [];
1471
- for (let a = 0; a < n.length; a++) {
1472
- let i = n[a];
1473
- if (i.esc)
1474
- p.push(i);
1475
- else if (i.type == "v") {
1476
- let u = a, h = i.value, w = [];
1477
- for (R[h] && w.push(h); ((f = n == null ? void 0 : n[u + 1]) == null ? void 0 : f.type) == "v" && h.length <= G; )
1478
- h += n[u + 1].value, R[h] && w.push(h), u++;
1479
- if (w.length) {
1480
- let j = { type: "f", value: R[w.at(-1)] };
1481
- p.push(j), a += w.at(-1).length - 1;
1482
- } else
1483
- p.push(i);
1484
- } else
1485
- p.push(i);
3064
+ let f = [];
3065
+ for (let p = 0; p < n.length; p++) {
3066
+ let u = n[p];
3067
+ u.type == "v" && ((l = n == null ? void 0 : n[p + 1]) == null ? void 0 : l.type) == "blank" && ((r = n == null ? void 0 : n[p + 2]) == null ? void 0 : r.type) == "str" ? (f.push(u), f.push({ type: "f", value: "space" })) : u.type == "str" && ((t = n == null ? void 0 : n[p + 1]) == null ? void 0 : t.type) == "blank" && ((o = n == null ? void 0 : n[p + 2]) == null ? void 0 : o.type) == "v" ? (f.push(u), f.push({ type: "f", value: "space" })) : f.push(u);
1486
3068
  }
1487
- n = p;
3069
+ n = f;
1488
3070
  }
1489
3071
  {
1490
- let p = [];
1491
- for (let a = 0; a < n.length; a++) {
1492
- let i = n[a];
1493
- i.type == "v" && ((c = n == null ? void 0 : n[a + 1]) == null ? void 0 : c.type) == "blank" && ((m = n == null ? void 0 : n[a + 2]) == null ? void 0 : m.type) == "str" ? (p.push(i), p.push({ type: "f", value: "space" })) : i.type == "str" && ((y = n == null ? void 0 : n[a + 1]) == null ? void 0 : y.type) == "blank" && ((v = n == null ? void 0 : n[a + 2]) == null ? void 0 : v.type) == "v" ? (p.push(i), p.push({ type: "f", value: "space" })) : p.push(i);
3072
+ let f = [], p = [];
3073
+ for (let u = 0; u < n.length; u++) {
3074
+ let s = n[u];
3075
+ kn(n == null ? void 0 : n[u + 1]) && !j(s) && !_(s) && !M(s) ? p.push(s) : p.length ? (p.push(s), f.push({ type: "group1", value: "", children: p }), p = []) : f.push(s);
3076
+ }
3077
+ n = f;
3078
+ }
3079
+ {
3080
+ let f = [], p = "";
3081
+ for (let u = 0; u < n.length; u++) {
3082
+ let s = n[u];
3083
+ if (U(s) && F(n[u + 1]))
3084
+ if (p || !p && s.type == "f") {
3085
+ p += s.value + ".", u++;
3086
+ continue;
3087
+ } else
3088
+ f.push(s);
3089
+ else
3090
+ p && U(s) ? (p += s.value, F(n[u + 1]) || (f.push({ type: "f", value: p }), p = "")) : f.push(s);
1494
3091
  }
1495
- n = p;
3092
+ n = f;
1496
3093
  }
1497
3094
  {
1498
- let p = [], a = [];
1499
- for (let i = 0; i < n.length; i++) {
1500
- let u = n[i];
1501
- mn(n == null ? void 0 : n[i + 1]) && !C(u) && !M(u) && !P(u) ? a.push(u) : a.length ? (a.push(u), p.push({ type: "group1", value: "", children: a }), a = []) : p.push(u);
3095
+ const f = [];
3096
+ for (let p = 0; p < n.length; p++) {
3097
+ const u = n[p];
3098
+ if (u.type === "v" && E[u.value] && n[p + 1] && (u.type = "f", !(S(n[p + 1], "group") && n[p + 1].kh === "()"))) {
3099
+ f.push(u), f.push({ type: "group", children: [n[p + 1]], value: "", kh: "()" }), p++;
3100
+ continue;
3101
+ }
3102
+ f.push(u);
1502
3103
  }
1503
- n = p;
3104
+ n = f;
1504
3105
  }
1505
3106
  {
1506
- let p = [], a = "";
1507
- for (let i = 0; i < n.length; i++) {
1508
- let u = n[i];
1509
- if (nn(u) && T(n[i + 1]))
1510
- if (a || !a && u.type == "f") {
1511
- a += u.value + ".", i++;
3107
+ let f = [];
3108
+ for (let p = 0; p < n.length; p++) {
3109
+ let u = n[p];
3110
+ const s = n[p + 1];
3111
+ if (u.type === "f" && s && s.type === "group") {
3112
+ if (s.kh === "()") {
3113
+ u.children = n[p + 1].children, f.push(u), p++;
1512
3114
  continue;
3115
+ } else if (s.kh[0] === "(") {
3116
+ const a = [];
3117
+ a.push(...s.children), a.push(w(s.kh[1]));
3118
+ for (let c = p + 2; c < n.length; c++)
3119
+ if (n[c])
3120
+ if (q(n[c], w(")"))) {
3121
+ p = c;
3122
+ break;
3123
+ } else
3124
+ a.push(n[c]);
3125
+ u.children = a, f.push(u);
1513
3126
  } else
1514
- p.push(u);
1515
- else
1516
- a && nn(u) ? (a += u.value, T(n[i + 1]) || (p.push({ type: "f", value: a }), a = "")) : p.push(u);
3127
+ f.push(u);
3128
+ for (let a in u.children || [])
3129
+ u.children[a].value === "\\" && u.children[a].type === "v" && u.children[Number(a) + 1] && (u.children[Number(a) + 1].esc = !0);
3130
+ } else
3131
+ f.push(u);
1517
3132
  }
1518
- n = p;
3133
+ n = f;
1519
3134
  }
1520
3135
  {
1521
- let p = [];
1522
- for (let a = 0; a < n.length; a++) {
1523
- let i = n[a];
1524
- if (i.type == "f" && n[a + 1] && n[a + 1].type == "group") {
1525
- i.children = n[a + 1].children;
1526
- for (let u in i.children)
1527
- i.children[u].value == "\\" && i.children[u].type == "v" && i.children[Number(u) + 1] && (i.children[Number(u) + 1].esc = !0);
1528
- p.push(i), a++;
3136
+ const f = [], p = [
3137
+ "`",
3138
+ "~",
3139
+ "!",
3140
+ "@",
3141
+ "%",
3142
+ "*",
3143
+ "(",
3144
+ ")",
3145
+ "-",
3146
+ "+",
3147
+ "=",
3148
+ "[",
3149
+ "]",
3150
+ "{",
3151
+ "}",
3152
+ "|",
3153
+ ":",
3154
+ ";",
3155
+ "<",
3156
+ ",",
3157
+ ">",
3158
+ ".",
3159
+ "?"
3160
+ ];
3161
+ for (let u = 0; u < n.length; u++) {
3162
+ const s = n[u], a = n[u + 1];
3163
+ if (S(a, "group") && a.kh != "()" && S(s, "f", "str", "v") && !s.value.match(/[0-9]/) && !_(s) && !j(s) && (!(S(s, "f") && p.includes(s.src) || S(s, "v") && p.includes(s.value)) || s.esc)) {
3164
+ f.push({ type: "group1", value: "", children: [s, a] }), u++;
3165
+ continue;
3166
+ }
3167
+ f.push(s);
3168
+ }
3169
+ n = f;
3170
+ }
3171
+ {
3172
+ const f = [];
3173
+ for (let p = 0; p < n.length; p++) {
3174
+ const u = n[p];
3175
+ if (u.type === "sharp") {
3176
+ if (!u.value)
3177
+ if (((h = n[p + 1]) == null ? void 0 : h.type) === "group") {
3178
+ u.children = n[p + 1].children;
3179
+ for (let a in u.children)
3180
+ u.children[a].value === "\\" && u.children[a].type === "v" && u.children[Number(a) + 1] && (u.children[Number(a) + 1].esc = !0);
3181
+ const s = u.children.map((a) => a.value).join("");
3182
+ s.match(/^[0-9\+\-\*\/()]+$/), u.value = s;
3183
+ } else
3184
+ console.log("+1", n[p + 1]), u.value = (d = n[p + 1]) == null ? void 0 : d.value, ((i = n[p + 2]) == null ? void 0 : i.type) === "f" && (u.value += n[p + 2].value, p++);
3185
+ f.push(u), p++;
1529
3186
  continue;
1530
3187
  } else
1531
- p.push(i);
3188
+ f.push(u);
1532
3189
  }
1533
- n = p;
3190
+ n = f;
1534
3191
  }
1535
3192
  {
1536
- let p = [];
1537
- for (let a = 0; a < n.length; a++) {
1538
- let i = n[a], u = a;
1539
- if (O(i, { type: "f", value: "prime" })) {
1540
- for (; n[u] && O(n[u], { type: "f", value: "prime" }); )
1541
- u++;
1542
- const h = u - a;
1543
- n[a - 1] && !C(n[a - 1]) && !M(n[a - 1]) && !W(n[a - 1], { type: "f", value: "prime" }) && n[a - 1].type != "blank" && p.push({ type: "v", value: "^" }), p.push({ type: "v", value: "'".repeat(h), children: [{ type: "v", value: String(h) }] }), a += h - 1;
3193
+ let f = [];
3194
+ for (let p = 0; p < n.length; p++) {
3195
+ const u = n[p + 1], s = n[p];
3196
+ let a = p + 1;
3197
+ if (q(u, { type: "f", value: "prime" })) {
3198
+ for (; n[a] && q(n[a], { type: "f", value: "prime" }); )
3199
+ a++;
3200
+ const c = a - (p + 1);
3201
+ if (!j(s) && !_(s) && s.type != "blank")
3202
+ f.push({
3203
+ type: "f",
3204
+ value: "attach",
3205
+ children: [
3206
+ s,
3207
+ A,
3208
+ ...L({
3209
+ tr: [{ type: "v", value: "'".repeat(c) }]
3210
+ })
3211
+ ]
3212
+ });
3213
+ else {
3214
+ f.push(s);
3215
+ for (let y = 0; y < c; y++)
3216
+ f.push({ type: "f", value: "prime" });
3217
+ }
3218
+ p += c;
1544
3219
  continue;
1545
3220
  }
1546
- p.push(i);
3221
+ f.push(s);
1547
3222
  }
1548
- n = p;
3223
+ n = f;
1549
3224
  }
1550
3225
  {
1551
- let p = [];
1552
- for (let a of n)
1553
- a.type != "blank" && p.push(a);
1554
- n = p;
3226
+ let f = [];
3227
+ for (let p of n)
3228
+ p.type != "blank" && f.push(p);
3229
+ n = f;
1555
3230
  }
1556
3231
  {
1557
- let p = [], a = NaN;
1558
- for (let u = 0; u < n.length; u++) {
1559
- const h = n[u];
1560
- !C(h) && !M(h) && ((C(n[u + 1]) || M(n[u + 1])) && !(C(n[u - 1]) || M(n[u - 1])) && (a || (a = u)), (C(n[u - 1]) || M(n[u - 1])) && !(C(n[u + 1]) || M(n[u + 1])) && (p.push([a, u]), a = NaN));
3232
+ let f = [], p = NaN;
3233
+ for (let s = 0; s < n.length; s++) {
3234
+ const a = n[s];
3235
+ !j(a) && !_(a) && ((j(n[s + 1]) || _(n[s + 1])) && !(j(n[s - 1]) || _(n[s - 1])) && (p || (p = s)), (j(n[s - 1]) || _(n[s - 1])) && !(j(n[s + 1]) || _(n[s + 1])) && (f.push([p, s]), p = NaN));
1561
3236
  }
1562
- let i = [];
1563
- for (let u = 0; u < n.length; u++) {
1564
- if (u == ((b = p == null ? void 0 : p[0]) == null ? void 0 : b[0])) {
3237
+ let u = [];
3238
+ for (let s = 0; s < n.length; s++) {
3239
+ if (s == ((m = f == null ? void 0 : f[0]) == null ? void 0 : m[0])) {
1565
3240
  {
1566
- let h = n[p[0][1]];
1567
- for (let w = p[0][1]; w >= p[0][0]; w--) {
1568
- if (C(n[w - 1]) && M(n[w - 3])) {
1569
- let j = K([n[w - 4]]) ? { t: _(h), b: _(n[w - 2]) } : { tr: _(h), br: _(n[w - 2]) };
1570
- h = {
3241
+ let a = n[f[0][1]];
3242
+ for (let c = f[0][1]; c >= f[0][0]; c--) {
3243
+ if (j(n[c - 1]) && _(n[c - 3])) {
3244
+ let y = $([n[c - 4]]) ? { t: x(a), b: x(n[c - 2]) } : { tr: x(a), br: x(n[c - 2]) };
3245
+ a = {
1571
3246
  type: "f",
1572
3247
  value: "attach",
1573
- children: [n[w - 4], S, ...H(j)]
1574
- }, w -= 4 - 1;
3248
+ children: [n[c - 4], A, ...L(y)]
3249
+ }, c -= 4 - 1;
1575
3250
  continue;
1576
3251
  }
1577
- if (M(n[w - 1]) && C(n[w - 3])) {
1578
- let j = K([n[w - 4]]) ? { t: _(n[w - 2]), b: _(h) } : { tr: _(n[w - 2]), br: _(h) };
1579
- h = {
3252
+ if (_(n[c - 1]) && j(n[c - 3])) {
3253
+ let y = $([n[c - 4]]) ? { t: x(n[c - 2]), b: x(a) } : { tr: x(n[c - 2]), br: x(a) };
3254
+ a = {
1580
3255
  type: "f",
1581
3256
  value: "attach",
1582
- children: [n[w - 4], S, ...H(j)]
1583
- }, w -= 4 - 1;
3257
+ children: [n[c - 4], A, ...L(y)]
3258
+ }, c -= 4 - 1;
1584
3259
  continue;
1585
3260
  }
1586
- if (C(n[w - 1])) {
1587
- let j = K([n[w - 2]]) ? { t: _(h) } : { tr: _(h) };
1588
- h = {
3261
+ if (j(n[c - 1])) {
3262
+ let y = $([n[c - 2]]) ? { t: x(a) } : { tr: x(a) };
3263
+ a = {
1589
3264
  type: "f",
1590
3265
  value: "attach",
1591
- children: [n[w - 2], S, ...H(j)]
1592
- }, w -= 2 - 1;
3266
+ children: [n[c - 2], A, ...L(y)]
3267
+ }, c -= 2 - 1;
1593
3268
  continue;
1594
3269
  }
1595
- if (M(n[w - 1])) {
1596
- let j = K([n[w - 2]]) ? { b: _(h) } : { br: _(h) };
1597
- h = {
3270
+ if (_(n[c - 1])) {
3271
+ let y = $([n[c - 2]]) ? { b: x(a) } : { br: x(a) };
3272
+ a = {
1598
3273
  type: "f",
1599
3274
  value: "attach",
1600
- children: [n[w - 2], S, ...H(j)]
1601
- }, w -= 2 - 1;
3275
+ children: [n[c - 2], A, ...L(y)]
3276
+ }, c -= 2 - 1;
1602
3277
  continue;
1603
3278
  }
1604
3279
  }
1605
- i.push(h);
3280
+ u.push(a);
1606
3281
  }
1607
- u += p[0][1] - p[0][0], p = p.slice(1);
3282
+ s += f[0][1] - f[0][0], f = f.slice(1);
1608
3283
  continue;
1609
3284
  }
1610
- i.push(n[u]);
3285
+ u.push(n[s]);
1611
3286
  }
1612
- n = i;
3287
+ n = u;
1613
3288
  }
1614
3289
  {
1615
- let p = [], a = NaN;
1616
- for (let u = 0; u < n.length; u++) {
1617
- const h = n[u];
1618
- P(h) || (P(n[u + 1]) && !P(n[u - 1]) && (a || (a = u)), P(n[u - 1]) && !P(n[u + 1]) && (p.push([a, u]), a = NaN));
3290
+ let f = [], p = NaN;
3291
+ for (let s = 0; s < n.length; s++) {
3292
+ const a = n[s];
3293
+ M(a) || (M(n[s + 1]) && !M(n[s - 1]) && (p || (p = s)), M(n[s - 1]) && !M(n[s + 1]) && (f.push([p, s]), p = NaN));
1619
3294
  }
1620
- let i = [];
1621
- for (let u = 0; u < n.length; u++) {
1622
- if (u == ((q = p == null ? void 0 : p[0]) == null ? void 0 : q[0])) {
3295
+ let u = [];
3296
+ for (let s = 0; s < n.length; s++) {
3297
+ if (s == ((v = f == null ? void 0 : f[0]) == null ? void 0 : v[0])) {
1623
3298
  {
1624
- let h = n[p[0][0]];
1625
- for (let w = p[0][0]; w <= p[0][1]; w++)
1626
- if (P(n[w + 1])) {
1627
- h = {
3299
+ let a = n[f[0][0]];
3300
+ for (let c = f[0][0]; c <= f[0][1]; c++)
3301
+ if (M(n[c + 1])) {
3302
+ a = {
1628
3303
  type: "f",
1629
3304
  value: "frac",
1630
- children: [..._(h), S, ..._(n[w + 2])]
1631
- }, w += 2 - 1;
3305
+ children: [...x(a), A, ...x(n[c + 2])]
3306
+ }, c += 2 - 1;
1632
3307
  continue;
1633
3308
  }
1634
- console.log(1, h), i.push(h);
3309
+ console.log(1, a), u.push(a);
1635
3310
  }
1636
- u += p[0][1] - p[0][0], p.splice(0, 1);
3311
+ s += f[0][1] - f[0][0], f.splice(0, 1);
1637
3312
  continue;
1638
3313
  }
1639
- i.push(n[u]);
3314
+ u.push(n[s]);
1640
3315
  }
1641
- n = i;
3316
+ n = u;
1642
3317
  }
1643
3318
  return n;
1644
3319
  }
1645
- function an(n) {
1646
- let e = "array", l = [], r = [], t = [], o = [];
1647
- for (let f in n.children) {
1648
- const c = n.children[f];
1649
- if (Number(f) + 1 == n.children.length) {
1650
- if (c.type == "blank" && n.children[Number(f) - 1].value.match(/[,;]/))
1651
- break;
1652
- !F(c, ",") && !F(c, ";") && o.push(c), e == "dic" ? (r.push(o), o = []) : l.push(o), t.length && (t.push(l), l = []), o = [];
1653
- } else
1654
- F(c, ",") ? (e == "dic" ? (r.push(o), e = "array") : l.push(o), o = []) : F(c, ";") ? (l.push(o), o = [], t.push(l), l = []) : (o.push(c), F(c, ":") && (e = "dic"));
3320
+ function tn(n) {
3321
+ const e = [[]];
3322
+ for (let i of n.children)
3323
+ q(i, { type: "v", value: "," }) || q(i, { type: "v", value: ";" }) ? (e.push(i.value), e.push([])) : e.at(-1).push(i);
3324
+ const l = [], r = [];
3325
+ for (let i of e)
3326
+ typeof i == "string" ? r.push(i) : i.find((m, v) => S(i[v - 1], "f", "v") && q(m, { type: "v", value: ":" })) ? l.push(i) : r.push(i);
3327
+ let t = [];
3328
+ for (let i = 0; i < r.length; i++) {
3329
+ const m = r[i], v = r[i + 1];
3330
+ m === "," && v === ";" || m === ";" && v === "," ? (t.push(";"), i++) : t.push(r[i]);
1655
3331
  }
1656
- let s = {};
1657
- for (let f of r) {
1658
- let c = !1, m = "", y = [];
1659
- for (let v of f) {
1660
- if (v.value === ":") {
1661
- c = !0;
3332
+ let o;
3333
+ if (typeof t.at(-1) == "string" && (t = t.slice(0, -1)), t.includes(";")) {
3334
+ let i = xn(t, (m) => m === ";");
3335
+ i.at(-1)[0].length === 0 && (i = i.slice(0, -1)), o = i.map((m) => m.filter((v) => typeof v != "string"));
3336
+ } else
3337
+ o = t.filter((i) => typeof i != "string").map((i) => O(i));
3338
+ let d = {};
3339
+ for (let i of l) {
3340
+ let m = !1, v = "", f = [];
3341
+ for (let p of i) {
3342
+ if (q(p, { type: "v", value: ":" })) {
3343
+ m = !0;
1662
3344
  continue;
1663
3345
  }
1664
- c ? y.push(v) : m += v.value;
3346
+ m ? f.push(p) : v += p.value;
1665
3347
  }
1666
- s[m] = U(y);
3348
+ d[v] = ln(en(f));
1667
3349
  }
1668
- return { attr: l, dic: s, array: t };
3350
+ return { attr: o, dic: d };
1669
3351
  }
1670
- function en(n, e = "serif") {
1671
- function l(r) {
1672
- return "abcdefghijklmnopqrstuvwxyz".indexOf(r.toLowerCase());
1673
- }
1674
- switch (e) {
1675
- case "serif":
1676
- return n;
1677
- case "sans":
1678
- const r = [..."𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫"], t = [..."𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓"], o = [..."𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹"];
1679
- return n = n.replace(/[0-9]+/g, (i) => r[i]), n = n.replace(/[a-z]/g, (i) => t[l(i)]), n = n.replace(/[A-Z]/g, (i) => o[l(i)]), n;
1680
- case "frak":
1681
- const s = [..."𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷"], f = [..."𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ"];
1682
- return n = n.replace(/[a-z]/g, (i) => s[l(i)]), n = n.replace(/[A-Z]/g, (i) => f[l(i)]), n;
1683
- case "mono":
1684
- const c = [..."0𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿"], m = [..."𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣"], y = [..."𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉"];
1685
- return n = n.replace(/[0-9]+/g, (i) => c[i]), n = n.replace(/[a-z]/g, (i) => m[l(i)]), n = n.replace(/[A-Z]/g, (i) => y[l(i)]), n;
1686
- case "bb":
1687
- const v = [..."𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡"], b = [..."𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫"], q = [..."𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ"];
1688
- return n = n.replace(/[0-9]+/g, (i) => v[i]), n = n.replace(/[a-z]/g, (i) => b[l(i)]), n = n.replace(/[A-Z]/g, (i) => q[l(i)]), n;
1689
- case "cal":
1690
- const p = [..."𝒶𝒷𝒸𝒹ℯ𝒻ℊ𝒽𝒾𝒿𝓀𝓁𝓂𝓃ℴ𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏"], a = [..."𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵"];
1691
- return n = n.replace(/[a-z]/g, (i) => p[l(i)]), n = n.replace(/[A-Z]/g, (i) => a[l(i)]), n;
3352
+ function xn(n, e) {
3353
+ const l = [[]];
3354
+ for (let r of n)
3355
+ e(r) ? l.push([]) : l.at(-1).push(r);
3356
+ return l;
3357
+ }
3358
+ function rn(n) {
3359
+ const e = [];
3360
+ for (let l of n)
3361
+ e.push(...l, w(","));
3362
+ return e.slice(0, -1);
3363
+ }
3364
+ function X(n, e = "serif") {
3365
+ function l(t) {
3366
+ return "abcdefghijklmnopqrstuvwxyz".indexOf(t.toLowerCase());
1692
3367
  }
3368
+ const r = {
3369
+ sans: {
3370
+ num: "𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫",
3371
+ low: "𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓",
3372
+ up: "𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹"
3373
+ },
3374
+ frak: {
3375
+ low: "𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷",
3376
+ up: "𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ"
3377
+ },
3378
+ mono: {
3379
+ num: "𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿",
3380
+ low: "𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣",
3381
+ up: "𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉"
3382
+ },
3383
+ bb: {
3384
+ num: "𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡",
3385
+ low: "𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫",
3386
+ up: "𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ"
3387
+ },
3388
+ cal: {
3389
+ low: "𝒶𝒷𝒸𝒹ℯ𝒻ℊ𝒽𝒾𝒿𝓀𝓁𝓂𝓃ℴ𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏",
3390
+ up: "𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵"
3391
+ }
3392
+ };
3393
+ return e === "serif" || (n = n.replace(/[0-9]/g, (t) => [...r[e].num][t]), n = n.replace(/[a-z]/g, (t) => [...r[e].low][l(t)]), n = n.replace(/[A-Z]/g, (t) => [...r[e].up][l(t)])), n;
1693
3394
  }
1694
3395
  function g(n, e) {
1695
3396
  let l = document.createDocumentFragment();
1696
- n = U(n);
3397
+ n = en(n);
1697
3398
  {
1698
- let r = !1, t = (o) => {
1699
- for (let s of o) {
1700
- if (Y(s)) {
1701
- r = !0;
1702
- return;
1703
- }
1704
- s.type == "group" && t(s.children);
1705
- }
1706
- };
1707
- if (t(n), r) {
1708
- {
1709
- let s = [];
1710
- for (let f in n) {
1711
- let c = n[f];
1712
- c.type == "group" ? (s.push(x("(")), s.push(...U(c.children)), s.push(x(")"))) : s.push(c);
1713
- }
1714
- n = s;
3399
+ let r = !1;
3400
+ for (let t in n) {
3401
+ const o = n[t];
3402
+ if (G(o)) {
3403
+ r = !0;
3404
+ break;
1715
3405
  }
1716
- for (let s = 0; s < n.length; s++) {
1717
- const f = n[s];
1718
- Y(f) && (n[s] = S);
3406
+ }
3407
+ if (r) {
3408
+ const t = [[]];
3409
+ for (let o = 0; o < n.length; o++) {
3410
+ const h = n[o];
3411
+ G(h) ? t.push([]) : t.at(-1).push(h);
1719
3412
  }
1720
- let o = [];
1721
- o.push({ type: "f", value: "x_table", children: n }), n = o;
1722
- } else {
1723
- let o = [];
1724
- for (let s of n)
1725
- s.type == "v" && s.value == "&" && !s.esc || o.push(s);
1726
- n = o;
3413
+ return K(t);
1727
3414
  }
1728
3415
  }
3416
+ n = ln(n);
3417
+ {
3418
+ let r = [];
3419
+ for (let t of n)
3420
+ t.type == "v" && t.value == "&" && !t.esc || r.push(t);
3421
+ n = r;
3422
+ }
1729
3423
  {
1730
3424
  let r = [];
1731
3425
  for (let t of n)
1732
3426
  t.type == "group1" ? r.push(...t.children) : r.push(t);
1733
3427
  n = r;
1734
3428
  }
3429
+ console.log("ast3", structuredClone(n));
1735
3430
  for (let r in n) {
1736
3431
  let t = Number(r), o = n[t];
1737
- if (o.type == "f" && o.children) {
1738
- let { attr: s, dic: f, array: c } = an(o);
1739
- if (N[o.value]) {
1740
- console.log(s, f, c);
1741
- let m = N[o.value](s, f, c, e);
1742
- l.append(m);
1743
- } else if (k[o.value]) {
1744
- let m = d("mi", k[o.value]);
1745
- l.append(m, g(bn(o.children)));
1746
- }
1747
- }
1748
- if (o.type == "f" && !o.children) {
1749
- if (k[o.value]) {
1750
- let s, f = null;
1751
- const c = {
3432
+ if (o.type === "f") {
3433
+ if (o.children && (o.kh === "()" || !o.kh)) {
3434
+ let { attr: h, dic: d } = tn(o);
3435
+ if (k[o.value]) {
3436
+ let i = k[o.value](h, d, e);
3437
+ l.append(i);
3438
+ } else if (z[o.value]) {
3439
+ let i = b("mi", z[o.value]);
3440
+ l.append(i, g(wn(o.children), e));
3441
+ } else if (E[o.value]) {
3442
+ let i = E[o.value](h, d, e);
3443
+ l.append(i);
3444
+ }
3445
+ } else if (z[o.value]) {
3446
+ let h, d = null;
3447
+ const i = {
1752
3448
  " ": "0.36em",
1753
3449
  " ": "0.5em",
1754
3450
  " ": "1em",
@@ -1761,54 +3457,57 @@ function g(n, e) {
1761
3457
  " ": "0.17em",
1762
3458
  " ": "0.09em"
1763
3459
  };
1764
- k[o.value].match(/[a-zA-Z\u0391-\u03C9]/) ? s = "mi" : c[k[o.value]] ? (s = "mspace", f = { width: c[k[o.value]] }) : s = "mo";
1765
- let m = d(s, k[o.value], f);
3460
+ z[o.value].match(/[a-zA-Z\u0391-\u03C9]/) ? h = "mi" : i[z[o.value]] ? (h = "mspace", d = { width: i[z[o.value]] }) : h = "mo";
3461
+ let m = b(h, z[o.value], d);
1766
3462
  l.append(m);
1767
- } else if (N[o.value]) {
1768
- let s = N[o.value](null, null, null, e);
1769
- l.append(s);
3463
+ } else if (k[o.value]) {
3464
+ let h = k[o.value](null, null, e);
3465
+ l.append(h);
3466
+ } else if (E[o.value]) {
3467
+ let h = E[o.value]([o.children], null, e);
3468
+ l.append(h);
1770
3469
  }
1771
3470
  }
1772
3471
  if (o.type == "str") {
1773
- let s = d("ms", en(o.value, e));
1774
- l.append(s);
3472
+ let h = b("ms", X(o.value, e));
3473
+ l.append(h);
1775
3474
  }
1776
3475
  if (o.type === "v" || o.type === "sharp") {
1777
- let s;
1778
- o.value.match(/[0-9.]+/) ? s = "mn" : o.value.match(/[a-zA-Z\u0391-\u03C9]/) ? s = "mi" : (o.value.match(/^'+$/) && o.value.length > 1 && (o.value = o.value.replaceAll("'", k.prime)), s = "mo");
1779
- let f = d(s, en(o.value, e));
1780
- l.append(f);
3476
+ let h, d = o.value;
3477
+ o.value.match(/[0-9.]+/) ? h = "mn" : o.value.match(/[a-zA-Z\u0391-\u03C9]/) ? h = "mi" : (o.value.match(/^'+$/) && (o.esc || (d = o.value.replaceAll("'", z.prime))), h = "mo"), o.type === "sharp" && o.value.startsWith("emoji.") && (h = "mi", d = dn[o.value.replace("emoji.", "")]);
3478
+ let i = b(h, X(d, e));
3479
+ l.append(i);
1781
3480
  }
1782
- o.type == "group" && l.append(on(o.children));
3481
+ o.type === "group" && l.append(k.lr([[o]], null, e));
1783
3482
  }
1784
3483
  return l;
1785
3484
  }
1786
3485
  var I = {
1787
- emoji: !1
3486
+ emoji: null
1788
3487
  };
1789
- function yn(n) {
3488
+ function _n(n) {
1790
3489
  for (let e in n)
1791
3490
  I[e] && (I[e] = n[e]);
1792
3491
  }
1793
- function gn(n) {
1794
- let e = dn(n);
1795
- console.log(e);
1796
- let l = d("math");
1797
- l.setAttribute("display", "block");
1798
- let r = g(e);
1799
- return l.append(r), l;
3492
+ function jn(n, e) {
3493
+ let l = cn(n);
3494
+ console.log("ast1", l);
3495
+ let r = b("math");
3496
+ e || r.setAttribute("display", "block");
3497
+ let t = g(l);
3498
+ return r.append(t), r;
1800
3499
  }
1801
- function wn(n) {
1802
- return gn(n).outerHTML;
3500
+ function An(n) {
3501
+ return jn(n).outerHTML;
1803
3502
  }
1804
- const qn = {
3503
+ const zn = {
1805
3504
  lan: "0.11.1",
1806
3505
  symbol: "0.11.1"
1807
3506
  };
1808
3507
  export {
1809
- yn as init,
1810
- gn as toMML,
1811
- wn as toMMLHTML,
1812
- qn as version
3508
+ _n as init,
3509
+ jn as toMML,
3510
+ An as toMMLHTML,
3511
+ zn as version
1813
3512
  };
1814
3513
  //# sourceMappingURL=xmmath.es.js.map