-applyTransformation.cmo: applyTransformation.cmi
-applyTransformation.cmx: applyTransformation.cmi
-matitaclean.cmo: matitaMisc.cmi matitaInit.cmi matitaclean.cmi
-matitaclean.cmx: matitaMisc.cmx matitaInit.cmx matitaclean.cmi
-matitaFilesystem.cmo: matitaFilesystem.cmi
-matitaFilesystem.cmx: matitaFilesystem.cmi
+applyTransformation.cmo: applyTransformation.cmi
+applyTransformation.cmx: applyTransformation.cmi
+matitaclean.cmo: matitaMisc.cmi matitaInit.cmi matitaclean.cmi
+matitaclean.cmx: matitaMisc.cmx matitaInit.cmx matitaclean.cmi
+matitaFilesystem.cmo: matitaFilesystem.cmi
+matitaFilesystem.cmx: matitaFilesystem.cmi
matitaMathView.cmo: virtuals.cmi matitaTypes.cmi matitaMisc.cmi \
matitaGuiTypes.cmi matitaGtkMisc.cmi matitaGeneratedGui.cmo \
matitaExcPp.cmi lablGraphviz.cmi cicMathView.cmi buildTimeConf.cmo \
- applyTransformation.cmi matitaMathView.cmi
+ applyTransformation.cmi matitaMathView.cmi
matitaMathView.cmx: virtuals.cmx matitaTypes.cmx matitaMisc.cmx \
matitaGuiTypes.cmi matitaGtkMisc.cmx matitaGeneratedGui.cmx \
matitaExcPp.cmx lablGraphviz.cmx cicMathView.cmx buildTimeConf.cmx \
- applyTransformation.cmx matitaMathView.cmi
-matitaTypes.cmo: matitaTypes.cmi
-matitaTypes.cmx: matitaTypes.cmi
-buildTimeConf.cmo:
-buildTimeConf.cmx:
-matitac.cmo: matitaclean.cmi matitaMisc.cmi matitaInit.cmi matitaEngine.cmi
-matitac.cmx: matitaclean.cmx matitaMisc.cmx matitaInit.cmx matitaEngine.cmx
-matitaGeneratedGui.cmo:
-matitaGeneratedGui.cmx:
-matitaMisc.cmo: matitaGuiTypes.cmi buildTimeConf.cmo matitaMisc.cmi
-matitaMisc.cmx: matitaGuiTypes.cmi buildTimeConf.cmx matitaMisc.cmi
-predefined_virtuals.cmo: virtuals.cmi predefined_virtuals.cmi
-predefined_virtuals.cmx: virtuals.cmx predefined_virtuals.cmi
+ applyTransformation.cmx matitaMathView.cmi
+matitaTypes.cmo: matitaTypes.cmi
+matitaTypes.cmx: matitaTypes.cmi
+buildTimeConf.cmo:
+buildTimeConf.cmx:
+matitac.cmo: matitaclean.cmi matitaMisc.cmi matitaInit.cmi matitaEngine.cmi
+matitac.cmx: matitaclean.cmx matitaMisc.cmx matitaInit.cmx matitaEngine.cmx
+matitaGeneratedGui.cmo:
+matitaGeneratedGui.cmx:
+matitaMisc.cmo: matitaGuiTypes.cmi buildTimeConf.cmo matitaMisc.cmi
+matitaMisc.cmx: matitaGuiTypes.cmi buildTimeConf.cmx matitaMisc.cmi
+predefined_virtuals.cmo: virtuals.cmi predefined_virtuals.cmi
+predefined_virtuals.cmx: virtuals.cmx predefined_virtuals.cmi
cicMathView.cmo: matitaMisc.cmi matitaGuiTypes.cmi matitaGtkMisc.cmi \
- buildTimeConf.cmo applyTransformation.cmi cicMathView.cmi
+ buildTimeConf.cmo applyTransformation.cmi cicMathView.cmi
cicMathView.cmx: matitaMisc.cmx matitaGuiTypes.cmi matitaGtkMisc.cmx \
- buildTimeConf.cmx applyTransformation.cmx cicMathView.cmi
-matitadaemon.cmo: matitaInit.cmi matitaFilesystem.cmi matitaEngine.cmi \
- matitaAuthentication.cmi applyTransformation.cmi
-matitadaemon.cmx: matitaInit.cmx matitaFilesystem.cmx matitaEngine.cmx \
- matitaAuthentication.cmx applyTransformation.cmx
+ buildTimeConf.cmx applyTransformation.cmx cicMathView.cmi
+matitadaemon.cmo: matitaInit.cmi matitaFilesystem.cmi matitaExcPp.cmi \
+ matitaEngine.cmi matitaAuthentication.cmi applyTransformation.cmi
+matitadaemon.cmx: matitaInit.cmx matitaFilesystem.cmx matitaExcPp.cmx \
+ matitaEngine.cmx matitaAuthentication.cmx applyTransformation.cmx
matitaGtkMisc.cmo: matitaTypes.cmi matitaGeneratedGui.cmo buildTimeConf.cmo \
- matitaGtkMisc.cmi
+ matitaGtkMisc.cmi
matitaGtkMisc.cmx: matitaTypes.cmx matitaGeneratedGui.cmx buildTimeConf.cmx \
- matitaGtkMisc.cmi
-matita.cmo: predefined_virtuals.cmi matitaScript.cmi matitaInit.cmi \
- matitaGui.cmi matitaGtkMisc.cmi buildTimeConf.cmo applyTransformation.cmi
-matita.cmx: predefined_virtuals.cmx matitaScript.cmx matitaInit.cmx \
- matitaGui.cmx matitaGtkMisc.cmx buildTimeConf.cmx applyTransformation.cmx
-virtuals.cmo: virtuals.cmi
-virtuals.cmx: virtuals.cmi
-lablGraphviz.cmo: lablGraphviz.cmi
-lablGraphviz.cmx: lablGraphviz.cmi
-matitaEngine.cmo: applyTransformation.cmi matitaEngine.cmi
-matitaEngine.cmx: applyTransformation.cmx matitaEngine.cmi
+ matitaGtkMisc.cmi
+virtuals.cmo: virtuals.cmi
+virtuals.cmx: virtuals.cmi
+lablGraphviz.cmo: lablGraphviz.cmi
+lablGraphviz.cmx: lablGraphviz.cmi
+matitaEngine.cmo: applyTransformation.cmi matitaEngine.cmi
+matitaEngine.cmx: applyTransformation.cmx matitaEngine.cmi
matitaGui.cmo: matitaTypes.cmi matitaScript.cmi matitaMisc.cmi \
matitaMathView.cmi matitaGuiTypes.cmi matitaGtkMisc.cmi \
- matitaGeneratedGui.cmo matitaExcPp.cmi buildTimeConf.cmo matitaGui.cmi
+ matitaGeneratedGui.cmo matitaExcPp.cmi buildTimeConf.cmo matitaGui.cmi
matitaGui.cmx: matitaTypes.cmx matitaScript.cmx matitaMisc.cmx \
matitaMathView.cmx matitaGuiTypes.cmi matitaGtkMisc.cmx \
- matitaGeneratedGui.cmx matitaExcPp.cmx buildTimeConf.cmx matitaGui.cmi
+ matitaGeneratedGui.cmx matitaExcPp.cmx buildTimeConf.cmx matitaGui.cmi
matitaAuthentication.cmo: matitaFilesystem.cmi matitaEngine.cmi \
- matitaAuthentication.cmi
+ matitaAuthentication.cmi
matitaAuthentication.cmx: matitaFilesystem.cmx matitaEngine.cmx \
- matitaAuthentication.cmi
-matitaExcPp.cmo: matitaEngine.cmi matitaExcPp.cmi
-matitaExcPp.cmx: matitaEngine.cmx matitaExcPp.cmi
-matitaInit.cmo: matitaExcPp.cmi buildTimeConf.cmo matitaInit.cmi
-matitaInit.cmx: matitaExcPp.cmx buildTimeConf.cmx matitaInit.cmi
+ matitaAuthentication.cmi
+matitaExcPp.cmo: matitaEngine.cmi matitaExcPp.cmi
+matitaExcPp.cmx: matitaEngine.cmx matitaExcPp.cmi
+matitaInit.cmo: matitaExcPp.cmi buildTimeConf.cmo matitaInit.cmi
+matitaInit.cmx: matitaExcPp.cmx buildTimeConf.cmx matitaInit.cmi
matitaScript.cmo: virtuals.cmi matitaTypes.cmi matitaScriptLexer.cmi \
matitaMisc.cmi matitaMathView.cmi matitaGtkMisc.cmi matitaEngine.cmi \
- cicMathView.cmi buildTimeConf.cmo matitaScript.cmi
+ cicMathView.cmi buildTimeConf.cmo matitaScript.cmi
matitaScript.cmx: virtuals.cmx matitaTypes.cmx matitaScriptLexer.cmx \
matitaMisc.cmx matitaMathView.cmx matitaGtkMisc.cmx matitaEngine.cmx \
- cicMathView.cmx buildTimeConf.cmx matitaScript.cmi
-applyTransformation.cmi:
-matitaclean.cmi:
-matitaFilesystem.cmi:
-matitaMathView.cmi: matitaTypes.cmi matitaGuiTypes.cmi
-matitaTypes.cmi:
-matitaMisc.cmi: matitaGuiTypes.cmi
-predefined_virtuals.cmi:
-cicMathView.cmi: matitaGuiTypes.cmi applyTransformation.cmi
-matitaGtkMisc.cmi: matitaGeneratedGui.cmo
-virtuals.cmi:
-lablGraphviz.cmi:
-matitaEngine.cmi: applyTransformation.cmi
-matitaGui.cmi: matitaGuiTypes.cmi
-matitaGuiTypes.cmi: matitaGeneratedGui.cmo applyTransformation.cmi
-matitaScriptLexer.cmi:
-matitaAuthentication.cmi: matitaFilesystem.cmi matitaEngine.cmi
-matitaExcPp.cmi:
-matitaInit.cmi:
-matitaScript.cmi:
-matitaScriptLexer.cmo: matitaScriptLexer.cmi
-matitaScriptLexer.cmx: matitaScriptLexer.cmi
-matitaScriptLexer.cmi:
+ cicMathView.cmx buildTimeConf.cmx matitaScript.cmi
+applyTransformation.cmi:
+matitaclean.cmi:
+matitaFilesystem.cmi:
+matitaMathView.cmi: matitaTypes.cmi matitaGuiTypes.cmi
+matitaTypes.cmi:
+matitaMisc.cmi: matitaGuiTypes.cmi
+predefined_virtuals.cmi:
+cicMathView.cmi: matitaGuiTypes.cmi applyTransformation.cmi
+matitaGtkMisc.cmi: matitaGeneratedGui.cmo
+virtuals.cmi:
+lablGraphviz.cmi:
+matitaEngine.cmi: applyTransformation.cmi
+matitaGui.cmi: matitaGuiTypes.cmi
+matitaGuiTypes.cmi: matitaGeneratedGui.cmo applyTransformation.cmi
+matitaScriptLexer.cmi:
+matitaAuthentication.cmi: matitaFilesystem.cmi matitaEngine.cmi
+matitaExcPp.cmi:
+matitaInit.cmi:
+matitaScript.cmi:
+matitaScriptLexer.cmo: matitaScriptLexer.cmi
+matitaScriptLexer.cmx: matitaScriptLexer.cmi
+matitaScriptLexer.cmi:
-applyTransformation.cmo: applyTransformation.cmi
-applyTransformation.cmx: applyTransformation.cmi
-matitaclean.cmo: matitaMisc.cmi matitaInit.cmi matitaclean.cmi
-matitaclean.cmx: matitaMisc.cmx matitaInit.cmx matitaclean.cmi
-matitaFilesystem.cmo: matitaFilesystem.cmi
-matitaFilesystem.cmx: matitaFilesystem.cmi
+applyTransformation.cmo: applyTransformation.cmi
+applyTransformation.cmx: applyTransformation.cmi
+matitaclean.cmo: matitaMisc.cmi matitaInit.cmi matitaclean.cmi
+matitaclean.cmx: matitaMisc.cmx matitaInit.cmx matitaclean.cmi
+matitaFilesystem.cmo: matitaFilesystem.cmi
+matitaFilesystem.cmx: matitaFilesystem.cmi
matitaMathView.cmo: virtuals.cmi matitaTypes.cmi matitaMisc.cmi \
matitaGuiTypes.cmi matitaGtkMisc.cmi matitaGeneratedGui.cmx \
matitaExcPp.cmi lablGraphviz.cmi cicMathView.cmi buildTimeConf.cmx \
- applyTransformation.cmi matitaMathView.cmi
+ applyTransformation.cmi matitaMathView.cmi
matitaMathView.cmx: virtuals.cmx matitaTypes.cmx matitaMisc.cmx \
matitaGuiTypes.cmi matitaGtkMisc.cmx matitaGeneratedGui.cmx \
matitaExcPp.cmx lablGraphviz.cmx cicMathView.cmx buildTimeConf.cmx \
- applyTransformation.cmx matitaMathView.cmi
-matitaTypes.cmo: matitaTypes.cmi
-matitaTypes.cmx: matitaTypes.cmi
-buildTimeConf.cmo:
-buildTimeConf.cmx:
-matitac.cmo: matitaclean.cmi matitaMisc.cmi matitaInit.cmi matitaEngine.cmi
-matitac.cmx: matitaclean.cmx matitaMisc.cmx matitaInit.cmx matitaEngine.cmx
-matitaGeneratedGui.cmo:
-matitaGeneratedGui.cmx:
-matitaMisc.cmo: matitaGuiTypes.cmi buildTimeConf.cmx matitaMisc.cmi
-matitaMisc.cmx: matitaGuiTypes.cmi buildTimeConf.cmx matitaMisc.cmi
-predefined_virtuals.cmo: virtuals.cmi predefined_virtuals.cmi
-predefined_virtuals.cmx: virtuals.cmx predefined_virtuals.cmi
+ applyTransformation.cmx matitaMathView.cmi
+matitaTypes.cmo: matitaTypes.cmi
+matitaTypes.cmx: matitaTypes.cmi
+buildTimeConf.cmo:
+buildTimeConf.cmx:
+matitac.cmo: matitaclean.cmi matitaMisc.cmi matitaInit.cmi matitaEngine.cmi
+matitac.cmx: matitaclean.cmx matitaMisc.cmx matitaInit.cmx matitaEngine.cmx
+matitaGeneratedGui.cmo:
+matitaGeneratedGui.cmx:
+matitaMisc.cmo: matitaGuiTypes.cmi buildTimeConf.cmx matitaMisc.cmi
+matitaMisc.cmx: matitaGuiTypes.cmi buildTimeConf.cmx matitaMisc.cmi
+predefined_virtuals.cmo: virtuals.cmi predefined_virtuals.cmi
+predefined_virtuals.cmx: virtuals.cmx predefined_virtuals.cmi
cicMathView.cmo: matitaMisc.cmi matitaGuiTypes.cmi matitaGtkMisc.cmi \
- buildTimeConf.cmx applyTransformation.cmi cicMathView.cmi
+ buildTimeConf.cmx applyTransformation.cmi cicMathView.cmi
cicMathView.cmx: matitaMisc.cmx matitaGuiTypes.cmi matitaGtkMisc.cmx \
- buildTimeConf.cmx applyTransformation.cmx cicMathView.cmi
-matitadaemon.cmo: matitaInit.cmi matitaFilesystem.cmi matitaEngine.cmi \
- matitaAuthentication.cmi applyTransformation.cmi
-matitadaemon.cmx: matitaInit.cmx matitaFilesystem.cmx matitaEngine.cmx \
- matitaAuthentication.cmx applyTransformation.cmx
+ buildTimeConf.cmx applyTransformation.cmx cicMathView.cmi
+matitadaemon.cmo: matitaInit.cmi matitaFilesystem.cmi matitaExcPp.cmi \
+ matitaEngine.cmi matitaAuthentication.cmi applyTransformation.cmi
+matitadaemon.cmx: matitaInit.cmx matitaFilesystem.cmx matitaExcPp.cmx \
+ matitaEngine.cmx matitaAuthentication.cmx applyTransformation.cmx
matitaGtkMisc.cmo: matitaTypes.cmi matitaGeneratedGui.cmx buildTimeConf.cmx \
- matitaGtkMisc.cmi
+ matitaGtkMisc.cmi
matitaGtkMisc.cmx: matitaTypes.cmx matitaGeneratedGui.cmx buildTimeConf.cmx \
- matitaGtkMisc.cmi
-matita.cmo: predefined_virtuals.cmi matitaScript.cmi matitaInit.cmi \
- matitaGui.cmi matitaGtkMisc.cmi buildTimeConf.cmx applyTransformation.cmi
-matita.cmx: predefined_virtuals.cmx matitaScript.cmx matitaInit.cmx \
- matitaGui.cmx matitaGtkMisc.cmx buildTimeConf.cmx applyTransformation.cmx
-virtuals.cmo: virtuals.cmi
-virtuals.cmx: virtuals.cmi
-lablGraphviz.cmo: lablGraphviz.cmi
-lablGraphviz.cmx: lablGraphviz.cmi
-matitaEngine.cmo: applyTransformation.cmi matitaEngine.cmi
-matitaEngine.cmx: applyTransformation.cmx matitaEngine.cmi
+ matitaGtkMisc.cmi
+virtuals.cmo: virtuals.cmi
+virtuals.cmx: virtuals.cmi
+lablGraphviz.cmo: lablGraphviz.cmi
+lablGraphviz.cmx: lablGraphviz.cmi
+matitaEngine.cmo: applyTransformation.cmi matitaEngine.cmi
+matitaEngine.cmx: applyTransformation.cmx matitaEngine.cmi
matitaGui.cmo: matitaTypes.cmi matitaScript.cmi matitaMisc.cmi \
matitaMathView.cmi matitaGuiTypes.cmi matitaGtkMisc.cmi \
- matitaGeneratedGui.cmx matitaExcPp.cmi buildTimeConf.cmx matitaGui.cmi
+ matitaGeneratedGui.cmx matitaExcPp.cmi buildTimeConf.cmx matitaGui.cmi
matitaGui.cmx: matitaTypes.cmx matitaScript.cmx matitaMisc.cmx \
matitaMathView.cmx matitaGuiTypes.cmi matitaGtkMisc.cmx \
- matitaGeneratedGui.cmx matitaExcPp.cmx buildTimeConf.cmx matitaGui.cmi
+ matitaGeneratedGui.cmx matitaExcPp.cmx buildTimeConf.cmx matitaGui.cmi
matitaAuthentication.cmo: matitaFilesystem.cmi matitaEngine.cmi \
- matitaAuthentication.cmi
+ matitaAuthentication.cmi
matitaAuthentication.cmx: matitaFilesystem.cmx matitaEngine.cmx \
- matitaAuthentication.cmi
-matitaExcPp.cmo: matitaEngine.cmi matitaExcPp.cmi
-matitaExcPp.cmx: matitaEngine.cmx matitaExcPp.cmi
-matitaInit.cmo: matitaExcPp.cmi buildTimeConf.cmx matitaInit.cmi
-matitaInit.cmx: matitaExcPp.cmx buildTimeConf.cmx matitaInit.cmi
+ matitaAuthentication.cmi
+matitaExcPp.cmo: matitaEngine.cmi matitaExcPp.cmi
+matitaExcPp.cmx: matitaEngine.cmx matitaExcPp.cmi
+matitaInit.cmo: matitaExcPp.cmi buildTimeConf.cmx matitaInit.cmi
+matitaInit.cmx: matitaExcPp.cmx buildTimeConf.cmx matitaInit.cmi
matitaScript.cmo: virtuals.cmi matitaTypes.cmi matitaScriptLexer.cmi \
matitaMisc.cmi matitaMathView.cmi matitaGtkMisc.cmi matitaEngine.cmi \
- cicMathView.cmi buildTimeConf.cmx matitaScript.cmi
+ cicMathView.cmi buildTimeConf.cmx matitaScript.cmi
matitaScript.cmx: virtuals.cmx matitaTypes.cmx matitaScriptLexer.cmx \
matitaMisc.cmx matitaMathView.cmx matitaGtkMisc.cmx matitaEngine.cmx \
- cicMathView.cmx buildTimeConf.cmx matitaScript.cmi
-applyTransformation.cmi:
-matitaclean.cmi:
-matitaFilesystem.cmi:
-matitaMathView.cmi: matitaTypes.cmi matitaGuiTypes.cmi
-matitaTypes.cmi:
-matitaMisc.cmi: matitaGuiTypes.cmi
-predefined_virtuals.cmi:
-cicMathView.cmi: matitaGuiTypes.cmi applyTransformation.cmi
-matitaGtkMisc.cmi: matitaGeneratedGui.cmx
-virtuals.cmi:
-lablGraphviz.cmi:
-matitaEngine.cmi: applyTransformation.cmi
-matitaGui.cmi: matitaGuiTypes.cmi
-matitaGuiTypes.cmi: matitaGeneratedGui.cmx applyTransformation.cmi
-matitaScriptLexer.cmi:
-matitaAuthentication.cmi: matitaFilesystem.cmi matitaEngine.cmi
-matitaExcPp.cmi:
-matitaInit.cmi:
-matitaScript.cmi:
-matitaScriptLexer.cmo: matitaScriptLexer.cmi
-matitaScriptLexer.cmx: matitaScriptLexer.cmi
-matitaScriptLexer.cmi:
+ cicMathView.cmx buildTimeConf.cmx matitaScript.cmi
+applyTransformation.cmi:
+matitaclean.cmi:
+matitaFilesystem.cmi:
+matitaMathView.cmi: matitaTypes.cmi matitaGuiTypes.cmi
+matitaTypes.cmi:
+matitaMisc.cmi: matitaGuiTypes.cmi
+predefined_virtuals.cmi:
+cicMathView.cmi: matitaGuiTypes.cmi applyTransformation.cmi
+matitaGtkMisc.cmi: matitaGeneratedGui.cmx
+virtuals.cmi:
+lablGraphviz.cmi:
+matitaEngine.cmi: applyTransformation.cmi
+matitaGui.cmi: matitaGuiTypes.cmi
+matitaGuiTypes.cmi: matitaGeneratedGui.cmx applyTransformation.cmi
+matitaScriptLexer.cmi:
+matitaAuthentication.cmi: matitaFilesystem.cmi matitaEngine.cmi
+matitaExcPp.cmi:
+matitaInit.cmi:
+matitaScript.cmi:
+matitaScriptLexer.cmo: matitaScriptLexer.cmi
+matitaScriptLexer.cmx: matitaScriptLexer.cmi
+matitaScriptLexer.cmi:
--- /dev/null
+/* XPM */
+static char * matita_32_xpm[] = {
+"32 32 35 1",
+" c None",
+". c #000000",
+"+ c #808080",
+"@ c #404040",
+"# c #7F7F7F",
+"$ c #FFFFFF",
+"% c #666666",
+"& c #CDCDCD",
+"* c #F0F0F0",
+"= c #5F5F5F",
+"- c #0E0E0E",
+"; c #131313",
+"> c #898989",
+", c #EAEAEA",
+"' c #565656",
+") c #0B0B0B",
+"! c #7A7A7A",
+"~ c #FEFEFE",
+"{ c #4D4D4D",
+"] c #AAAAAA",
+"^ c #333333",
+"/ c #989898",
+"( c #353535",
+"_ c #D8D8D8",
+": c #F6F6F6",
+"< c #717171",
+"[ c #0D0D0D",
+"} c #363636",
+"| c #CECECE",
+"1 c #0C0C0C",
+"2 c #FCFCFC",
+"3 c #654040",
+"4 c #A36666",
+"5 c #CB8080",
+"6 c #3F3F3F",
+" ",
+" .. ",
+" ............................ ",
+" .++++++++++++@...#$$$+.++++. ",
+" .++++++++%@...&$$$$$$$.++++. ",
+" .+++++%....&$$$$$$$$$$.%+++. ",
+" .++%...+&$$$$$$$$$$$$$+.+++. ",
+" ....#&$$$$$$$$$$$$$$$$&.+++. ",
+" ..#&$$$$$$$$$$$$$$$$$$$$.%++. ",
+" ..$$$$$$$$$$$$$$$$$$$$$$+.++. ",
+" ..$$$$$$$$$$$$$$$$$$$$$$&.++. ",
+" .$$$$$$..*=-;>$,');!~$$$.%+. ",
+" .&$$$$$..{....]^..../$$$+.+. ",
+" ..$$$$$..(_:<.[(_:<.}$$$&.+. ",
+" ..$$$$$..|$$,..|$$,.1$$$$.%. ",
+" ..&$$$$..2$$$..2$$$..$$$$.@. ",
+" .3.$$$$..$$$$..$$$$..$$$$&.. ",
+" .4.$$$$..$$$$..$$$$..$$$$$.. ",
+" .5.&$$$..$$$$..$$$$..$$$$$.. ",
+" .53.$$$..$$$$..$$$$..$$$$$&. ",
+" .54.$$$..$$$$..$$$$..$$$$$$. ",
+" .55.$$$$$$$$$$$$$$$$$$$$$$$.. ",
+" .55.+$$$$$$$$$$$$$$$$$$$$$$.. ",
+" .554.$$$$$$$$$$$$$$$$$$$$$+.. ",
+" .555.$$$$$$$$$$$$$$$$$&+.... ",
+" .555.+$$$$$$$$$$$$$&+...%++. ",
+" .5553.$$$$$$$$$$&+...%+++++. ",
+" .5555.$$$$$$$+....%++++++++. ",
+" .5555.&$$$+...6++++++++++++. ",
+" ............................ ",
+" .. ",
+" "};
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="2.8499999"
+ inkscape:export-xdpi="2.8499999"
+ inkscape:export-filename="/home/tassi/helm/matita/icons/whelp.png"
+ sodipodi:docname="whelp.svg"
+ sodipodi:docbase="/home/tassi/helm/matita/icons"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg2"
+ height="297mm"
+ width="210mm">
+ <defs
+ id="defs3" />
+ <sodipodi:namedview
+ inkscape:window-y="47"
+ inkscape:window-x="538"
+ inkscape:window-height="743"
+ inkscape:window-width="697"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="526.18109"
+ inkscape:cx="-47.832055"
+ inkscape:zoom="0.53878789"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ id="Work6"
+ rdf:about="">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type9" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <g
+ transform="translate(7.424147,-25.98425)"
+ id="g2113">
+ <path
+ transform="matrix(3.092445,0.000000,0.000000,3.244102,-1367.216,-1102.351)"
+ d="M 277.14285 465.21933 A 21.428572 18.571428 0 1 1 234.28571,465.21933 A 21.428572 18.571428 0 1 1 277.14285 465.21933 z"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="21.428572"
+ sodipodi:cy="465.21933"
+ sodipodi:cx="255.71428"
+ id="path1310"
+ style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.31571975;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(3.577041,0.000000,0.000000,3.764523,-1365.700,-1442.358)"
+ d="M 277.14285 465.21933 A 21.428572 18.571428 0 1 1 234.28571,465.21933 A 21.428572 18.571428 0 1 1 277.14285 465.21933 z"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="21.428572"
+ sodipodi:cy="465.21933"
+ sodipodi:cx="255.71428"
+ id="path1316"
+ style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.27251038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(3.536915,0.000000,0.000000,3.972675,-1343.944,-1485.563)"
+ d="M 322.85714 442.36218 A 22.857143 18.571428 0 1 1 277.14286,442.36218 A 22.857143 18.571428 0 1 1 322.85714 442.36218 z"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="22.857143"
+ sodipodi:cy="442.36218"
+ sodipodi:cx="300.00000"
+ id="path1322"
+ style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.26677564;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(3.750966,0.000000,0.000000,3.972675,-1450.760,-1408.096)"
+ d="M 382.85716 436.64789 A 24.285715 21.428572 0 1 1 334.28573,436.64789 A 24.285715 21.428572 0 1 1 382.85716 436.64789 z"
+ sodipodi:ry="21.428572"
+ sodipodi:rx="24.285715"
+ sodipodi:cy="436.64789"
+ sodipodi:cx="358.57144"
+ id="path1328"
+ style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25905198;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(3.536915,0.000000,0.000000,3.972675,-1478.347,-1461.727)"
+ d="M 394.28573 513.79077 A 65.714287 52.857143 0 1 1 262.85715,513.79077 A 65.714287 52.857143 0 1 1 394.28573 513.79077 z"
+ sodipodi:ry="52.857143"
+ sodipodi:rx="65.714287"
+ sodipodi:cy="513.79077"
+ sodipodi:cx="328.57144"
+ id="path1334"
+ style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.26677564;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g3923"
+ transform="matrix(3.536915,0.000000,0.000000,3.972675,-801.3348,-1982.086)"
+ inkscape:export-filename="/projects/helm/daemons/searchEngine/html/whelp.png"
+ inkscape:export-xdpi="100.84000"
+ inkscape:export-ydpi="100.84000">
+ <path
+ transform="matrix(0.874334,0.000000,0.000000,0.816604,44.53485,211.7504)"
+ d="M 277.14285 465.21933 A 21.428572 18.571428 0 1 1 234.28571,465.21933 A 21.428572 18.571428 0 1 1 277.14285 465.21933 z"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="21.428572"
+ sodipodi:cy="465.21933"
+ sodipodi:cx="255.71428"
+ id="path2998"
+ style="fill:#780000;fill-opacity:0.48627451;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <text
+ id="text3000"
+ y="600.53583"
+ x="257.61462"
+ style="font-size:36.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:0.78431374;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Domestic Manners;text-anchor:start;writing-mode:lr-tb"
+ xml:space="preserve"><tspan
+ y="600.53583"
+ x="257.61462"
+ id="tspan3002"
+ sodipodi:role="line">h</tspan></text>
+ <path
+ transform="matrix(1.011345,0.000000,0.000000,0.947604,44.96344,126.1641)"
+ d="M 277.14285 465.21933 A 21.428572 18.571428 0 1 1 234.28571,465.21933 A 21.428572 18.571428 0 1 1 277.14285 465.21933 z"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="21.428572"
+ sodipodi:cy="465.21933"
+ sodipodi:cx="255.71428"
+ id="path3004"
+ style="fill:#780000;fill-opacity:0.48627451;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <text
+ id="text3006"
+ y="573.53583"
+ x="292.11462"
+ style="font-size:36.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:0.78431374;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Domestic Manners;text-anchor:start;writing-mode:lr-tb"
+ xml:space="preserve"><tspan
+ y="573.53583"
+ x="292.11462"
+ id="tspan3008"
+ sodipodi:role="line">e</tspan></text>
+ <path
+ transform="translate(51.11460,115.2886)"
+ d="M 322.85714 442.36218 A 22.857143 18.571428 0 1 1 277.14286,442.36218 A 22.857143 18.571428 0 1 1 322.85714 442.36218 z"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="22.857143"
+ sodipodi:cy="442.36218"
+ sodipodi:cx="300.00000"
+ id="path3010"
+ style="fill:#780000;fill-opacity:0.48627451;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <text
+ id="text3012"
+ y="570.53583"
+ x="345.11462"
+ style="font-size:36.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:0.78431374;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Domestic Manners;text-anchor:start;writing-mode:lr-tb"
+ xml:space="preserve"><tspan
+ y="570.53583"
+ x="345.11462"
+ id="tspan3014"
+ sodipodi:role="line">l</tspan></text>
+ <path
+ transform="matrix(1.060519,0.000000,0.000000,1.000000,20.91431,134.7886)"
+ d="M 382.85716 436.64789 A 24.285715 21.428572 0 1 1 334.28573,436.64789 A 24.285715 21.428572 0 1 1 382.85716 436.64789 z"
+ sodipodi:ry="21.428572"
+ sodipodi:rx="24.285715"
+ sodipodi:cy="436.64789"
+ sodipodi:cx="358.57144"
+ id="path3016"
+ style="fill:#780000;fill-opacity:0.48627451;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <text
+ id="text3018"
+ y="575.03583"
+ x="392.11462"
+ style="font-size:36.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:0.78431374;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Domestic Manners;text-anchor:start;writing-mode:lr-tb"
+ xml:space="preserve"><tspan
+ y="575.03583"
+ x="392.11462"
+ id="tspan3020"
+ sodipodi:role="line">p</tspan></text>
+ <path
+ transform="translate(13.11460,121.2886)"
+ d="M 394.28573 513.79077 A 65.714287 52.857143 0 1 1 262.85715,513.79077 A 65.714287 52.857143 0 1 1 394.28573 513.79077 z"
+ sodipodi:ry="52.857143"
+ sodipodi:rx="65.714287"
+ sodipodi:cy="513.79077"
+ sodipodi:cx="328.57144"
+ id="path3024"
+ style="fill:#000050;fill-opacity:0.31372550;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <text
+ id="text3026"
+ y="655.03577"
+ x="317.61459"
+ style="font-size:64.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:0.78431374;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Domestic Manners;text-anchor:start;writing-mode:lr-tb"
+ xml:space="preserve"><tspan
+ y="655.03577"
+ x="317.61459"
+ id="tspan3028"
+ sodipodi:role="line">W</tspan></text>
+ </g>
+ </g>
+</svg>
--- /dev/null
+<html>
+
+<head>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="jquery.tooltip.min.js"></script>
+<script type="text/javascript" src="utf8MacroTable.js"></script>
+<script type="text/javascript" src="matitaweb.js"></script>
+<script type="text/javascript" src="layout.js"></script>
+<link rel="stylesheet" type="text/css" href="matitaweb.css"/>
+<link rel="stylesheet" type="text/css" href="jquery.tooltip.css"/>
+
+<link href="treeview/xmlTree.css" type="text/css" rel="stylesheet"/>
+<script src="treeview/xmlTree.js" type="text/javascript"></script>
+
+</head>
+
+<body onLoad="initialize();">
+<textarea id="unescape" style="display:none;"></textarea>
+<div id="sandbox" style="display:none;"></div>
+
+<div class="matitaapparea" id="matitaapparea">
+
+<div class="titlebar" id="titlebar">
+ <div class="mainTitle"><H2 id="matitaTitle">Matita - <<Filename>></H2></div>
+ <div class="mainRight" id="matitaLogout"><A id="hlogout" href="/logout.html">Log out</A></div>
+</div>
+
+
+<div class="toparea" id="toparea">
+<div class="navibar">
+ <A href="javascript:advanceForm1()"><IMG class="topimg" src="icons/advance.png"
+ id="advance" alt="Advance"
+ title="Execute one step of the script."></A>
+ <A href="javascript:retract()"><IMG class="topimg" src="icons/retract.png"
+ id="retract" alt="Retract"
+ title="Undo execution of one step of the script."></A>
+ <A href="javascript:gotoTop()"><IMG class="topimg" src="icons/top.png"
+ id="top" alt="Top" title="Undo execution of the whole script."></A>
+ <A href="javascript:gotoPos()"><IMG class="topimg" src="icons/position.png"
+ id="cursor" alt="Play"
+ title="Execute the script until the current position of the cursor."></A>
+ <A href="javascript:gotoBottom()"><IMG class="topimg" src="icons/bottom.png"
+ id="bottom" alt="Bottom" title="Execute the whole script."></A>
+</div>
+<div class="toolbar">
+ <table>
+ <tr>
+ <td>
+ <INPUT type="BUTTON" value="New" id="newbutton" ONCLICK="newDialog()">
+ <INPUT type="BUTTON" value="Open" id="showdialog" ONCLICK="openDialog()">
+ <INPUT type="BUTTON" value="Save" id="savebutton" ONCLICK="saveFile()">
+ <INPUT type="BUTTON" value="Save as" id="saveasbutton" ONCLICK="saveDialog()">
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <INPUT type="BUTTON" value="Upload" id="uploadbutton" ONCLICK="uploadDialog()">
+ <INPUT type="BUTTON" value="Commit" id="commitbutton" ONCLICK="commitAll()">
+ <INPUT type="BUTTON" value="Update" id="updatebutton" ONCLICK="updateAll()">
+ <INPUT type="BUTTON" value="Log" id="logbutton" ONCLICK="showLog()">
+ <INPUT type="BUTTON" value="Del hrefs" id="delintbutton" ONCLICK="strip_interpr()">
+<!-- <INPUT type="BUTTON" value="show sequent" id="showseq" ONCLICK="showSequent()">
+ <INPUT type="BUTTON" value="hide sequent" id="hideseq" ONCLICK="hideSequent()">
+ <INPUT type="BUTTON" value="selection test" id="hideseq" ONCLICK="test()"> -->
+ </td>
+ </tr>
+ </table>
+
+</div>
+<div class="caption"><p><img align="bottom" class="topimg" src="icons/matita-text.png"></p></div>
+</div>
+
+<div class="workarea" id="workarea">
+<div class="scriptarea" id="scriptcell">
+ <!-- the script -->
+ <!--
+ The two DIVs "locked" and "unlocked" MUST be on the same line (since they are
+ inside a PRE tag, a CR will be reflected in the document presentation)
+ -->
+ <div style="width:100%; height:100%; overflow:auto;">
+ <pre><div contentEditable="false" id="locked" style="background-color:#bfbfff; display:inline;"></div><div contentEditable="true" id="unlocked" style="display:inline">(* script *)</div></pre></div>
+ <!-- the script (end) -->
+</div>
+<div class="sidearea" id="sidearea">
+ <div class="framed" id="disambcell"></div>
+ <div class="framed" id="goalcell">
+ <div id="goals"></div>
+ <div class="context">
+ <pre id="goalview"></pre>
+ </div>
+ </div>
+</div>
+</div>
+
+<!-- <div class="bottomarea">
+ <textarea id="logarea" style="width:100%; height:100%"></textarea>
+</div> -->
+
+</div>
+
+<div class="dialog" id="dialogBox" style="display: none;">
+ <div class="diaTitle" id="dialogTitle"></div>
+ <div class="diaClose" id="dialogClose"><H2><A class="butClose" href="javascript:abortDialog('dialogBox')">X</A></H2></div>
+ <INPUT type="button" id="dialogNewdir" value="Create dir..." ONCLICK="createDir()" style="width:150px"><br/>
+ <div class="scroll" id="dialogContent"></div>
+ <INPUT class="diaFile" type="text" id="dialogFilename">
+ <INPUT type="button" id="dialogSelect" value="OK" ONCLICK="dialogOK()" style="width:70px">
+</div>
+
+<div class="upload" id="uploadBox" style="display: none;">
+ <div class="dialogTitle" id="uploadTitle"></div>
+ <div class="diaClose" id="uploadClose"><H2><A class="butClose" href="javascript:abortDialog('uploadBox')">X</A></H2></div>
+ <INPUT class="diaFile" type="file" id="uploadFilename">
+ <INPUT type="button" id="uploadSelect" value="OK" ONCLICK="uploadOK()" style="width:70px">
+</div>
+
+<!-- Mask to cover the whole screen -->
+ <div id="mask"></div>
+
+<!-- Mask to cover the toolbar -->
+ <div id="whitemask"></div>
+
+ </body>
+</html>
--- /dev/null
+/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */
+(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bP,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(Q.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(w,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:H?function(a){return a==null?"":H.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(!b)return-1;if(I)return I.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g+"With"](this===b?d:this,[h])}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u,v;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete
+t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,M(a.origType,a.selector),f.extend({},a,{handler:L,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,M(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?D:C):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=D;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=D;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=D,this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};var E=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},F=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?F:E,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?F:E)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="submit"||c==="image")&&f(b).closest("form").length&&J("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&J("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var G,H=function(a){var b=f.nodeName(a,"input")?a.type:"",c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var K={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||C,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=w.exec(h),k="",j&&(k=j[0],h=h.replace(w,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,K[h]?(a.push(K[h]+k),h=h+k):h=(K[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+M(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+M(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var N=/Until$/,O=/^(?:parents|prevUntil|prevAll)/,P=/,/,Q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,S=f.expr.match.POS,T={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(V(this,a,!1),"not",a)},filter:function(a){return this.pushStack(V(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=S.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|object|embed|option|style)/i,bb=/checked\s*(?:[^=]|=\s*.checked.)/i,bc=/\/(java|ecma)script/i,bd=/^\s*<!(?:\[CDATA\[|\-\-)/,be={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bb.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bf(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bl)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!ba.test(a[0])&&(f.support.checkClone||!bb.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean
+(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bk(k[i]);else bk(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bc.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bm=/alpha\([^)]*\)/i,bn=/opacity=([^)]*)/,bo=/([A-Z]|^ms)/g,bp=/^-?\d+(?:px)?$/i,bq=/^-?\d/,br=/^([\-+])=([\-+.\de]+)/,bs={position:"absolute",visibility:"hidden",display:"block"},bt=["Left","Right"],bu=["Top","Bottom"],bv,bw,bx;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bv(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=br.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bv)return bv(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return by(a,b,d);f.swap(a,bs,function(){e=by(a,b,d)});return e}},set:function(a,b){if(!bp.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cr(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cq("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cq("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cr(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cq("show",1),slideUp:cq("hide",1),slideToggle:cq("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return d.step(a)}var d=this,e=f.fx;this.startTime=cn||co(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&f.timers.push(g)&&!cl&&(cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||co(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cs=/^t(?:able|d|h)$/i,ct=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cu(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cs.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file
--- /dev/null
+#tooltip {
+ position: absolute;
+ z-index: 3000;
+ border: 1px solid #111;
+ background-color: #ffffbf;
+ padding: 5px;
+ /* opacity: 0.85; */
+}
+#tooltip h3, #tooltip div { margin: 0; }
--- /dev/null
+/*
+ * jQuery Tooltip plugin 1.3
+ *
+ * http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
+ * http://docs.jquery.com/Plugins/Tooltip
+ *
+ * Copyright (c) 2006 - 2008 Jörn Zaefferer
+ *
+ * $Id: jquery.tooltip.js 5741 2008-06-21 15:22:16Z joern.zaefferer $
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ */;(function($){var helper={},current,title,tID,IE=$.browser.msie&&/MSIE\s(5\.5|6\.)/.test(navigator.userAgent),track=false;$.tooltip={blocked:false,defaults:{delay:200,fade:false,showURL:true,extraClass:"",top:15,left:15,id:"tooltip"},block:function(){$.tooltip.blocked=!$.tooltip.blocked;}};$.fn.extend({tooltip:function(settings){settings=$.extend({},$.tooltip.defaults,settings);createHelper(settings);return this.each(function(){$.data(this,"tooltip",settings);this.tOpacity=helper.parent.css("opacity");this.tooltipText=this.title;$(this).removeAttr("title");this.alt="";}).mouseover(save).mouseout(hide).click(hide);},fixPNG:IE?function(){return this.each(function(){var image=$(this).css('backgroundImage');if(image.match(/^url\(["']?(.*\.png)["']?\)$/i)){image=RegExp.$1;$(this).css({'backgroundImage':'none','filter':"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='"+image+"')"}).each(function(){var position=$(this).css('position');if(position!='absolute'&&position!='relative')$(this).css('position','relative');});}});}:function(){return this;},unfixPNG:IE?function(){return this.each(function(){$(this).css({'filter':'',backgroundImage:''});});}:function(){return this;},hideWhenEmpty:function(){return this.each(function(){$(this)[$(this).html()?"show":"hide"]();});},url:function(){return this.attr('href')||this.attr('src');}});function createHelper(settings){if(helper.parent)return;helper.parent=$('<div id="'+settings.id+'"><h3></h3><div class="body"></div><div class="url"></div></div>').appendTo(document.body).hide();if($.fn.bgiframe)helper.parent.bgiframe();helper.title=$('h3',helper.parent);helper.body=$('div.body',helper.parent);helper.url=$('div.url',helper.parent);}function settings(element){return $.data(element,"tooltip");}function handle(event){if(settings(this).delay)tID=setTimeout(show,settings(this).delay);else
+show();track=!!settings(this).track;$(document.body).bind('mousemove',update);update(event);}function save(){if($.tooltip.blocked||this==current||(!this.tooltipText&&!settings(this).bodyHandler))return;current=this;title=this.tooltipText;if(settings(this).bodyHandler){helper.title.hide();var bodyContent=settings(this).bodyHandler.call(this);if(bodyContent.nodeType||bodyContent.jquery){helper.body.empty().append(bodyContent)}else{helper.body.html(bodyContent);}helper.body.show();}else if(settings(this).showBody){var parts=title.split(settings(this).showBody);helper.title.html(parts.shift()).show();helper.body.empty();for(var i=0,part;(part=parts[i]);i++){if(i>0)helper.body.append("<br/>");helper.body.append(part);}helper.body.hideWhenEmpty();}else{helper.title.html(title).show();helper.body.hide();}if(settings(this).showURL&&$(this).url())helper.url.html($(this).url().replace('http://','')).show();else
+helper.url.hide();helper.parent.addClass(settings(this).extraClass);if(settings(this).fixPNG)helper.parent.fixPNG();handle.apply(this,arguments);}function show(){tID=null;if((!IE||!$.fn.bgiframe)&&settings(current).fade){if(helper.parent.is(":animated"))helper.parent.stop().show().fadeTo(settings(current).fade,current.tOpacity);else
+helper.parent.is(':visible')?helper.parent.fadeTo(settings(current).fade,current.tOpacity):helper.parent.fadeIn(settings(current).fade);}else{helper.parent.show();}update();}function update(event){if($.tooltip.blocked)return;if(event&&event.target.tagName=="OPTION"){return;}if(!track&&helper.parent.is(":visible")){$(document.body).unbind('mousemove',update)}if(current==null){$(document.body).unbind('mousemove',update);return;}helper.parent.removeClass("viewport-right").removeClass("viewport-bottom");var left=helper.parent[0].offsetLeft;var top=helper.parent[0].offsetTop;if(event){left=event.pageX+settings(current).left;top=event.pageY+settings(current).top;var right='auto';if(settings(current).positionLeft){right=$(window).width()-left;left='auto';}helper.parent.css({left:left,right:right,top:top});}var v=viewport(),h=helper.parent[0];if(v.x+v.cx<h.offsetLeft+h.offsetWidth){left-=h.offsetWidth+20+settings(current).left;helper.parent.css({left:left+'px'}).addClass("viewport-right");}if(v.y+v.cy<h.offsetTop+h.offsetHeight){top-=h.offsetHeight+20+settings(current).top;helper.parent.css({top:top+'px'}).addClass("viewport-bottom");}}function viewport(){return{x:$(window).scrollLeft(),y:$(window).scrollTop(),cx:$(window).width(),cy:$(window).height()};}function hide(event){if($.tooltip.blocked)return;if(tID)clearTimeout(tID);current=null;var tsettings=settings(this);function complete(){helper.parent.removeClass(tsettings.extraClass).hide().css("opacity","");}if((!IE||!$.fn.bgiframe)&&tsettings.fade){if(helper.parent.is(':animated'))helper.parent.stop().fadeTo(tsettings.fade,0,complete);else
+helper.parent.stop().fadeOut(tsettings.fade,complete);}else
+complete();if(settings(this).fixPNG)helper.parent.unfixPNG();}})(jQuery);
\ No newline at end of file
--- /dev/null
+function resizeItem(item,w,h){
+ item.style.height = h + "px";
+// item.style.minHeight = h + "px";
+// item.style.maxHeight = h + "px";
+ item.style.width = w + "px";
+// item.style.minWidth = w + "px";
+// item.style.maxWidth = w + "px";
+}
+
+function int_of_px(px) {
+ if(px.length > 2 && px.substr(px.length-2) == "px") {
+ return parseInt(px.substr(0,px.length-2));
+ } else { return px; }
+}
+
+function initializeLayout() {
+
+ apparea.resize = function(w,h) {
+ workarea.resize(w,h);
+ resizeItem(apparea,w,h);
+ }
+
+ workarea.resize = function(w,h) {
+ // proper height = window - (title + top)
+ var myh = int_of_px(window.getComputedStyle(apparea,null).height) -
+ (titlebar.offsetHeight + toparea.offsetHeight);
+ scriptcell.resize(w,myh);
+ sidearea.resize(w,myh);
+ resizeItem(workarea,w,myh);
+ }
+
+ scriptcell.resize = function(w,h) {
+ if (matita.proofMode || matita.disambMode) {
+ resizeItem(scriptcell,(w*2)/3,h);
+ } else {
+ resizeItem(scriptcell,w,h);
+ }
+ }
+
+ sidearea.resize = function(w,h) {
+ disambcell.resize(w/3,h);
+ goalcell.resize(w/3,h);
+ resizeItem(sidearea,w/3,h);
+ }
+
+ disambcell.resize = function(w,h) {
+ if (matita.proofMode) {
+ resizeItem(disambcell,w,h/2);
+ } else {
+ resizeItem(disambcell,w,h);
+ }
+ }
+
+ goalcell.resize = function(w,h) {
+ if (matita.disambMode) {
+ resizeItem(goalcell,w,h/2);
+ } else {
+ resizeItem(goalcell,w,h);
+ }
+ }
+
+ $(window).bind("resize", resize);
+
+ // resize();
+
+}
+
+function resize() {
+ // var htmlheight = int_of_px(window.getComputedStyle(body.parentNode,null).height);
+ // var htmlwidth = int_of_px(window.getComputedStyle(body.parentNode,null).width);
+ // apparea.resize(htmlwidth,htmlheight);
+ apparea.resize($(window).width(),$(window).height());
+}
+
+function updateSide() {
+ scriptcell.resize(workarea.clientWidth,workarea.clientHeight);
+ sidearea.resize(workarea.clientWidth,workarea.clientHeight);
+ updateDisamb();
+ updateGoal();
+ if (matita.proofMode || matita.disambMode) {
+ sidearea.style.display = "inline-block";
+ } else {
+ sidearea.style.display = "none";
+ }
+}
+
+function updateDisamb() {
+ if (matita.disambMode) {
+ disambcell.style.display = "inline-block";
+ } else {
+ disambcell.style.display = "none";
+ }
+}
+
+function updateGoal() {
+ if (matita.proofMode) {
+ goalcell.style.display = "inline-block";
+ } else {
+ goalcell.style.display = "none";
+ }
+}
--- /dev/null
+<html>
+<head>
+</head>
+
+<head></head>
+
+<body>
+<H1>Matita web: Login</H1>
+<FORM action="login" method="post">
+<table>
+ <tr>
+ <td>User id: </td>
+ <td><INPUT type="TEXT" name="userid"></td>
+ </tr>
+ <tr>
+ <td>Password: </td>
+ <td><INPUT type="PASSWORD" name="password"></td>
+ </tr>
+</table>
+
+<INPUT type="SUBMIT" value="Login">
+<INPUT type="RESET" value="Reset">
+</FORM>
+
+<p>Matitaweb is currently being tested on Mozilla Firefox v.8.0 and Google Chrome v. 15.0.874.</p>
+
+</body>
+</html>
+
--- /dev/null
+<html>
+<head>
+</head>
+
+<head>
+<script type="text/javascript" src="matitaweb.js"></script>
+</head>
+
+<body onLoad="delete_session();">
+ <p>Logout succeeded!</p>
+
+ <p><A href="/login.html">Start a new session</A></p>
+</body>
+</html>
+
--- /dev/null
+body {
+ border:0px;
+ padding:0px;
+ margin:0px;
+}
+
+div#matitaapparea {
+ border:0px;
+ padding:0px;
+ margin:0px;
+ position:fixed;
+}
+
+div.upload {
+ position:absolute;
+ top: 50%;
+ left: 50%;
+ width:450px;
+ height:50px;
+ margin-top: -250px; /*set to a negative number 1/2 of your height*/
+ margin-left: -225px; /*set to a negative number 1/2 of your width*/
+ border: 1px solid #ccc;
+ padding: 3px;
+ background-color: #f3f3f3;
+}
+
+div.titlebar {
+ display: block;
+ margin:0px;
+ border:0px;
+ width:100%;
+ height: 32px;
+ background-color: #007fff;
+ color: white;
+}
+
+div.mainTitle {
+ display: block;
+ margin-left: 3px;
+ margin-right: auto;
+ max-width: 600px;
+ max-height: 32px;
+ float: left;
+ line-height: 32px;
+ vertical-align: middle;
+}
+
+div.mainRight {
+ display: block;
+ max-width: 600px;
+ max-height: 32px;
+ line-height: 32px;
+ display: block;
+ margin-left: auto;
+ margin-right: 3px;
+ float: right;
+ vertical-align: middle;
+}
+
+div.dialog {
+ position:absolute;
+ width:450px;
+ height:500px;
+ border: 1px solid #ccc;
+ padding: 3px;
+ background-color: #f3f3f3;
+ z-index: 9999;
+}
+
+div.diaTitle {
+ display: block;
+ margin-left: 3px;
+ margin-right: auto;
+ width: 414px;
+ background-color: #007fff;
+ color: white;
+ float: left;
+ line-height: 32px;
+}
+
+div.diaClose {
+ display: block;
+ margin-left: auto;
+ margin-right: 3px;
+ background-color: red;
+ width: 30px;
+ color: white;
+ float: right;
+ text-align: center;
+ vertical-align: middle;
+ line-height: 32px
+}
+
+#mask {
+ position:absolute;
+ left:0;
+ top:0;
+ z-index:9000;
+ background-color:#000;
+ display:none;
+}
+
+#whitemask {
+ position:absolute;
+ left:0;
+ top:0;
+ z-index:9000;
+ background-color:#ffffff;
+ display:none;
+}
+
+
+a#hlogout {
+ color: inherit;
+ font-weight: bold;
+}
+
+a.butClose {
+ color: inherit;
+}
+
+input.diaFile {
+ margin-left: 3px;
+ margin-right: auto;
+ width: 370px;
+}
+
+div.scroll {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ border: 1px solid #ccc;
+ height:415px;
+ width:442px;
+ overflow:auto;
+ background-color: white;
+ color:black;
+}
+
+div.matitaapparea {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ height:100%;
+ width:100%;
+ background-color: white;
+ color:black;
+}
+
+div.toparea {
+ display: block;
+ padding:4px;
+ margin-left: auto;
+ margin-right: auto;
+ height:64px;
+ width:100%;
+ line-height:64px;
+/* float:left;*/
+}
+
+div.bottomarea {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ height:15%;
+ width:100%;
+}
+
+div.workarea {
+ display: block;
+ border:0px;
+ padding:0px;
+ margin:0px;
+ /*margin-left: auto;
+ margin-right: auto;*/
+ height:84%;
+ width:100%;
+}
+
+div.navibar {
+ display: inline-block;
+ margin-left: auto;
+ margin-right: auto;
+ height:100%;
+ width:370px;
+ float:left;
+}
+
+div.toolbar {
+ display: inline-block;
+ margin-left: auto;
+ margin-right: auto;
+ height:100%;
+ width:400px;
+ float:left;
+}
+
+div.caption {
+ display: inline-block;
+ margin-left: auto;
+ margin-right: auto;
+ height:100%;
+ width:220px;
+ text-align: center;
+ float:right;
+}
+
+img.topimg {
+ bottom:0px;
+ border:none;
+}
+
+div.scriptarea {
+ display: inline-block;
+ border:0px;
+ padding:0px;
+ margin:0px;
+/* margin-left: auto;
+ margin-right: auto;*/
+ height:100%;
+ width:67%;
+/* min-width:67%;
+ max-width:67%; */
+ float:left;
+}
+
+div.sidearea {
+ display: inline-block;
+ border:0px;
+ padding:0px;
+ margin:0px;
+ /*margin-left: auto;
+ margin-right: auto;*/
+ height:100%;
+ width:33%;
+/* min-width:33%;
+ max-width:33%; */
+ float:right;
+}
+
+div.framed {
+ border: 2px solid DarkGray;
+ overflow: auto;
+}
+
+div.context {
+ overflow: auto;
+}
+
+span.autotactic {
+ color: green;
+ font-weight: bold;
+}
+
+span.autotrace {
+ display:none;
+}
+
+span.activegoal {
+ color: red;
+ font-weight: bold;
+}
+
+span.error {
+ color:red;
+ text-decoration: none;
+ border-bottom: 2px dashed;
+}
+
+span.passivegoal {
+ color: blue;
+}
+
+h2 {
+ border: 0px;
+ padding: 1px;
+ display: inline;
+}
--- /dev/null
+var locked;
+var unlocked;
+var workarea;
+var scriptcell;
+var goalcell;
+var goals;
+var goalview;
+var filename;
+var logarea;
+var advanceButton;
+var retractButton;
+var cursorButton;
+var bottomButton;
+var dialogBox;
+var dialogTitle;
+var dialogContent;
+var metasenv = "";
+var lockedbackup = "";
+var matita;
+
+function text_of_html(h)
+{
+ if(document.all) {
+ return h.innerText;
+ } else {
+ return h.textContent;
+ }
+}
+
+function unescape_html(s)
+{
+ u = document.getElementById("unescape");
+ u.innerHTML = s;
+ return text_of_html(u)
+}
+
+function filterByClass (elements,cname){
+ var itemsfound = new Array;
+ for(var i=0;i<elements.length;i++){
+ if(elements[i].className == cname){
+ itemsfound.push(elements[i]);
+ }
+ }
+ return itemsfound;
+}
+
+function initialize()
+{
+ if (readCookie("session") == null) {
+ window.location = "/login.html"
+ } else {
+ body = document.body;
+ titlebar = document.getElementById("titlebar");
+ matitaTitle = document.getElementById("matitaTitle");
+ apparea = document.getElementById("matitaapparea");
+ locked = document.getElementById("locked");
+ unlocked = document.getElementById("unlocked");
+ toparea = document.getElementById("toparea");
+ workarea = document.getElementById("workarea");
+ scriptcell = document.getElementById("scriptcell");
+ sidearea = document.getElementById("sidearea");
+ disambcell = document.getElementById("disambcell");
+ goalcell = document.getElementById("goalcell");
+ goals = document.getElementById("goals");
+ goalview = document.getElementById("goalview");
+ filename = document.getElementById("filename");
+ logarea = document.getElementById("logarea");
+ advanceButton = document.getElementById("advance");
+ retractButton = document.getElementById("retract");
+ cursorButton = document.getElementById("cursor");
+ bottomButton = document.getElementById("bottom");
+ dialogBox = document.getElementById("dialogBox");
+ uploadBox = document.getElementById("uploadBox");
+ dialogTitle = document.getElementById("dialogTitle");
+ dialogContent = document.getElementById("dialogContent");
+
+ matita = new Object();
+ matita.disambMode = matita.proofMode = false;
+
+ // hide sequent view at start
+ initializeLayout();
+ updateSide();
+
+ changeFile("test.ma");
+
+ // initialize keyboard events in the unlocked script
+ init_keyboard(unlocked);
+
+ init_autotraces();
+
+ }
+}
+
+function init_autotraces() {
+ $("#unlocked .autotactic").tooltip({
+ delay: 0,
+ showURL: false,
+ bodyHandler: function() {
+ return (trace_of($(this)[0]));
+ }
+ });
+ $("#locked .autotactic").tooltip({
+ delay: 0,
+ showURL: false,
+ bodyHandler: function() {
+ return (trace_of($(this)[0]));
+ }
+ });
+}
+
+function trace_of(node) {
+ return text_of_html(filterByClass(node.childNodes,"autotrace")[0]);
+}
+
+function changeFile(name) {
+ current_fname = name;
+ matitaTitle.innerHTML = "Matita - cic:/matita/" + name;
+}
+
+function init_keyboard(target)
+{
+ if (target.addEventListener)
+ {
+// target.addEventListener("keydown",keydown,false);
+ target.addEventListener("keypress",keypress,false);
+// target.addEventListener("keyup",keyup,false);
+// target.addEventListener("textInput",textinput,false);
+ }
+ else if (target.attachEvent)
+ {
+// target.attachEvent("onkeydown", keydown);
+ target.attachEvent("onkeypress", keypress);
+// target.attachEvent("onkeyup", keyup);
+// target.attachEvent("ontextInput", textinput);
+ }
+ else
+ {
+// target.onkeydown= keydown;
+ target.onkeypress= keypress;
+// target.onkeyup= keyup;
+// target.ontextinput= textinput; // probably doesn't work
+ }
+
+}
+
+function keyval(n)
+{
+ if (n == null) return 'undefined';
+ var s= '' + n;
+ if (n >= 32 && n < 127) s+= ' (' + String.fromCharCode(n) + ')';
+ while (s.length < 9) s+= ' ';
+ return s;
+}
+
+function string_of_key(n)
+{
+ if (n == null) return 'undefined';
+ return String.fromCharCode(n);
+}
+
+function pressmesg(w,e)
+{
+ debug(w + ' keyCode=' + keyval(e.keyCode) +
+ ' which=' + keyval(e.which) +
+ ' charCode=' + keyval(e.charCode) +
+ '\n shiftKey='+e.shiftKey
+ + ' ctrlKey='+e.ctrlKey
+ + ' altKey='+e.altKey
+ + ' metaKey='+e.metaKey);
+}
+
+function suppressdefault(e,flag)
+{
+ if (flag)
+ {
+ if (e.preventDefault) e.preventDefault();
+ if (e.stopPropagation) e.stopPropagation();
+ }
+ return !flag;
+}
+
+function restoreSelection(r) {
+ unlocked.focus();
+ if (r != null) {
+ if (window.getSelection)//non IE and there is already a selection
+ {
+ var s = window.getSelection();
+ if (s.rangeCount > 0)
+ s.removeAllRanges();
+ s.addRange(r);
+ }
+ else
+ if (document.createRange)//non IE and no selection
+ {
+ window.getSelection().addRange(r);
+ }
+ else
+ if (document.selection)//IE
+ {
+ r.select();
+ }
+ }
+}
+
+function lookup_tex(texmacro)
+{
+ texmacro = texmacro.substring(1);
+ return unescape(macro2utf8[texmacro]);
+}
+
+function strip_tags(tagname,classname)
+{
+ var tags = unlocked.getElementsByTagName(tagname);
+ var tlen = tags.length; // preserving the value from removeChild operations
+ if (is_defined(classname)) {
+ tags = filterByClass(tags,classname);
+ }
+ for (i = 0; i < tlen; i++) {
+ var children = tags[i].childNodes;
+ for (j = 0; j < children.length; j++) {
+ tags[i].parentNode.insertBefore(children[j],tags[i]);
+ }
+ }
+ for (var i = 0; i < tlen; i++) {
+ tags[0].parentNode.removeChild(tags[0]);
+ }
+}
+
+function strip_interpr() {
+ strip_tags("A");
+ alert("strip_interpr ended");
+}
+
+function keypress(e)
+{
+ if (!e) e= event;
+ pressmesg('keypress',e);
+ var s = string_of_key(e.charCode);
+ strip_tags("span","error");
+ if (s == " ") {
+ j = getCursorPos();
+ i = unlocked.innerHTML.html_to_matita().lastIndexOf('\\',j);
+ if (i >= 0) {
+ match = unlocked.innerHTML.html_to_matita().substring(i,j);
+ sym = unescape_html(lookup_tex(match));
+ if (sym != "undefined") {
+ if (window.getSelection) { // non IE
+ savedRange.setStart(savedsc,savedso - (j-i));
+ savedRange.deleteContents();
+ savedRange.insertNode(document.createTextNode(sym));
+ savedsc.parentNode.normalize();
+ if (savedRange.collapsed) { // Mozilla
+ savedRange.setEnd(savedsc,savedRange.endOffset + sym.length);
+ }
+ savedRange.collapse(false);
+ } else {
+ savedRange.moveStart(i-j);
+ savedRange.text(sym);
+ savedRange.collapse(false);
+ }
+ restoreSelection(savedRange);
+ return suppressdefault(e,true);
+ }
+ else {
+ // restoreSelection(0);
+ return suppressdefault(e,false);
+ }
+ }
+ else return suppressdefault(e,false);
+ } else {
+ return suppressdefault(e,false);
+ }
+}
+
+var logtxt = "";
+
+function debug(txt)
+{
+ // internet explorer (v.9) doesn't work with innerHTML
+ // but google chrome's innerText is, in a sense, "write only"
+ // what should we do?
+ // logarea.innerText = txt + "\n" + logarea.innerText;
+ logtxt = /* logtxt + "\n" +*/ txt;
+}
+
+function showLog() {
+ logWin = window.open( "", "Matita Log",
+ "width=600,height=450,status,scrollbars,resizable,screenX=20,screenY=40,left=20,top=40");
+ logWin.document.write('<html><head><title>Matita Log' + '</title></head>');
+ logWin.document.write('<body><textarea style="width:100%;height:100%;">' +
+ logtxt + '</textarea></body></html>');
+ logWin.document.close();
+}
+
+function listhd(l)
+{
+ ar = l.split("#");
+ debug("hd of '" + l + "' = '" + ar[0] + "'");
+ return (ar[0]);
+}
+
+function listtl(l)
+{
+ i = l.indexOf("#");
+ tl = l.substr(i+1);
+ debug("tl of '" + l + "' = '" + tl + "'");
+ return (tl);
+}
+
+function listcons(x,l)
+{
+ debug("cons '" + x + "' on '" + l + "'");
+ return (x + "#" + l);
+}
+
+function listnil()
+{
+ return ("");
+}
+
+function list_append(l1,l2)
+{ return (l1 + l2) }
+
+function is_nil(l)
+{
+ return (l == "");
+}
+
+function fold_left (f,acc,l)
+{
+ if (is_nil(l))
+ { debug("'" + l + "' is fold end");
+ return (acc); }
+ else
+ { debug("'" + l + "' is fold cons");
+ return(fold_left (f,f(acc,(listhd(l))),listtl(l))); }
+}
+
+function listiter (f,l)
+{
+ if (is_nil(l))
+ { debug("'" + l + "' is nil");
+ return;
+ }
+ else
+ {
+ debug("'" + l + "' is not nil");
+ f(listhd(l));
+ listiter(f,listtl(l));
+ }
+}
+
+function listmap (f,l)
+{
+ debug("listmap on " + l);
+ if (is_nil(l))
+ { debug("returning listnil");
+ return(listnil());
+ }
+ else
+ { debug("cons f(hd) map(f,tl)");
+ return(f(listhd(l)) + "#" + listmap(f,listtl(l)));
+ }
+}
+
+var statements = listnil();
+
+var goalarray;
+var metalist = listnil();
+
+function pairmap (f,p)
+{
+ debug("pairmap of '" + p + "'");
+ ar = p.split("|");
+ return (f(ar[0],ar[1]));
+}
+
+function tripletmap (f,p)
+{
+ debug("tripletmap of '" + p + "'");
+ ar = p.split("|");
+ return (f(ar[0],ar[1],ar[2]));
+}
+
+function fst (p)
+{
+ debug("fst");
+ return (pairmap (function (a,b) { return (a); }, p));
+}
+
+function p13 (p)
+{
+ debug("p13");
+ return (tripletmap (function (a,b,c) { return (a); }, p));
+}
+
+function p23 (p)
+{
+ debug("p23");
+ return (tripletmap (function (a,b,c) { return (b); }, p));
+}
+
+function p33 (p)
+{
+ debug("f33");
+ return (tripletmap (function (a,b,c) { return (c); }, p));
+}
+
+function populate_goalarray(menv)
+{
+ debug("metasenv.length = " + menv.length);
+ if (menv.length == 0) {
+ try {
+ hideSequent();
+ } catch (err) { };
+ } else {
+ showSequent();
+ goalarray = new Array();
+ metalist = listnil();
+ var tmp_goallist = "";
+ for (i = 0; i < menv.length; i++) {
+ metano = menv[i].getAttribute("number");
+ metaname = menv[i].childNodes[0].childNodes[0].data;
+ goal = menv[i].childNodes[1].childNodes[0].data;
+ debug ("found meta n. " + metano);
+ debug ("found goal\nBEGIN" + goal + "\nEND");
+ goalarray[metano] = goal;
+ tmp_goallist = " <A href=\"javascript:switch_goal(" + metano + ")\">" + metaname + "</A>" + tmp_goallist;
+ metalist = listcons(metano,metalist);
+ debug ("goalarray[\"" + metano + "\"] = " + goalarray[metano]);
+ }
+ goals.innerHTML = tmp_goallist;
+ debug("new metalist is '" + metalist + "'");
+ if (is_nil(metalist)) {
+ switch_goal();
+ }
+ else {
+ switch_goal(listhd(metalist));
+ }
+ }
+}
+
+function switch_goal(meta)
+{
+ if (typeof meta == "undefined") {
+ goalview.innerHTML = "";
+ }
+ else {
+ debug("switch_goal " + meta + "\n" + goalarray[meta]);
+ goalview.innerHTML = "<B>Goal ?" + meta + ":</B>\n\n" + goalarray[meta];
+ }
+}
+
+// the following is used to avoid escaping unicode, which results in
+// the server being unable to unescape the string
+String.prototype.sescape = function() {
+ var patt1 = /%/gi;
+ var patt2 = /=/gi;
+ var patt3 = /&/gi;
+ var patt4 = /\+/gi;
+ var result = this;
+ result = result.replace(patt1,"%25");
+ result = result.replace(patt2,"%3D");
+ result = result.replace(patt3,"%26");
+ result = result.replace(patt4,"%2B");
+ return (result);
+}
+
+String.prototype.html_to_matita = function()
+{
+ var patt1 = /<br(\/|)>/gi;
+ var patt2 = /</gi
+ var patt3 = />/gi
+ var patt4 = /</gi;
+ var patt5 = />/gi;
+ var patt6 = / /gi;
+ var result = this;
+ result = result.replace(patt1,"\n");
+ result = result.replace(patt2,"\005");
+ result = result.replace(patt3,"\006");
+ result = result.replace(patt4,"<");
+ result = result.replace(patt5,">");
+ result = result.replace(patt6," ");
+ return (unescape(result));
+}
+
+String.prototype.matita_to_html = function()
+{
+ var patt1 = /</gi
+ var patt2 = />/gi
+ var patt3 = /\005/gi;
+ var patt4 = /\006/gi;
+ var result = this;
+ result = result.replace(patt1,"<");
+ result = result.replace(patt2,">");
+ result = result.replace(patt3,"<");
+ result = result.replace(patt4,">");
+ return (unescape(result));
+}
+
+function is_defined(x)
+{
+ return (typeof x != "undefined");
+}
+
+/* servicename: name of the service being called
+ * reqbody: text of the request
+ * processResponse: processes the server response
+ * (takes the response text in input, undefined in case of error)
+ */
+function callServer(servicename,processResponse,reqbody)
+{
+ var req = null;
+ // pause();
+ if (window.XMLHttpRequest)
+ {
+ req = new XMLHttpRequest();
+ }
+ else if (window.ActiveXObject)
+ {
+ try {
+ req = new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e)
+ {
+ try {
+ req = new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (e) {}
+ }
+ }
+ req.onreadystatechange = function()
+ {
+
+ rs = req.readyState;
+
+ if(rs == 4)
+ {
+ stat = req.status;
+ stxt = req.statusText;
+ if(stat == 200)
+ {
+ debug(req.responseText);
+ if (window.DOMParser) {
+ parser=new DOMParser();
+ xmlDoc=parser.parseFromString(req.responseText,"text/xml");
+ }
+ else // Internet Explorer
+ {
+ xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
+ xmlDoc.async="false";
+ xmlDoc.loadXML(req.responseText);
+ }
+ processResponse(xmlDoc);
+ } else {
+ processResponse();
+ }
+ }
+ };
+ req.open("POST", servicename); // + escape(unlocked.innerHTML), true);
+ req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
+ if (reqbody) {
+ req.send(reqbody);
+ } else {
+ req.send();
+ }
+
+}
+
+function advOneStep(xml) {
+ var parsed = xml.getElementsByTagName("parsed")[0];
+ var ambiguity = xml.getElementsByTagName("ambiguity")[0];
+ var disamberr = xml.getElementsByTagName("disamberror")[0];
+ if (is_defined(parsed)) {
+ // debug("advance: received response\nBEGIN\n" + req.responseText + "\nEND");
+ var len = parseInt(parsed.getAttribute("length"));
+ // len0 = unlocked.innerHTML.length;
+ var unescaped = unlocked.innerHTML.html_to_matita();
+ var parsedtxt = parsed.childNodes[0].wholeText;
+ //parsedtxt = unescaped.substr(0,len);
+ var unparsedtxt = unescaped.substr(len);
+ lockedbackup += parsedtxt;
+ locked.innerHTML = lockedbackup;
+ unlocked.innerHTML = unparsedtxt.matita_to_html();
+ // len1 = unlocked.innerHTML.length;
+ // len2 = len0 - len1;
+ var len2 = parsedtxt.length;
+ metasenv = xml.getElementsByTagName("meta");
+ statements = listcons(len2,statements);
+ unlocked.scrollIntoView(true);
+ return len;
+ }
+ else if (is_defined(ambiguity)) {
+ var start = parseInt(ambiguity.getAttribute("start"));
+ var stop = parseInt(ambiguity.getAttribute("stop"));
+ var choices = xml.getElementsByTagName("choice");
+
+ matita.ambiguityStart = start;
+ matita.ambiguityStop = stop;
+ matita.unlockedbackup = unlocked.innerHTML.html_to_matita();
+ matita.interpretations = [];
+
+ var unlockedtxt = unlocked.innerHTML.html_to_matita();
+ var pre = unlockedtxt.substring(0,start).matita_to_html();
+ var mid = unlockedtxt.substring(start,stop).matita_to_html();
+ var post = unlockedtxt.substring(stop).matita_to_html();
+ unlocked.innerHTML = pre +
+ "<span class=\"error\" title=\"disambiguation error\">" +
+ mid + "</span>" + post;
+
+ var title = "<H3>Ambiguous input</H3>";
+ disambcell.innerHTML = title;
+ for (i = 0;i < choices.length;i++) {
+ matita.interpretations[i] = new Object();
+
+ var href = choices[i].getAttribute("href");
+ var title = choices[i].getAttribute("title");
+ var desc = choices[i].childNodes[0].nodeValue;
+
+ matita.interpretations[i].href = href;
+ matita.interpretations[i].title = title;
+ matita.interpretations[i].desc = desc;
+
+ var choice = document.createElement("input");
+ choice.setAttribute("type","radio");
+ choice.setAttribute("name","interpr");
+ choice.setAttribute("href",href);
+ choice.setAttribute("title",title);
+ if (i == 0) choice.setAttribute("checked","");
+
+ disambcell.appendChild(choice);
+ disambcell.appendChild(document.createTextNode(desc));
+ disambcell.appendChild(document.createElement("br"));
+ }
+
+ var okbutton = document.createElement("input");
+ okbutton.setAttribute("type","button");
+ okbutton.setAttribute("value","OK");
+ okbutton.setAttribute("onclick","do_disambiguate()");
+ var cancelbutton = document.createElement("input");
+ cancelbutton.setAttribute("type","button");
+ cancelbutton.setAttribute("value","Cancel");
+ cancelbutton.setAttribute("onclick","cancel_disambiguate()");
+
+ disambcell.appendChild(okbutton);
+ disambcell.appendChild(cancelbutton);
+
+ matita.disambMode = true;
+ updateSide();
+ throw "Stop";
+ }
+ else if (is_defined(disamberr)) {
+ // must be fixed in a daemon: it makes sense to return a
+ // disambiguation error with no choices
+ if (disamberr.childNodes.length > 0) {
+ set_cps(disamberr.childNodes);
+ matita.unlockedbackup = unlocked.innerHTML.html_to_matita();
+ matita.disambMode = true;
+ next_cp(0);
+ }
+ throw "Stop";
+ }
+ else {
+ var error = xml.getElementsByTagName("error")[0];
+ unlocked.innerHTML = error.childNodes[0].wholeText;
+ // debug(xml.childNodes[0].nodeValue);
+ throw "Stop";
+ }
+
+}
+
+function advanceForm1()
+{
+ processor = function(xml) {
+ try {
+ if (is_defined(xml)) {
+ advOneStep(xml);
+ populate_goalarray(metasenv);
+ init_autotraces();
+ } else {
+ debug("advance failed");
+ }
+ } catch (e) {
+ // nothing to do
+ };
+ resume();
+ };
+ pause();
+ callServer("advance",processor,"body=" + (unlocked.innerHTML.html_to_matita()).sescape());
+
+}
+
+// get or set <choicepoint>'s (in case of disamb error)
+function get_cps() {
+ return matita.choicepoints
+}
+
+function set_cps(cps) {
+ matita.choicepoints = cps;
+}
+
+// get radio buttons for <choice>'s in a given cp
+function get_choice_opts(i) {
+ var res = [];
+ var choices = get_cps()[i].childNodes;
+ for (var j = 0;j < choices.length;j++) {
+ var href = choices[j].getAttribute("href");
+ var title = choices[j].getAttribute("title");
+ var desc;
+ if (is_defined(title) && title != null) {
+ desc = title;
+ } else if (is_defined(href) && href != null) {
+ desc = href;
+ } else {
+ desc = null;
+ }
+
+ res[j] = document.createElement("input");
+ res[j].setAttribute("type","radio");
+ res[j].setAttribute("name","choice");
+ res[j].setAttribute("choicepointno",i);
+ res[j].setAttribute("choiceno",j);
+ res[j].setAttribute("href",href);
+ res[j].setAttribute("title",title);
+ if (desc != null) res[j].setAttribute("desc",desc);
+
+ if (j == 0) res[j].setAttribute("checked","");
+ }
+ return res;
+}
+
+// get radio buttons for <failure>'s in a given choice
+function get_failure_opts(i,j) {
+ var res = [];
+ var failures = get_cps()[i].childNodes[j].childNodes;
+ for (var k = 0;k < failures.length;k++) {
+ var start = failures[k].getAttribute("start");
+ var stop = failures[k].getAttribute("stop");
+ var title = failures[k].getAttribute("title");
+
+ res[k] = document.createElement("input");
+ res[k].setAttribute("type","radio");
+ res[k].setAttribute("name","failure");
+ res[k].setAttribute("choicepointno",i);
+ res[k].setAttribute("choiceno",j);
+ res[k].setAttribute("failureno",k);
+ res[k].setAttribute("start",start);
+ res[k].setAttribute("stop",stop);
+ res[k].setAttribute("title",title);
+
+ if (k == 0) res[k].setAttribute("checked","");
+ }
+ return res;
+}
+
+function next_cp(curcp) {
+ var cp = get_cps()[curcp];
+ var start = parseInt(cp.getAttribute("start"));
+ var stop = parseInt(cp.getAttribute("stop"));
+
+ matita.errorStart = start;
+ matita.errorStop = stop;
+ // matita.unlockedbackup = unlocked.innerHTML.html_to_matita();
+
+ var unlockedtxt = matita.unlockedbackup;
+ var pre = unlockedtxt.substring(0,start).matita_to_html();
+ var mid = unlockedtxt.substring(start,stop).matita_to_html();
+ var post = unlockedtxt.substring(stop).matita_to_html();
+ unlocked.innerHTML = pre +
+ "<span class=\"error\" title=\"error location\">" +
+ mid + "</span>" + post;
+
+ var title = "<H3>Error diagnostics</H3>";
+ disambcell.innerHTML = title;
+ var choices = get_choice_opts(curcp);
+ for (var i = 0;i < choices.length;i++) {
+ disambcell.appendChild(choices[i]);
+ var desc = choices[i].getAttribute("desc");
+ if (!is_defined(desc) || desc == null) {
+ desc = "Interpretation " + i;
+ }
+ disambcell.appendChild(document.createTextNode(desc));
+ disambcell.appendChild(document.createElement("br"));
+ }
+
+ // update index of the next choicepoint
+ new_curcp = (curcp + 1) % get_cps().length;
+
+ var okbutton = document.createElement("input");
+ okbutton.setAttribute("type","button");
+ okbutton.setAttribute("value","OK");
+ okbutton.setAttribute("onclick","show_failures()");
+ var cancelbutton = document.createElement("input");
+ cancelbutton.setAttribute("type","button");
+ cancelbutton.setAttribute("value","Close");
+ cancelbutton.setAttribute("onclick","cancel_disambiguate()");
+ var tryagainbutton = document.createElement("input");
+ tryagainbutton.setAttribute("type","button");
+ if (new_curcp > 0) {
+ tryagainbutton.setAttribute("value","Try something else");
+ } else {
+ tryagainbutton.setAttribute("value","Restart");
+ }
+ tryagainbutton.setAttribute("onclick","next_cp(" + new_curcp + ")");
+
+ disambcell.appendChild(okbutton);
+ disambcell.appendChild(tryagainbutton);
+ disambcell.appendChild(cancelbutton);
+
+ //disable_toparea();
+
+ //matita.disambMode = true;
+ updateSide();
+
+}
+
+function show_failures() {
+
+ var choice = document.getElementsByName("choice")[get_checked_index("choice")];
+ var cpno = parseInt(choice.getAttribute("choicepointno"));
+ var choiceno = parseInt(choice.getAttribute("choiceno"));
+ var choicedesc = choice.getAttribute("desc");
+
+ var title = "<H3>Error diagnostics</H3>";
+ var subtitle;
+ if (is_defined(choicedesc) && choicedesc != null) {
+ subtitle = "<p>Errors at node " + cpno + " = " + choicedesc + "</p>";
+ } else {
+ subtitle = "<p>Global errors:</p>";
+ }
+
+ disambcell.innerHTML = title + subtitle;
+ var failures = get_failure_opts(cpno,choiceno);
+ for (var i = 0;i < failures.length;i++) {
+ disambcell.appendChild(failures[i]);
+ disambcell.appendChild(document.createTextNode(failures[i].getAttribute("title")));
+ disambcell.appendChild(document.createElement("br"));
+ }
+
+ var okbutton = document.createElement("input");
+ okbutton.setAttribute("type","button");
+ okbutton.setAttribute("value","Show error loc");
+ okbutton.setAttribute("onclick","show_err()");
+ var cancelbutton = document.createElement("input");
+ cancelbutton.setAttribute("type","button");
+ cancelbutton.setAttribute("value","Close");
+ cancelbutton.setAttribute("onclick","cancel_disambiguate()");
+ var backbutton = document.createElement("input");
+ backbutton.setAttribute("type","button");
+ backbutton.setAttribute("value","<< Back");
+ backbutton.setAttribute("onclick","next_cp(" + cpno + ")");
+
+ disambcell.appendChild(backbutton);
+ disambcell.appendChild(okbutton);
+ disambcell.appendChild(cancelbutton);
+
+}
+
+function show_err() {
+ var radios = document.getElementsByName("failure");
+ for (i = 0; i < radios.length; i++) {
+ if (radios[i].checked) {
+ var start = radios[i].getAttribute("start");
+ var stop = radios[i].getAttribute("stop");
+ var title = radios[i].getAttribute("title");
+ var unlockedtxt = matita.unlockedbackup;
+ var pre = unlockedtxt.substring(0,start).matita_to_html();
+ var mid = unlockedtxt.substring(start,stop).matita_to_html();
+ var post = unlockedtxt.substring(stop).matita_to_html();
+ unlocked.innerHTML = pre +
+ "<span class=\"error\" title=\"Disambiguation failure\">" +
+ mid + "</span>" + post;
+ break;
+ }
+ }
+}
+
+function gotoBottom()
+{
+ processor = function(xml) {
+ if (is_defined(xml)) {
+ // debug("goto bottom: received response\nBEGIN\n" + req.responseText + "\nEND");
+ var parsed = xml.getElementsByTagName("parsed");
+ var localized = xml.getElementsByTagName("localized")[0];
+ var ambiguity = xml.getElementsByTagName("ambiguity")[0];
+ var generic_err = xml.getElementsByTagName("error")[0];
+ var disamberr = xml.getElementsByTagName("disamberror")[0];
+ for (var i = 0;i < parsed.length; i++) {
+ var len = parsed[i].getAttribute("length");
+ // len0 = unlocked.innerHTML.length;
+ var unescaped = unlocked.innerHTML.html_to_matita();
+ // the browser may decide to split textnodes: use wholeText!
+ var parsedtxt = parsed[i].childNodes[0].wholeText;
+ //parsedtxt = unescaped.substr(0,len);
+ var unparsedtxt = unescaped.substr(len);
+ lockedbackup += parsedtxt;
+ locked.innerHTML = lockedbackup; //.matita_to_html();
+ unlocked.innerHTML = unparsedtxt.matita_to_html();
+ // len1 = unlocked.innerHTML.length;
+ var len2 = parsedtxt.length;
+ statements = listcons(len2,statements);
+ }
+ unlocked.scrollIntoView(true);
+ metasenv = xml.getElementsByTagName("meta");
+ init_autotraces();
+ populate_goalarray(metasenv);
+
+ if (is_defined(ambiguity)) {
+ var start = parseInt(ambiguity.getAttribute("start"));
+ var stop = parseInt(ambiguity.getAttribute("stop"));
+ var choices = xml.getElementsByTagName("choice");
+
+ matita.ambiguityStart = start;
+ matita.ambiguityStop = stop;
+ matita.unlockedbackup = unlocked.innerHTML.html_to_matita();
+ matita.interpretations = [];
+
+ var unlockedtxt = unlocked.innerHTML.html_to_matita();
+ var pre = unlockedtxt.substring(0,start).matita_to_html();
+ var mid = unlockedtxt.substring(start,stop).matita_to_html();
+ var post = unlockedtxt.substring(stop).matita_to_html();
+ unlocked.innerHTML = pre +
+ "<span class=\"error\" title=\"disambiguation error\">" +
+ mid + "</span>" + post;
+
+ var title = "<H3>Ambiguous input</H3>";
+ disambcell.innerHTML = title;
+ for (i = 0;i < choices.length;i++) {
+ matita.interpretations[i] = new Object();
+
+ var href = choices[i].getAttribute("href");
+ var title = choices[i].getAttribute("title");
+ var desc = choices[i].childNodes[0].nodeValue;
+
+ matita.interpretations[i].href = href;
+ matita.interpretations[i].title = title;
+ matita.interpretations[i].desc = desc;
+
+ var choice = document.createElement("input");
+ choice.setAttribute("type","radio");
+ choice.setAttribute("name","interpr");
+ choice.setAttribute("href",href);
+ choice.setAttribute("title",title);
+ if (i == 0) choice.setAttribute("checked","");
+
+ disambcell.appendChild(choice);
+ disambcell.appendChild(document.createTextNode(desc));
+ disambcell.appendChild(document.createElement("br"));
+ }
+
+ var okbutton = document.createElement("input");
+ okbutton.setAttribute("type","button");
+ okbutton.setAttribute("value","OK");
+ okbutton.setAttribute("onclick","do_disambiguate()");
+ var cancelbutton = document.createElement("input");
+ cancelbutton.setAttribute("type","button");
+ cancelbutton.setAttribute("value","Cancel");
+ cancelbutton.setAttribute("onclick","cancel_disambiguate()");
+
+ disambcell.appendChild(okbutton);
+ disambcell.appendChild(cancelbutton);
+
+ matita.disambMode = true;
+ updateSide();
+ }
+ else if (is_defined(disamberr)) {
+ // must be fixed in a daemon: it makes sense to return a
+ // disambiguation error with no choices
+ if (disamberr.childNodes.length > 0) {
+ set_cps(disamberr.childNodes);
+ matita.unlockedbackup = unlocked.innerHTML.html_to_matita();
+ matita.disambMode = true;
+ next_cp(0);
+ }
+ throw "Stop";
+ }
+ else if (is_defined(localized)) {
+ unlocked.innerHTML = localized.childNodes[0].wholeText;
+ }
+ else if (is_defined(generic_err)) {
+ debug("Unmanaged error:\n" ^ generic_err.childNodes[0].wholeText);
+ }
+ } else {
+ debug("goto bottom failed");
+ }
+ resume();
+ };
+ pause();
+ callServer("bottom",processor,"body=" + (unlocked.innerHTML.html_to_matita()).sescape());
+}
+
+
+function gotoTop()
+{
+ processor = function(xml) {
+ if (is_defined(xml)) {
+ if (xml.childNodes[0].textContent != "ok") {
+ debug("goto top failed");
+ }
+ else
+ statements = listnil();
+ /*
+ lockedlen = locked.innerHTML.length - statementlen;
+ statement = locked.innerHTML.substr(lockedlen, statementlen);
+ locked.innerHTML = locked.innerHTML.substr(0,lockedlen);
+ unlocked.innerHTML = statement + unlocked.innerHTML;
+ */
+ unlocked.innerHTML = lockedbackup + unlocked.innerHTML;
+ lockedbackup = "";
+ locked.innerHTML = lockedbackup;
+ init_autotraces();
+ hideSequent();
+ unlocked.scrollIntoView(true);
+ } else {
+ debug("goto top failed");
+ }
+ resume();
+ };
+ pause();
+ callServer("top",processor,"body=" + (unlocked.innerHTML.html_to_matita()).sescape());
+
+}
+
+function gotoPos(offset)
+{
+ if (!is_defined(offset)) {
+ offset = getCursorPos();
+ }
+ processor = function(xml) {
+ if (is_defined(xml)) {
+ try {
+ /*
+ parsed = xml.getElementsByTagName("parsed")[0];
+ len = parseInt(parsed.getAttribute("length"));
+ // len0 = unlocked.innerHTML.length;
+ unescaped = unlocked.innerHTML.html_to_matita();
+ parsedtxt = parsed.childNodes[0].wholeText;
+ //parsedtxt = unescaped.substr(0,len);
+ unparsedtxt = unescaped.substr(len);
+ lockedbackup += parsedtxt;
+ locked.innerHTML = lockedbackup; //.matita_to_html();
+ unlocked.innerHTML = unparsedtxt.matita_to_html();
+ // len1 = unlocked.innerHTML.length;
+ len2 = parsedtxt.length;
+ metasenv = xml.getElementsByTagName("meta");
+ // populate_goalarray(metasenv);
+ statements = listcons(len2,statements);
+ unlocked.scrollIntoView(true);
+ // la populate non andrebbe fatta a ogni passo
+ */
+ var len = advOneStep(xml);
+ if (offset <= len) {
+ init_autotraces();
+ populate_goalarray(metasenv);
+ resume();
+ } else {
+ gotoPos(offset - len);
+ }
+ } catch (er) {
+ init_autotraces();
+ populate_goalarray(metasenv);
+ resume();
+ }
+ } else {
+ init_autotraces();
+ unlocked.scrollIntoView(true);
+ populate_goalarray(metasenv);
+ resume();
+ }
+ }
+ pause();
+ callServer("advance",processor,"body=" + (unlocked.innerHTML.html_to_matita()).sescape());
+}
+
+function retract()
+{
+ processor = function(xml) {
+ if (typeof xml != "undefined") {
+ // debug("advance: received response\nBEGIN\n" + req.responseText + "\nEND");
+ statementlen = parseInt(listhd(statements));
+ statements = listtl(statements);
+ /*
+ lockedlen = locked.innerHTML.length - statementlen;
+ statement = locked.innerHTML.substr(lockedlen, statementlen);
+ locked.innerHTML = locked.innerHTML.substr(0,lockedlen);
+ unlocked.innerHTML = statement + unlocked.innerHTML;
+ */
+ lockedlen = lockedbackup.length - statementlen;
+ statement = lockedbackup.substr(lockedlen, statementlen);
+ lockedbackup = lockedbackup.substr(0,lockedlen);
+ locked.innerHTML = lockedbackup;
+ unlocked.innerHTML = statement + unlocked.innerHTML;
+ metasenv = xml.getElementsByTagName("meta");
+ init_autotraces();
+ populate_goalarray(metasenv);
+ unlocked.scrollIntoView(true);
+ } else {
+ debug("retract failed");
+ }
+ resume();
+ };
+ pause();
+ callServer("retract",processor);
+}
+
+function openFile()
+{
+ processor = function(xml)
+ {
+ if (is_defined(xml)) {
+ lockedbackup = "";
+ locked.innerHTML = lockedbackup;
+ unlocked.innerHTML = xml.documentElement.wholeText;
+ } else {
+ debug("file open failed");
+ }
+ };
+ callServer("open",processor,"file=" + escape(filename.value));
+}
+
+function retrieveFile(thefile)
+{
+ processor = function(xml)
+ {
+ if (is_defined(xml)) {
+ changeFile(thefile);
+ matita.disambMode = false;
+ matita.proofMode = false;
+ updateSide();
+ lockedbackup = ""
+ locked.innerHTML = lockedbackup;
+ // code originally used in google chrome (problems with mozilla)
+ // debug(xml.getElementsByTagName("file")[0].childNodes[0].nodeValue);
+ // unlocked.innerHTML = xml.getElementsByTagName("file")[0].childNodes[0].nodeValue;
+ debug(xml.childNodes[0].textContent);
+ if (document.all) { // IE
+ unlocked.innerHTML = xml.childNodes[0].text;
+ } else {
+ unlocked.innerHTML = xml.childNodes[0].textContent;
+ }
+ init_autotraces();
+
+ } else {
+ debug("file open failed");
+ }
+ };
+ abortDialog("dialogBox");
+ callServer("open",processor,"file=" + escape(thefile));
+}
+
+function showLibrary(title,callback,reloadDialog)
+{
+ var req = null;
+ dialogBox.reload = reloadDialog;
+ // pause();
+ if (window.XMLHttpRequest)
+ {
+ req = new XMLHttpRequest();
+ }
+ else if (window.ActiveXObject)
+ {
+ try {
+ req = new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e)
+ {
+ try {
+ req = new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (e) {}
+ }
+ }
+ req.onreadystatechange = function()
+ {
+
+ rs = req.readyState;
+
+ if(rs == 4)
+ {
+ stat = req.status;
+ stxt = req.statusText;
+ if(stat == 200)
+ {
+ debug(req.responseText);
+ showDialog("<H2>" + title + "</H2>",req.responseText, callback);
+ }
+ }
+ };
+ req.open("POST", "viewlib"); // + escape(unlocked.innerHTML), true);
+ req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
+ req.send();
+
+}
+
+function uploadDialog()
+{
+ uploadBox.style.display = "block";
+}
+
+function uploadOK()
+{
+ var file = document.getElementById("uploadFilename").files[0];
+// if (file) {
+// var filecontent = file.getAsText("UTF-8");
+// locked.innerHTML = lockedbackup;
+// unlocked.innerHTML = filecontent;
+// uploadBox.style.display = "none";
+// }
+ if (file) {
+ var reader = new FileReader();
+ reader.onerror = function (evt) {
+ debug("file open failed");
+ }
+ reader.onload = function (evt) {
+ lockedbackup = "";
+ locked.innerHTML = lockedbackup
+ unlocked.innerHTML = "";
+ unlocked.appendChild(document.createTextNode(evt.target.result));
+ uploadBox.style.display = "none";
+ }
+ try { reader.readAsText(file, "UTF-8"); }
+ catch (err) { /* nothing to do */ };
+ uploadBox.style.display = "none";
+ }
+}
+
+function openDialog()
+{
+ callback = function (fname) { retrieveFile(fname); };
+ showLibrary("Open file", callback, openDialog);
+}
+
+function saveDialog()
+{
+ callback = function (fname) {
+ abortDialog("dialogBox");
+ saveFile(fname,
+ (locked.innerHTML.html_to_matita()).sescape(),
+ (unlocked.innerHTML.html_to_matita()).sescape(),
+ false,saveDialog);
+ };
+ showLibrary("Save file as", callback, saveDialog);
+}
+
+function newDialog()
+{
+ callback = function (fname) {
+ abortDialog("dialogBox");
+ saveFile(fname,"","",false,newDialog,true);
+ };
+ showLibrary("Create new file", callback, newDialog);
+}
+
+
+function saveFile(fname,lockedtxt,unlockedtxt,force,reloadDialog,reloadFile)
+{
+ if (!is_defined(reloadFile)) { reloadFile = true };
+ if (!is_defined(fname)) {
+ fname = current_fname;
+ lockedtxt = (locked.innerHTML.html_to_matita()).sescape();
+ unlockedtxt = (unlocked.innerHTML.html_to_matita()).sescape();
+ force = true;
+ // when force is true, reloadDialog is not needed
+ }
+ processor = function(xml) {
+ if (is_defined(xml)) {
+ if (xml.childNodes[0].textContent != "ok") {
+ if (confirm("File already exists. All existing data will be lost.\nDo you want to proceed anyway?")) {
+ saveFile(fname,lockedtxt,unlockedtxt,true,reloadDialog,reloadFile);
+ } else {
+ reloadDialog();
+ }
+ } else {
+ changeFile(fname);
+ debug("file saved!");
+ if (reloadFile) { retrieveFile(fname); }
+ }
+ } else {
+ debug("save file failed");
+ }
+ resume();
+ };
+ if (is_defined(fname)) {
+ pause();
+ callServer("save",processor,"file=" + escape(fname) +
+ "&locked=" + lockedtxt +
+ "&unlocked=" + unlockedtxt +
+ "&force=" + force);
+ }
+ else { debug("no file selected"); }
+}
+
+function createDir() {
+ abortDialog("dialogBox");
+ dirname = prompt("New directory name:\ncic:/matita/","newdir");
+ if (dirname != null) {
+ processor = function(xml) {
+ if (is_defined(xml)) {
+ if (xml.childNodes[0].textContent != "ok") {
+ alert("An error occurred :-(");
+ }
+ } else {
+ alert("An error occurred :-(");
+ }
+ dialogBox.reload();
+ };
+ pause();
+ callServer("save",processor,"file=" + escape(dirname) +
+ "&locked=&unlocked=&force=false&dir=true");
+ } else {
+ dialogBox.reload();
+ }
+}
+
+function commitAll()
+{
+ processor = function(xml) {
+ if (is_defined(xml)) {
+ debug(xml.getElementsByTagName("details")[0].textContent);
+ alert("Commit executed: see details in the log.\n\n" +
+ "NOTICE: this message does NOT imply (yet) that the commit was successful.");
+ } else {
+ alert("Commit failed!");
+ }
+ resume();
+ };
+ pause();
+ callServer("commit",processor);
+}
+
+function updateAll()
+{
+ processor = function(xml) {
+ if (is_defined(xml)) {
+ alert("Update executed.\n\n" +
+ "Details:\n" +
+ xml.getElementsByTagName("details")[0].textContent);
+ } else {
+ alert("Update failed!");
+ }
+ resume();
+ };
+ pause();
+ callServer("update",processor);
+}
+
+var goalcell;
+
+function hideSequent() {
+ matita.proofMode = false;
+ updateSide();
+}
+
+function showSequent() {
+ matita.proofMode = true;
+ updateSide();
+}
+
+function showDialog(title,content,callback) {
+ dialogTitle.innerHTML = title;
+ dialogContent.innerHTML = content;
+ dialogBox.callback = callback;
+
+ //Get the screen height and width
+ var maskHeight = $(document).height();
+ var maskWidth = $(window).width();
+
+ //Set heigth and width to mask to fill up the whole screen
+ $('#mask').css({'width':maskWidth,'height':maskHeight});
+
+ //transition effect
+ $('#mask').fadeIn(100);
+ $('#mask').fadeTo(200,0.8);
+
+ //Get the window height and width
+ var winH = $(window).height();
+ var winW = $(window).width();
+
+ //Set the popup window to center
+ $('#dialogBox').css('top', winH/2-$('#dialogBox').height()/2);
+ $('#dialogBox').css('left', winW/2-$('#dialogBox').width()/2);
+
+ //transition effect
+ $('#dialogBox').fadeIn(200);
+
+ dialogBox.style.display = "block";
+}
+
+function abortDialog(dialog) {
+ document.getElementById(dialog).style.display = "none";
+ $('#mask').hide();
+}
+
+function removeElement(id) {
+ var element = document.getElementById(id);
+ element.parentNode.removeChild(element);
+}
+
+var savedsc;
+var savedso;
+
+function getCursorPos() {
+ var cursorPos;
+ if (window.getSelection) {
+ var selObj = window.getSelection();
+ savedRange = selObj.getRangeAt(0);
+ savedsc = savedRange.startContainer;
+ savedso = savedRange.startOffset;
+ //cursorPos = findNode(selObj.anchorNode.parentNode.childNodes, selObj.anchorNode) + selObj.anchorOffset;
+ cursorPos = findNode(unlocked.childNodes, selObj.anchorNode,0) + selObj.anchorOffset;
+ /* FIXME the following works wrong in Opera when the document is longer than 32767 chars */
+ return(cursorPos);
+ }
+ else if (document.selection) {
+ savedRange = document.selection.createRange();
+ var bookmark = savedRange.getBookmark();
+ /* FIXME the following works wrong when the document is longer than 65535 chars */
+ cursorPos = bookmark.charCodeAt(2) - 11; /* Undocumented function [3] */
+ return(cursorPos);
+ }
+}
+
+function findNode(list, node, acc) {
+ for (var i = 0; i < list.length; i++) {
+ if (list[i] == node) {
+ // debug("success " + i);
+ return acc;
+ }
+ if (list[i].hasChildNodes()) {
+ try {
+ // debug("recursion on node " + i);
+ return (findNode(list[i].childNodes,node,acc))
+ }
+ catch (e) { /* debug("recursion failed"); */ }
+ }
+ sandbox = document.getElementById("sandbox");
+ dup = list[i].cloneNode(true);
+ sandbox.appendChild(dup);
+// debug("fail " + i + ": " + sandbox.innerHTML);
+ acc += sandbox.innerHTML.html_to_matita().length;
+ sandbox.removeChild(dup);
+ }
+ throw "not found";
+}
+
+function test () {
+ debug("cursor test: " + unlocked.innerHTML.substr(0,getCursorPos()));
+}
+
+function get_checked_index(name) {
+ var radios = document.getElementsByName(name);
+ for (i = 0; i < radios.length; i++) {
+ if (radios[i].checked) {
+ return i;
+ }
+ }
+ return null;
+}
+
+function cancel_disambiguate() {
+ matita.disambMode = false;
+ resume();
+ // enable_toparea();
+ // enable_editing();
+ strip_tags("span","error");
+ updateSide();
+}
+
+function do_disambiguate() {
+ var i = get_checked_index("interpr");
+ if (i != null) {
+ var pre = matita.unlockedbackup
+ .substring(0,matita.ambiguityStart).matita_to_html();
+ var mid = matita.unlockedbackup
+ .substring(matita.ambiguityStart,matita.ambiguityStop)
+ .matita_to_html();
+ var post = matita.unlockedbackup
+ .substring(matita.ambiguityStop).matita_to_html();
+
+ var href = matita.interpretations[i].href;
+ var title = matita.interpretations[i].title;
+
+ if (is_defined(title)) {
+ mid = "<A href=\"" + href + "\" title=\"" + title + "\">" + mid + "</A>";
+ } else {
+ mid = "<A href=\"" + href + "\">" + mid + "</A>";
+ }
+
+ unlocked.innerHTML = pre + mid + post;
+
+ matita.disambMode = false;
+ enable_toparea();
+ enable_editing();
+ updateSide();
+ }
+}
+
+function do_showerror() {
+ var i = get_checked_index("choice");
+ if (i != null) {
+ var pre = matita.unlockedbackup
+ .substring(0,matita.ambiguityStart).matita_to_html();
+ var mid = matita.unlockedbackup
+ .substring(matita.ambiguityStart,matita.ambiguityStop)
+ .matita_to_html();
+ var post = matita.unlockedbackup
+ .substring(matita.ambiguityStop).matita_to_html();
+
+ var href = matita.interpretations[i].href;
+ var title = matita.interpretations[i].title;
+
+ if (is_defined(title)) {
+ mid = "<A href=\"" + href + "\" title=\"" + title + "\">" + mid + "</A>";
+ } else {
+ mid = "<A href=\"" + href + "\">" + mid + "</A>";
+ }
+
+ unlocked.innerHTML = pre + mid + post;
+
+ }
+}
+
+function readCookie(name) {
+ var nameEQ = name + "=";
+ var ca = document.cookie.split(';');
+ for(var i=0;i < ca.length;i++) {
+ var c = ca[i];
+ while (c.charAt(0)==' ') c = c.substring(1,c.length);
+ if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
+ }
+ return null;
+}
+
+function delete_cookie ( cookie_name )
+{
+ var cookie_date = new Date(); // current date & time
+ cookie_date.setTime ( cookie_date.getTime() - 1 );
+ document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
+}
+
+function delete_session()
+{
+ delete_cookie("session");
+}
+
+function disable_toparea() {
+ var offset = $('#toparea').offset();
+ $('#whitemask').css('top',offset.top);
+ $('#whitemask').css('left',offset.left);
+ $('#whitemask').css('width',$('#toparea').outerWidth() + "px");
+ $('#whitemask').css('height',$('#toparea').outerHeight() + "px");
+ $('#whitemask').fadeTo('fast',0.7);
+}
+
+function enable_toparea() {
+ $('#whitemask').hide();
+}
+
+function disable_editing() {
+ unlocked.contentEditable = false;
+}
+
+function enable_editing() {
+ unlocked.contentEditable = true;
+}
+
+function pause()
+{
+ // advanceButton.disabled = true;
+ // retractButton.disabled = true;
+ // cursorButton.disabled = true;
+ // bottomButton.disabled = true;
+ disable_toparea();
+ disable_editing();
+}
+
+function resume()
+{
+ // advanceButton.disabled = false;
+ // retractButton.disabled = false;
+ // cursorButton.disabled = false;
+ // bottomButton.disabled = false;
+ if (!matita.disambMode) {
+ enable_toparea();
+ enable_editing();
+ }
+}
+
--- /dev/null
+body{\r
+ font: 10pt Verdana,sans-serif;\r
+ color: navy;\r
+}\r
+.trigger{\r
+ cursor: pointer;\r
+ cursor: hand;\r
+ display: block;\r
+}\r
+.branch{\r
+ display: none;\r
+ margin-left: 16px;\r
+}\r
+a{\r
+ text-decoration: none;\r
+}\r
+a:hover{\r
+ text-decoration: underline;\r
+}\r
--- /dev/null
+var openImg = new Image();\r
+openImg.src = "treeview/open.gif";\r
+var closedImg = new Image();\r
+closedImg.src = "treeview/closed.gif";\r
+\r
+var diaFilename = document.getElementById("dialogFilename");\r
+\r
+function showBranch(branch,path){\r
+ var objBranch = document.getElementById(branch).style;\r
+ if(objBranch.display=="block")\r
+ objBranch.display="none";\r
+ else\r
+ objBranch.display="block";\r
+ swapFolder('I' + branch);\r
+ // codice per mostrare il path nella casella di testo\r
+ selectFile(path);\r
+}\r
+\r
+function swapFolder(img){\r
+ objImg = document.getElementById(img);\r
+ if(objImg.src.indexOf('treeview/closed.gif')>-1)\r
+ objImg.src = openImg.src;\r
+ else\r
+ objImg.src = closedImg.src;\r
+}\r
+\r
+function selectFile(path) {\r
+ dialogFilename.value = path;\r
+}\r
+\r
+function dialogOK() {\r
+ dialogBox.callback(document.getElementById("dialogFilename").value);\r
+}\r
--- /dev/null
+/* GENERATED by make_table: DO NOT EDIT! */
+var macro2utf8 = new Object();
+var utf82macro = new Object();
+macro2utf8["nscr"] = "𝓃";
+utf82macro["𝓃"] = "nscr";
+macro2utf8["LJcy"] = "Љ";
+utf82macro["Љ"] = "LJcy";
+macro2utf8["dd"] = "ⅆ";
+utf82macro["ⅆ"] = "dd";
+macro2utf8["Omacr"] = "Ō";
+utf82macro["Ō"] = "Omacr";
+macro2utf8["npreceq"] = "⪯̸";
+utf82macro["⪯̸"] = "npreceq";
+macro2utf8["Gcirc"] = "Ĝ";
+utf82macro["Ĝ"] = "Gcirc";
+macro2utf8["utilde"] = "ũ";
+utf82macro["ũ"] = "utilde";
+macro2utf8["rdca"] = "⤷";
+utf82macro["⤷"] = "rdca";
+macro2utf8["racute"] = "ŕ";
+utf82macro["ŕ"] = "racute";
+macro2utf8["mstpos"] = "∾";
+utf82macro["∾"] = "mstpos";
+macro2utf8["supnE"] = "⊋";
+utf82macro["⊋"] = "supnE";
+macro2utf8["NotLessLess"] = "≪̸︀";
+utf82macro["≪̸︀"] = "NotLessLess";
+macro2utf8["iiint"] = "∭";
+utf82macro["∭"] = "iiint";
+macro2utf8["uscr"] = "𝓊";
+utf82macro["𝓊"] = "uscr";
+macro2utf8["Sfr"] = "𝔖";
+utf82macro["𝔖"] = "Sfr";
+macro2utf8["nsupseteqq"] = "⊉";
+utf82macro["⊉"] = "nsupseteqq";
+macro2utf8["nwarrow"] = "↖";
+utf82macro["↖"] = "nwarrow";
+macro2utf8["twoheadrightarrow"] = "↠";
+utf82macro["↠"] = "twoheadrightarrow";
+macro2utf8["sccue"] = "≽";
+utf82macro["≽"] = "sccue";
+macro2utf8["NotSquareSuperset"] = "⊐̸";
+utf82macro["⊐̸"] = "NotSquareSuperset";
+macro2utf8["ee"] = "ⅇ";
+utf82macro["ⅇ"] = "ee";
+macro2utf8["boxbox"] = "⧉";
+utf82macro["⧉"] = "boxbox";
+macro2utf8["andand"] = "⩕";
+utf82macro["⩕"] = "andand";
+macro2utf8["LeftVectorBar"] = "⥒";
+utf82macro["⥒"] = "LeftVectorBar";
+macro2utf8["eg"] = "⪚";
+utf82macro["⪚"] = "eg";
+macro2utf8["csc"] = "csc";
+utf82macro["csc"] = "csc";
+macro2utf8["NotRightTriangleEqual"] = "⋭";
+utf82macro["⋭"] = "NotRightTriangleEqual";
+macro2utf8["filig"] = "fi";
+utf82macro["fi"] = "filig";
+macro2utf8["atilde"] = "ã";
+utf82macro["ã"] = "atilde";
+macro2utf8["ring"] = "˚";
+utf82macro["˚"] = "ring";
+macro2utf8["congdot"] = "⩭";
+utf82macro["⩭"] = "congdot";
+macro2utf8["gE"] = "≧";
+utf82macro["≧"] = "gE";
+macro2utf8["rcedil"] = "ŗ";
+utf82macro["ŗ"] = "rcedil";
+macro2utf8["el"] = "⪙";
+utf82macro["⪙"] = "el";
+macro2utf8["HorizontalLine"] = "─";
+utf82macro["─"] = "HorizontalLine";
+macro2utf8["incare"] = "℅";
+utf82macro["℅"] = "incare";
+macro2utf8["hoarr"] = "⇿";
+utf82macro["⇿"] = "hoarr";
+macro2utf8["SOFTcy"] = "Ь";
+utf82macro["Ь"] = "SOFTcy";
+macro2utf8["conint"] = "∮";
+utf82macro["∮"] = "conint";
+macro2utf8["OverParenthesis"] = "︵";
+utf82macro["︵"] = "OverParenthesis";
+macro2utf8["Uogon"] = "Ų";
+utf82macro["Ų"] = "Uogon";
+macro2utf8["supne"] = "⊋";
+utf82macro["⊋"] = "supne";
+macro2utf8["num"] = "#";
+utf82macro["#"] = "num";
+macro2utf8["zcy"] = "з";
+utf82macro["з"] = "zcy";
+macro2utf8["Hfr"] = "ℌ";
+utf82macro["ℌ"] = "Hfr";
+macro2utf8["dtri"] = "▿";
+utf82macro["▿"] = "dtri";
+macro2utf8["FilledSmallSquare"] = "◾";
+utf82macro["◾"] = "FilledSmallSquare";
+macro2utf8["SucceedsEqual"] = "≽";
+utf82macro["≽"] = "SucceedsEqual";
+macro2utf8["leftthreetimes"] = "⋋";
+utf82macro["⋋"] = "leftthreetimes";
+macro2utf8["ycirc"] = "ŷ";
+utf82macro["ŷ"] = "ycirc";
+macro2utf8["sqcup"] = "⊔";
+utf82macro["⊔"] = "sqcup";
+macro2utf8["DoubleLeftArrow"] = "⇐";
+utf82macro["⇐"] = "DoubleLeftArrow";
+macro2utf8["gtrless"] = "≷";
+utf82macro["≷"] = "gtrless";
+macro2utf8["ge"] = "≥";
+utf82macro["≥"] = "ge";
+macro2utf8["Product"] = "∏";
+utf82macro["∏"] = "Product";
+macro2utf8["NotExists"] = "∄";
+utf82macro["∄"] = "NotExists";
+macro2utf8["gg"] = "≫";
+utf82macro["≫"] = "gg";
+macro2utf8["curlyvee"] = "⋎";
+utf82macro["⋎"] = "curlyvee";
+macro2utf8["ntrianglerighteq"] = "⋭";
+utf82macro["⋭"] = "ntrianglerighteq";
+macro2utf8["Colon"] = "∷";
+utf82macro["∷"] = "Colon";
+macro2utf8["rbrke"] = "⦌";
+utf82macro["⦌"] = "rbrke";
+macro2utf8["LeftDownVector"] = "⇃";
+utf82macro["⇃"] = "LeftDownVector";
+macro2utf8["gl"] = "≷";
+utf82macro["≷"] = "gl";
+macro2utf8["lrcorner"] = "⌟";
+utf82macro["⌟"] = "lrcorner";
+macro2utf8["mapstodown"] = "↧";
+utf82macro["↧"] = "mapstodown";
+macro2utf8["excl"] = "!";
+utf82macro["!"] = "excl";
+macro2utf8["cdots"] = "⋯";
+utf82macro["⋯"] = "cdots";
+macro2utf8["larr"] = "←";
+utf82macro["←"] = "larr";
+macro2utf8["dtdot"] = "⋱";
+utf82macro["⋱"] = "dtdot";
+macro2utf8["kgreen"] = "ĸ";
+utf82macro["ĸ"] = "kgreen";
+macro2utf8["rtri"] = "▹";
+utf82macro["▹"] = "rtri";
+macro2utf8["rbarr"] = "⤍";
+utf82macro["⤍"] = "rbarr";
+macro2utf8["ocy"] = "о";
+utf82macro["о"] = "ocy";
+macro2utf8["gt"] = ">";
+utf82macro[">"] = "gt";
+macro2utf8["DownLeftRightVector"] = "⥐";
+utf82macro["⥐"] = "DownLeftRightVector";
+macro2utf8["cup"] = "∪";
+utf82macro["∪"] = "cup";
+macro2utf8["updownarrow"] = "↕";
+utf82macro["↕"] = "updownarrow";
+macro2utf8["Imacr"] = "Ī";
+utf82macro["Ī"] = "Imacr";
+macro2utf8["cross"] = "✗";
+utf82macro["✗"] = "cross";
+macro2utf8["Acirc"] = "Â";
+utf82macro["Â"] = "Acirc";
+macro2utf8["lvertneqq"] = "≨︀";
+utf82macro["≨︀"] = "lvertneqq";
+macro2utf8["ccaps"] = "⩍";
+utf82macro["⩍"] = "ccaps";
+macro2utf8["NotLeftTriangleEqual"] = "⋬";
+utf82macro["⋬"] = "NotLeftTriangleEqual";
+macro2utf8["IJlig"] = "IJ";
+utf82macro["IJ"] = "IJlig";
+macro2utf8["boxplus"] = "⊞";
+utf82macro["⊞"] = "boxplus";
+macro2utf8["epsilon"] = "ϵ";
+utf82macro["ϵ"] = "epsilon";
+macro2utf8["zfr"] = "𝔷";
+utf82macro["𝔷"] = "zfr";
+macro2utf8["late"] = "⪭";
+utf82macro["⪭"] = "late";
+macro2utf8["ic"] = "​";
+utf82macro["​"] = "ic";
+macro2utf8["lrhar"] = "⇋";
+utf82macro["⇋"] = "lrhar";
+macro2utf8["gsim"] = "≳";
+utf82macro["≳"] = "gsim";
+macro2utf8["inf"] = "inf";
+utf82macro["inf"] = "inf";
+macro2utf8["top"] = "⊤";
+utf82macro["⊤"] = "top";
+macro2utf8["odsold"] = "⦼";
+utf82macro["⦼"] = "odsold";
+macro2utf8["circlearrowright"] = "↻";
+utf82macro["↻"] = "circlearrowright";
+macro2utf8["rtimes"] = "⋊";
+utf82macro["⋊"] = "rtimes";
+macro2utf8["ii"] = "ⅈ";
+utf82macro["ⅈ"] = "ii";
+macro2utf8["DoubleRightTee"] = "⊨";
+utf82macro["⊨"] = "DoubleRightTee";
+macro2utf8["dcy"] = "д";
+utf82macro["д"] = "dcy";
+macro2utf8["boxdL"] = "╕";
+utf82macro["╕"] = "boxdL";
+macro2utf8["duhar"] = "⥯";
+utf82macro["⥯"] = "duhar";
+macro2utf8["vert"] = "|";
+utf82macro["|"] = "vert";
+macro2utf8["sacute"] = "ś";
+utf82macro["ś"] = "sacute";
+macro2utf8["in"] = "∈";
+utf82macro["∈"] = "in";
+macro2utf8["Assign"] = "≔";
+utf82macro["≔"] = "Assign";
+macro2utf8["nsim"] = "≁";
+utf82macro["≁"] = "nsim";
+macro2utf8["boxdR"] = "╒";
+utf82macro["╒"] = "boxdR";
+macro2utf8["o"] = "ο";
+utf82macro["ο"] = "o";
+macro2utf8["radic"] = "√";
+utf82macro["√"] = "radic";
+macro2utf8["it"] = "⁢";
+utf82macro["⁢"] = "it";
+macro2utf8["int"] = "∫";
+utf82macro["∫"] = "int";
+macro2utf8["cwint"] = "∱";
+utf82macro["∱"] = "cwint";
+macro2utf8["ForAll"] = "∀";
+utf82macro["∀"] = "ForAll";
+macro2utf8["simplus"] = "⨤";
+utf82macro["⨤"] = "simplus";
+macro2utf8["isindot"] = "⋵";
+utf82macro["⋵"] = "isindot";
+macro2utf8["rightthreetimes"] = "⋌";
+utf82macro["⋌"] = "rightthreetimes";
+macro2utf8["supseteqq"] = "⊇";
+utf82macro["⊇"] = "supseteqq";
+macro2utf8["bnot"] = "⌐";
+utf82macro["⌐"] = "bnot";
+macro2utf8["rppolint"] = "⨒";
+utf82macro["⨒"] = "rppolint";
+macro2utf8["def"] = "≝";
+utf82macro["≝"] = "def";
+macro2utf8["TScy"] = "Ц";
+utf82macro["Ц"] = "TScy";
+macro2utf8["lE"] = "≦";
+utf82macro["≦"] = "lE";
+macro2utf8["ffilig"] = "ffi";
+utf82macro["ffi"] = "ffilig";
+macro2utf8["deg"] = "deg";
+utf82macro["deg"] = "deg";
+macro2utf8["{"] = "{";
+utf82macro["{"] = "{";
+macro2utf8["RightVector"] = "⇀";
+utf82macro["⇀"] = "RightVector";
+macro2utf8["ofr"] = "𝔬";
+utf82macro["𝔬"] = "ofr";
+macro2utf8["|"] = "|";
+utf82macro["|"] = "|";
+macro2utf8["liminf"] = "liminf";
+utf82macro["liminf"] = "liminf";
+macro2utf8["}"] = "}";
+utf82macro["}"] = "}";
+macro2utf8["LeftUpTeeVector"] = "⥠";
+utf82macro["⥠"] = "LeftUpTeeVector";
+macro2utf8["scirc"] = "ŝ";
+utf82macro["ŝ"] = "scirc";
+macro2utf8["scedil"] = "ş";
+utf82macro["ş"] = "scedil";
+macro2utf8["ufisht"] = "⥾";
+utf82macro["⥾"] = "ufisht";
+macro2utf8["LeftUpDownVector"] = "⥑";
+utf82macro["⥑"] = "LeftUpDownVector";
+macro2utf8["questeq"] = "≟";
+utf82macro["≟"] = "questeq";
+macro2utf8["leftarrow"] = "←";
+utf82macro["←"] = "leftarrow";
+macro2utf8["Ycy"] = "Ы";
+utf82macro["Ы"] = "Ycy";
+macro2utf8["Coproduct"] = "∐";
+utf82macro["∐"] = "Coproduct";
+macro2utf8["det"] = "det";
+utf82macro["det"] = "det";
+macro2utf8["boxdl"] = "┐";
+utf82macro["┐"] = "boxdl";
+macro2utf8["Aopf"] = "𝔸";
+utf82macro["𝔸"] = "Aopf";
+macro2utf8["srarr"] = "→︀";
+utf82macro["→︀"] = "srarr";
+macro2utf8["lbrke"] = "⦋";
+utf82macro["⦋"] = "lbrke";
+macro2utf8["boxdr"] = "┌";
+utf82macro["┌"] = "boxdr";
+macro2utf8["Ntilde"] = "Ñ";
+utf82macro["Ñ"] = "Ntilde";
+macro2utf8["gnap"] = "⪊";
+utf82macro["⪊"] = "gnap";
+macro2utf8["Cap"] = "⋒";
+utf82macro["⋒"] = "Cap";
+macro2utf8["swarhk"] = "⤦";
+utf82macro["⤦"] = "swarhk";
+macro2utf8["ogt"] = "⧁";
+utf82macro["⧁"] = "ogt";
+macro2utf8["emptyset"] = "∅︀";
+utf82macro["∅︀"] = "emptyset";
+macro2utf8["harrw"] = "↭";
+utf82macro["↭"] = "harrw";
+macro2utf8["lbarr"] = "⤌";
+utf82macro["⤌"] = "lbarr";
+macro2utf8["Tilde"] = "∼";
+utf82macro["∼"] = "Tilde";
+macro2utf8["delta"] = "δ";
+utf82macro["δ"] = "delta";
+macro2utf8["Hopf"] = "ℍ";
+utf82macro["ℍ"] = "Hopf";
+macro2utf8["dfr"] = "𝔡";
+utf82macro["𝔡"] = "dfr";
+macro2utf8["le"] = "≤";
+utf82macro["≤"] = "le";
+macro2utf8["lg"] = "lg";
+utf82macro["lg"] = "lg";
+macro2utf8["ohm"] = "Ω";
+utf82macro["Ω"] = "ohm";
+macro2utf8["Jsercy"] = "Ј";
+utf82macro["Ј"] = "Jsercy";
+macro2utf8["quaternions"] = "ℍ";
+utf82macro["ℍ"] = "quaternions";
+macro2utf8["DoubleLongLeftArrow"] = "";
+utf82macro[""] = "DoubleLongLeftArrow";
+macro2utf8["Ncy"] = "Н";
+utf82macro["Н"] = "Ncy";
+macro2utf8["nabla"] = "∇";
+utf82macro["∇"] = "nabla";
+macro2utf8["ltcir"] = "⩹";
+utf82macro["⩹"] = "ltcir";
+macro2utf8["ll"] = "≪";
+utf82macro["≪"] = "ll";
+macro2utf8["ln"] = "ln";
+utf82macro["ln"] = "ln";
+macro2utf8["rmoust"] = "⎱";
+utf82macro["⎱"] = "rmoust";
+macro2utf8["Oopf"] = "𝕆";
+utf82macro["𝕆"] = "Oopf";
+macro2utf8["nbsp"] = " ";
+utf82macro[" "] = "nbsp";
+macro2utf8["Kcedil"] = "Ķ";
+utf82macro["Ķ"] = "Kcedil";
+macro2utf8["vdots"] = "⋮";
+utf82macro["⋮"] = "vdots";
+macro2utf8["NotLessTilde"] = "≴";
+utf82macro["≴"] = "NotLessTilde";
+macro2utf8["lt"] = "<";
+utf82macro["<"] = "lt";
+macro2utf8["djcy"] = "ђ";
+utf82macro["ђ"] = "djcy";
+macro2utf8["DownRightTeeVector"] = "⥟";
+utf82macro["⥟"] = "DownRightTeeVector";
+macro2utf8["Ograve"] = "Ò";
+utf82macro["Ò"] = "Ograve";
+macro2utf8["boxhD"] = "╥";
+utf82macro["╥"] = "boxhD";
+macro2utf8["nsime"] = "≄";
+utf82macro["≄"] = "nsime";
+macro2utf8["egsdot"] = "⪘";
+utf82macro["⪘"] = "egsdot";
+macro2utf8["mDDot"] = "∺";
+utf82macro["∺"] = "mDDot";
+macro2utf8["bigodot"] = "⊙";
+utf82macro["⊙"] = "bigodot";
+macro2utf8["Vopf"] = "𝕍";
+utf82macro["𝕍"] = "Vopf";
+macro2utf8["looparrowright"] = "↬";
+utf82macro["↬"] = "looparrowright";
+macro2utf8["yucy"] = "ю";
+utf82macro["ю"] = "yucy";
+macro2utf8["trade"] = "™";
+utf82macro["™"] = "trade";
+macro2utf8["Yfr"] = "𝔜";
+utf82macro["𝔜"] = "Yfr";
+macro2utf8["kjcy"] = "ќ";
+utf82macro["ќ"] = "kjcy";
+macro2utf8["mp"] = "∓";
+utf82macro["∓"] = "mp";
+macro2utf8["leftrightarrows"] = "⇆";
+utf82macro["⇆"] = "leftrightarrows";
+macro2utf8["uharl"] = "↿";
+utf82macro["↿"] = "uharl";
+macro2utf8["ncap"] = "⩃";
+utf82macro["⩃"] = "ncap";
+macro2utf8["Iogon"] = "Į";
+utf82macro["Į"] = "Iogon";
+macro2utf8["NotSubset"] = "⊄";
+utf82macro["⊄"] = "NotSubset";
+macro2utf8["Bumpeq"] = "≎";
+utf82macro["≎"] = "Bumpeq";
+macro2utf8["mu"] = "μ";
+utf82macro["μ"] = "mu";
+macro2utf8["FilledVerySmallSquare"] = "";
+utf82macro[""] = "FilledVerySmallSquare";
+macro2utf8["breve"] = "˘";
+utf82macro["˘"] = "breve";
+macro2utf8["boxhU"] = "╨";
+utf82macro["╨"] = "boxhU";
+macro2utf8["Sigma"] = "Σ";
+utf82macro["Σ"] = "Sigma";
+macro2utf8["uharr"] = "↾";
+utf82macro["↾"] = "uharr";
+macro2utf8["xrArr"] = "";
+utf82macro[""] = "xrArr";
+macro2utf8["ne"] = "≠";
+utf82macro["≠"] = "ne";
+macro2utf8["oS"] = "Ⓢ";
+utf82macro["Ⓢ"] = "oS";
+macro2utf8["xodot"] = "⊙";
+utf82macro["⊙"] = "xodot";
+macro2utf8["ni"] = "∋";
+utf82macro["∋"] = "ni";
+macro2utf8["mdash"] = "—";
+utf82macro["—"] = "mdash";
+macro2utf8["Verbar"] = "‖";
+utf82macro["‖"] = "Verbar";
+macro2utf8["die"] = "¨";
+utf82macro["¨"] = "die";
+macro2utf8["veebar"] = "⊻";
+utf82macro["⊻"] = "veebar";
+macro2utf8["UpArrowBar"] = "⤒";
+utf82macro["⤒"] = "UpArrowBar";
+macro2utf8["Ncaron"] = "Ň";
+utf82macro["Ň"] = "Ncaron";
+macro2utf8["RightArrowBar"] = "⇥";
+utf82macro["⇥"] = "RightArrowBar";
+macro2utf8["LongLeftArrow"] = "";
+utf82macro[""] = "LongLeftArrow";
+macro2utf8["rceil"] = "⌉";
+utf82macro["⌉"] = "rceil";
+macro2utf8["LeftDownVectorBar"] = "⥙";
+utf82macro["⥙"] = "LeftDownVectorBar";
+macro2utf8["umacr"] = "ū";
+utf82macro["ū"] = "umacr";
+macro2utf8["Hacek"] = "ˇ";
+utf82macro["ˇ"] = "Hacek";
+macro2utf8["odblac"] = "ő";
+utf82macro["ő"] = "odblac";
+macro2utf8["lmidot"] = "ŀ";
+utf82macro["ŀ"] = "lmidot";
+macro2utf8["dopf"] = "𝕕";
+utf82macro["𝕕"] = "dopf";
+macro2utf8["boxhd"] = "┬";
+utf82macro["┬"] = "boxhd";
+macro2utf8["dim"] = "dim";
+utf82macro["dim"] = "dim";
+macro2utf8["vnsub"] = "⊄";
+utf82macro["⊄"] = "vnsub";
+macro2utf8["Bscr"] = "ℬ";
+utf82macro["ℬ"] = "Bscr";
+macro2utf8["plussim"] = "⨦";
+utf82macro["⨦"] = "plussim";
+macro2utf8["doublebarwedge"] = "⌆";
+utf82macro["⌆"] = "doublebarwedge";
+macro2utf8["nu"] = "ν";
+utf82macro["ν"] = "nu";
+macro2utf8["eqcolon"] = "≕";
+utf82macro["≕"] = "eqcolon";
+macro2utf8["luruhar"] = "⥦";
+utf82macro["⥦"] = "luruhar";
+macro2utf8["Nfr"] = "𝔑";
+utf82macro["𝔑"] = "Nfr";
+macro2utf8["preceq"] = "⪯";
+utf82macro["⪯"] = "preceq";
+macro2utf8["LeftTee"] = "⊣";
+utf82macro["⊣"] = "LeftTee";
+macro2utf8["div"] = "÷";
+utf82macro["÷"] = "div";
+macro2utf8["nVDash"] = "⊯";
+utf82macro["⊯"] = "nVDash";
+macro2utf8["kopf"] = "𝕜";
+utf82macro["𝕜"] = "kopf";
+macro2utf8["Iscr"] = "ℐ";
+utf82macro["ℐ"] = "Iscr";
+macro2utf8["vnsup"] = "⊅";
+utf82macro["⊅"] = "vnsup";
+macro2utf8["gneq"] = "≩";
+utf82macro["≩"] = "gneq";
+macro2utf8["backepsilon"] = "϶";
+utf82macro["϶"] = "backepsilon";
+macro2utf8["boxhu"] = "┴";
+utf82macro["┴"] = "boxhu";
+macro2utf8["ominus"] = "⊖";
+utf82macro["⊖"] = "ominus";
+macro2utf8["or"] = "∨";
+utf82macro["∨"] = "or";
+macro2utf8["lesdot"] = "⩿";
+utf82macro["⩿"] = "lesdot";
+macro2utf8["RightVectorBar"] = "⥓";
+utf82macro["⥓"] = "RightVectorBar";
+macro2utf8["tcedil"] = "ţ";
+utf82macro["ţ"] = "tcedil";
+macro2utf8["hstrok"] = "ħ";
+utf82macro["ħ"] = "hstrok";
+macro2utf8["nrarrc"] = "⤳̸";
+utf82macro["⤳̸"] = "nrarrc";
+macro2utf8["ropf"] = "𝕣";
+utf82macro["𝕣"] = "ropf";
+macro2utf8["diamond"] = "⋄";
+utf82macro["⋄"] = "diamond";
+macro2utf8["smid"] = "∣︀";
+utf82macro["∣︀"] = "smid";
+macro2utf8["nltri"] = "⋪";
+utf82macro["⋪"] = "nltri";
+macro2utf8["Pscr"] = "𝒫";
+utf82macro["𝒫"] = "Pscr";
+macro2utf8["vartheta"] = "ϑ";
+utf82macro["ϑ"] = "vartheta";
+macro2utf8["therefore"] = "∴";
+utf82macro["∴"] = "therefore";
+macro2utf8["pi"] = "π";
+utf82macro["π"] = "pi";
+macro2utf8["ntrianglelefteq"] = "⋬";
+utf82macro["⋬"] = "ntrianglelefteq";
+macro2utf8["nearrow"] = "↗";
+utf82macro["↗"] = "nearrow";
+macro2utf8["pm"] = "±";
+utf82macro["±"] = "pm";
+macro2utf8["natural"] = "♮";
+utf82macro["♮"] = "natural";
+macro2utf8["ucy"] = "у";
+utf82macro["у"] = "ucy";
+macro2utf8["olt"] = "⧀";
+utf82macro["⧀"] = "olt";
+macro2utf8["Cfr"] = "ℭ";
+utf82macro["ℭ"] = "Cfr";
+macro2utf8["yopf"] = "𝕪";
+utf82macro["𝕪"] = "yopf";
+macro2utf8["Otilde"] = "Õ";
+utf82macro["Õ"] = "Otilde";
+macro2utf8["ntriangleleft"] = "⋪";
+utf82macro["⋪"] = "ntriangleleft";
+macro2utf8["pr"] = "≺";
+utf82macro["≺"] = "pr";
+macro2utf8["Wscr"] = "𝒲";
+utf82macro["𝒲"] = "Wscr";
+macro2utf8["midcir"] = "⫰";
+utf82macro["⫰"] = "midcir";
+macro2utf8["Lacute"] = "Ĺ";
+utf82macro["Ĺ"] = "Lacute";
+macro2utf8["DoubleDot"] = "¨";
+utf82macro["¨"] = "DoubleDot";
+macro2utf8["Tstrok"] = "Ŧ";
+utf82macro["Ŧ"] = "Tstrok";
+macro2utf8["nrarrw"] = "↝̸";
+utf82macro["↝̸"] = "nrarrw";
+macro2utf8["uArr"] = "⇑";
+utf82macro["⇑"] = "uArr";
+macro2utf8["nLtv"] = "≪̸︀";
+utf82macro["≪̸︀"] = "nLtv";
+macro2utf8["rangle"] = "〉";
+utf82macro["〉"] = "rangle";
+macro2utf8["olcir"] = "⦾";
+utf82macro["⦾"] = "olcir";
+macro2utf8["Auml"] = "Ä";
+utf82macro["Ä"] = "Auml";
+macro2utf8["Succeeds"] = "≻";
+utf82macro["≻"] = "Succeeds";
+macro2utf8["DoubleLongLeftRightArrow"] = "";
+utf82macro[""] = "DoubleLongLeftRightArrow";
+macro2utf8["TSHcy"] = "Ћ";
+utf82macro["Ћ"] = "TSHcy";
+macro2utf8["gammad"] = "Ϝ";
+utf82macro["Ϝ"] = "gammad";
+macro2utf8["epsiv"] = "ɛ";
+utf82macro["ɛ"] = "epsiv";
+macro2utf8["notinva"] = "∉̸";
+utf82macro["∉̸"] = "notinva";
+macro2utf8["notinvb"] = "⋷";
+utf82macro["⋷"] = "notinvb";
+macro2utf8["eqvparsl"] = "⧥";
+utf82macro["⧥"] = "eqvparsl";
+macro2utf8["notinvc"] = "⋶";
+utf82macro["⋶"] = "notinvc";
+macro2utf8["nsubE"] = "⊈";
+utf82macro["⊈"] = "nsubE";
+macro2utf8["supplus"] = "⫀";
+utf82macro["⫀"] = "supplus";
+macro2utf8["RightUpDownVector"] = "⥏";
+utf82macro["⥏"] = "RightUpDownVector";
+macro2utf8["Tab"] = "\t";
+utf82macro["\t"] = "Tab";
+macro2utf8["Lcedil"] = "Ļ";
+utf82macro["Ļ"] = "Lcedil";
+macro2utf8["backslash"] = "\\";
+utf82macro["\\"] = "backslash";
+macro2utf8["pointint"] = "⨕";
+utf82macro["⨕"] = "pointint";
+macro2utf8["jcy"] = "й";
+utf82macro["й"] = "jcy";
+macro2utf8["iocy"] = "ё";
+utf82macro["ё"] = "iocy";
+macro2utf8["escr"] = "ℯ";
+utf82macro["ℯ"] = "escr";
+macro2utf8["submult"] = "⫁";
+utf82macro["⫁"] = "submult";
+macro2utf8["iiota"] = "℩";
+utf82macro["℩"] = "iiota";
+macro2utf8["lceil"] = "⌈";
+utf82macro["⌈"] = "lceil";
+macro2utf8["omacr"] = "ō";
+utf82macro["ō"] = "omacr";
+macro2utf8["gneqq"] = "≩";
+utf82macro["≩"] = "gneqq";
+macro2utf8["gcirc"] = "ĝ";
+utf82macro["ĝ"] = "gcirc";
+macro2utf8["dotsquare"] = "⊡";
+utf82macro["⊡"] = "dotsquare";
+macro2utf8["ccaron"] = "č";
+utf82macro["č"] = "ccaron";
+macro2utf8["Square"] = "□";
+utf82macro["□"] = "Square";
+macro2utf8["RightDownTeeVector"] = "⥝";
+utf82macro["⥝"] = "RightDownTeeVector";
+macro2utf8["Ouml"] = "Ö";
+utf82macro["Ö"] = "Ouml";
+macro2utf8["lurdshar"] = "⥊";
+utf82macro["⥊"] = "lurdshar";
+macro2utf8["SuchThat"] = "∋";
+utf82macro["∋"] = "SuchThat";
+macro2utf8["setminus"] = "∖";
+utf82macro["∖"] = "setminus";
+macro2utf8["lscr"] = "ℓ";
+utf82macro["ℓ"] = "lscr";
+macro2utf8["LessLess"] = "⪡";
+utf82macro["⪡"] = "LessLess";
+macro2utf8["Sub"] = "⋐";
+utf82macro["⋐"] = "Sub";
+macro2utf8["sc"] = "≻";
+utf82macro["≻"] = "sc";
+macro2utf8["rx"] = "℞";
+utf82macro["℞"] = "rx";
+macro2utf8["RightFloor"] = "⌋";
+utf82macro["⌋"] = "RightFloor";
+macro2utf8["blacksquare"] = "▪";
+utf82macro["▪"] = "blacksquare";
+macro2utf8["ufr"] = "𝔲";
+utf82macro["𝔲"] = "ufr";
+macro2utf8["block"] = "█";
+utf82macro["█"] = "block";
+macro2utf8["dots"] = "…";
+utf82macro["…"] = "dots";
+macro2utf8["nvsim"] = "≁̸";
+utf82macro["≁̸"] = "nvsim";
+macro2utf8["caret"] = "⁁";
+utf82macro["⁁"] = "caret";
+macro2utf8["demptyv"] = "⦱";
+utf82macro["⦱"] = "demptyv";
+macro2utf8["Sum"] = "∑";
+utf82macro["∑"] = "Sum";
+macro2utf8["sscr"] = "𝓈";
+utf82macro["𝓈"] = "sscr";
+macro2utf8["nsube"] = "⊈";
+utf82macro["⊈"] = "nsube";
+macro2utf8["Sup"] = "⋑";
+utf82macro["⋑"] = "Sup";
+macro2utf8["ccupssm"] = "⩐";
+utf82macro["⩐"] = "ccupssm";
+macro2utf8["Because"] = "∵";
+utf82macro["∵"] = "Because";
+macro2utf8["harrcir"] = "⥈";
+utf82macro["⥈"] = "harrcir";
+macro2utf8["capbrcup"] = "⩉";
+utf82macro["⩉"] = "capbrcup";
+macro2utf8["RightUpVectorBar"] = "⥔";
+utf82macro["⥔"] = "RightUpVectorBar";
+macro2utf8["caps"] = "∩︀";
+utf82macro["∩︀"] = "caps";
+macro2utf8["ohbar"] = "⦵";
+utf82macro["⦵"] = "ohbar";
+macro2utf8["laemptyv"] = "⦴";
+utf82macro["⦴"] = "laemptyv";
+macro2utf8["uacute"] = "ú";
+utf82macro["ú"] = "uacute";
+macro2utf8["straightphi"] = "φ";
+utf82macro["φ"] = "straightphi";
+macro2utf8["RightDoubleBracket"] = "〛";
+utf82macro["〛"] = "RightDoubleBracket";
+macro2utf8["zscr"] = "𝓏";
+utf82macro["𝓏"] = "zscr";
+macro2utf8["uogon"] = "ų";
+utf82macro["ų"] = "uogon";
+macro2utf8["Uarr"] = "↟";
+utf82macro["↟"] = "Uarr";
+macro2utf8["nsucc"] = "⊁";
+utf82macro["⊁"] = "nsucc";
+macro2utf8["RBarr"] = "⤐";
+utf82macro["⤐"] = "RBarr";
+macro2utf8["NotRightTriangleBar"] = "⧐̸";
+utf82macro["⧐̸"] = "NotRightTriangleBar";
+macro2utf8["to"] = "→";
+utf82macro["→"] = "to";
+macro2utf8["rpar"] = ")";
+utf82macro[")"] = "rpar";
+macro2utf8["rdsh"] = "↳";
+utf82macro["↳"] = "rdsh";
+macro2utf8["jfr"] = "𝔧";
+utf82macro["𝔧"] = "jfr";
+macro2utf8["ldquor"] = "„";
+utf82macro["„"] = "ldquor";
+macro2utf8["bsime"] = "⋍";
+utf82macro["⋍"] = "bsime";
+macro2utf8["lAtail"] = "⤛";
+utf82macro["⤛"] = "lAtail";
+macro2utf8["Hcirc"] = "Ĥ";
+utf82macro["Ĥ"] = "Hcirc";
+macro2utf8["aacute"] = "á";
+utf82macro["á"] = "aacute";
+macro2utf8["dot"] = "˙";
+utf82macro["˙"] = "dot";
+macro2utf8["Tcy"] = "Т";
+utf82macro["Т"] = "Tcy";
+macro2utf8["nsub"] = "⊄";
+utf82macro["⊄"] = "nsub";
+macro2utf8["kappa"] = "κ";
+utf82macro["κ"] = "kappa";
+macro2utf8["ovbar"] = "⌽";
+utf82macro["⌽"] = "ovbar";
+macro2utf8["shcy"] = "ш";
+utf82macro["ш"] = "shcy";
+macro2utf8["kappav"] = "ϰ";
+utf82macro["ϰ"] = "kappav";
+macro2utf8["ropar"] = "〙";
+utf82macro["〙"] = "ropar";
+macro2utf8["gtcc"] = "⪧";
+utf82macro["⪧"] = "gtcc";
+macro2utf8["ecolon"] = "≕";
+utf82macro["≕"] = "ecolon";
+macro2utf8["circledast"] = "⊛";
+utf82macro["⊛"] = "circledast";
+macro2utf8["colon"] = ":";
+utf82macro[":"] = "colon";
+macro2utf8["timesbar"] = "⨱";
+utf82macro["⨱"] = "timesbar";
+macro2utf8["precnsim"] = "⋨";
+utf82macro["⋨"] = "precnsim";
+macro2utf8["ord"] = "⩝";
+utf82macro["⩝"] = "ord";
+macro2utf8["real"] = "ℜ";
+utf82macro["ℜ"] = "real";
+macro2utf8["nexists"] = "∄";
+utf82macro["∄"] = "nexists";
+macro2utf8["nsup"] = "⊅";
+utf82macro["⊅"] = "nsup";
+macro2utf8["zhcy"] = "ж";
+utf82macro["ж"] = "zhcy";
+macro2utf8["imacr"] = "ī";
+utf82macro["ī"] = "imacr";
+macro2utf8["egrave"] = "è";
+utf82macro["è"] = "egrave";
+macro2utf8["acirc"] = "â";
+utf82macro["â"] = "acirc";
+macro2utf8["grave"] = "`";
+utf82macro["`"] = "grave";
+macro2utf8["biguplus"] = "⊎";
+utf82macro["⊎"] = "biguplus";
+macro2utf8["HumpEqual"] = "≏";
+utf82macro["≏"] = "HumpEqual";
+macro2utf8["GreaterSlantEqual"] = "⩾";
+utf82macro["⩾"] = "GreaterSlantEqual";
+macro2utf8["capand"] = "⩄";
+utf82macro["⩄"] = "capand";
+macro2utf8["yuml"] = "ÿ";
+utf82macro["ÿ"] = "yuml";
+macro2utf8["orv"] = "⩛";
+utf82macro["⩛"] = "orv";
+macro2utf8["Icy"] = "И";
+utf82macro["И"] = "Icy";
+macro2utf8["rightharpoondown"] = "⇁";
+utf82macro["⇁"] = "rightharpoondown";
+macro2utf8["upsilon"] = "υ";
+utf82macro["υ"] = "upsilon";
+macro2utf8["preccurlyeq"] = "≼";
+utf82macro["≼"] = "preccurlyeq";
+macro2utf8["ShortUpArrow"] = "⌃︀";
+utf82macro["⌃︀"] = "ShortUpArrow";
+macro2utf8["searhk"] = "⤥";
+utf82macro["⤥"] = "searhk";
+macro2utf8["commat"] = "@";
+utf82macro["@"] = "commat";
+macro2utf8["Sqrt"] = "√";
+utf82macro["√"] = "Sqrt";
+macro2utf8["wp"] = "℘";
+utf82macro["℘"] = "wp";
+macro2utf8["succnapprox"] = "⋩";
+utf82macro["⋩"] = "succnapprox";
+macro2utf8["wr"] = "≀";
+utf82macro["≀"] = "wr";
+macro2utf8["NotTildeTilde"] = "≉";
+utf82macro["≉"] = "NotTildeTilde";
+macro2utf8["dcaron"] = "ď";
+utf82macro["ď"] = "dcaron";
+macro2utf8["Tfr"] = "𝔗";
+utf82macro["𝔗"] = "Tfr";
+macro2utf8["bigwedge"] = "⋀";
+utf82macro["⋀"] = "bigwedge";
+macro2utf8["DScy"] = "Ѕ";
+utf82macro["Ѕ"] = "DScy";
+macro2utf8["nrtrie"] = "⋭";
+utf82macro["⋭"] = "nrtrie";
+macro2utf8["esim"] = "≂";
+utf82macro["≂"] = "esim";
+macro2utf8["Not"] = "⫬";
+utf82macro["⫬"] = "Not";
+macro2utf8["xmap"] = "";
+utf82macro[""] = "xmap";
+macro2utf8["rect"] = "▭";
+utf82macro["▭"] = "rect";
+macro2utf8["Fouriertrf"] = "ℱ";
+utf82macro["ℱ"] = "Fouriertrf";
+macro2utf8["xi"] = "ξ";
+utf82macro["ξ"] = "xi";
+macro2utf8["NotTilde"] = "≁";
+utf82macro["≁"] = "NotTilde";
+macro2utf8["gbreve"] = "ğ";
+utf82macro["ğ"] = "gbreve";
+macro2utf8["par"] = "∥";
+utf82macro["∥"] = "par";
+macro2utf8["ddots"] = "⋱";
+utf82macro["⋱"] = "ddots";
+macro2utf8["nhArr"] = "⇎";
+utf82macro["⇎"] = "nhArr";
+macro2utf8["lsim"] = "≲";
+utf82macro["≲"] = "lsim";
+macro2utf8["RightCeiling"] = "⌉";
+utf82macro["⌉"] = "RightCeiling";
+macro2utf8["nedot"] = "≠︀";
+utf82macro["≠︀"] = "nedot";
+macro2utf8["thksim"] = "∼︀";
+utf82macro["∼︀"] = "thksim";
+macro2utf8["lEg"] = "⋚";
+utf82macro["⋚"] = "lEg";
+macro2utf8["Ifr"] = "ℑ";
+utf82macro["ℑ"] = "Ifr";
+macro2utf8["emsp"] = " ";
+utf82macro[" "] = "emsp";
+macro2utf8["lopar"] = "〘";
+utf82macro["〘"] = "lopar";
+macro2utf8["iiiint"] = "⨌";
+utf82macro["⨌"] = "iiiint";
+macro2utf8["straightepsilon"] = "ε";
+utf82macro["ε"] = "straightepsilon";
+macro2utf8["intlarhk"] = "⨗";
+utf82macro["⨗"] = "intlarhk";
+macro2utf8["image"] = "ℑ";
+utf82macro["ℑ"] = "image";
+macro2utf8["sqsubseteq"] = "⊑";
+utf82macro["⊑"] = "sqsubseteq";
+macro2utf8["lnapprox"] = "⪉";
+utf82macro["⪉"] = "lnapprox";
+macro2utf8["Leftrightarrow"] = "⇔";
+utf82macro["⇔"] = "Leftrightarrow";
+macro2utf8["cemptyv"] = "⦲";
+utf82macro["⦲"] = "cemptyv";
+macro2utf8["alpha"] = "α";
+utf82macro["α"] = "alpha";
+macro2utf8["uml"] = "¨";
+utf82macro["¨"] = "uml";
+macro2utf8["barwedge"] = "⊼";
+utf82macro["⊼"] = "barwedge";
+macro2utf8["KHcy"] = "Х";
+utf82macro["Х"] = "KHcy";
+macro2utf8["tilde"] = "˜";
+utf82macro["˜"] = "tilde";
+macro2utf8["Superset"] = "⊃";
+utf82macro["⊃"] = "Superset";
+macro2utf8["gesles"] = "⪔";
+utf82macro["⪔"] = "gesles";
+macro2utf8["bigoplus"] = "⊕";
+utf82macro["⊕"] = "bigoplus";
+macro2utf8["boxuL"] = "╛";
+utf82macro["╛"] = "boxuL";
+macro2utf8["rbbrk"] = "〕";
+utf82macro["〕"] = "rbbrk";
+macro2utf8["nrightarrow"] = "↛";
+utf82macro["↛"] = "nrightarrow";
+macro2utf8["hkswarow"] = "⤦";
+utf82macro["⤦"] = "hkswarow";
+macro2utf8["DiacriticalDoubleAcute"] = "˝";
+utf82macro["˝"] = "DiacriticalDoubleAcute";
+macro2utf8["nbumpe"] = "≏̸";
+utf82macro["≏̸"] = "nbumpe";
+macro2utf8["uhblk"] = "▀";
+utf82macro["▀"] = "uhblk";
+macro2utf8["NotSupersetEqual"] = "⊉";
+utf82macro["⊉"] = "NotSupersetEqual";
+macro2utf8["ntgl"] = "≹";
+utf82macro["≹"] = "ntgl";
+macro2utf8["Fopf"] = "𝔽";
+utf82macro["𝔽"] = "Fopf";
+macro2utf8["boxuR"] = "╘";
+utf82macro["╘"] = "boxuR";
+macro2utf8["swarr"] = "↙";
+utf82macro["↙"] = "swarr";
+macro2utf8["nsqsube"] = "⋢";
+utf82macro["⋢"] = "nsqsube";
+macro2utf8["pluscir"] = "⨢";
+utf82macro["⨢"] = "pluscir";
+macro2utf8["pcy"] = "п";
+utf82macro["п"] = "pcy";
+macro2utf8["leqslant"] = "⩽";
+utf82macro["⩽"] = "leqslant";
+macro2utf8["lnap"] = "⪉";
+utf82macro["⪉"] = "lnap";
+macro2utf8["lthree"] = "⋋";
+utf82macro["⋋"] = "lthree";
+macro2utf8["smte"] = "⪬";
+utf82macro["⪬"] = "smte";
+macro2utf8["olcross"] = "⦻";
+utf82macro["⦻"] = "olcross";
+macro2utf8["nvrArr"] = "⇏";
+utf82macro["⇏"] = "nvrArr";
+macro2utf8["andslope"] = "⩘";
+utf82macro["⩘"] = "andslope";
+macro2utf8["MediumSpace"] = " ";
+utf82macro[" "] = "MediumSpace";
+macro2utf8["boxvH"] = "╪";
+utf82macro["╪"] = "boxvH";
+macro2utf8["Nacute"] = "Ń";
+utf82macro["Ń"] = "Nacute";
+macro2utf8["nGtv"] = "≫̸︀";
+utf82macro["≫̸︀"] = "nGtv";
+macro2utf8["Mopf"] = "𝕄";
+utf82macro["𝕄"] = "Mopf";
+macro2utf8["dfisht"] = "⥿";
+utf82macro["⥿"] = "dfisht";
+macro2utf8["boxvL"] = "╡";
+utf82macro["╡"] = "boxvL";
+macro2utf8["pertenk"] = "‱";
+utf82macro["‱"] = "pertenk";
+macro2utf8["NotPrecedes"] = "⊀";
+utf82macro["⊀"] = "NotPrecedes";
+macro2utf8["profalar"] = "⌮";
+utf82macro["⌮"] = "profalar";
+macro2utf8["roplus"] = "⨮";
+utf82macro["⨮"] = "roplus";
+macro2utf8["boxvR"] = "╞";
+utf82macro["╞"] = "boxvR";
+macro2utf8["utrif"] = "▴";
+utf82macro["▴"] = "utrif";
+macro2utf8["uHar"] = "⥣";
+utf82macro["⥣"] = "uHar";
+macro2utf8["nltrie"] = "⋬";
+utf82macro["⋬"] = "nltrie";
+macro2utf8["NotNestedGreaterGreater"] = "⒢̸";
+utf82macro["⒢̸"] = "NotNestedGreaterGreater";
+macro2utf8["smtes"] = "⪬︀";
+utf82macro["⪬︀"] = "smtes";
+macro2utf8["LeftAngleBracket"] = "〈";
+utf82macro["〈"] = "LeftAngleBracket";
+macro2utf8["iogon"] = "į";
+utf82macro["į"] = "iogon";
+macro2utf8["ExponentialE"] = "ⅇ";
+utf82macro["ⅇ"] = "ExponentialE";
+macro2utf8["Topf"] = "𝕋";
+utf82macro["𝕋"] = "Topf";
+macro2utf8["GreaterEqual"] = "≥";
+utf82macro["≥"] = "GreaterEqual";
+macro2utf8["DownTee"] = "⊤";
+utf82macro["⊤"] = "DownTee";
+macro2utf8["boxul"] = "┘";
+utf82macro["┘"] = "boxul";
+macro2utf8["wreath"] = "≀";
+utf82macro["≀"] = "wreath";
+macro2utf8["sigma"] = "σ";
+utf82macro["σ"] = "sigma";
+macro2utf8["ENG"] = "Ŋ";
+utf82macro["Ŋ"] = "ENG";
+macro2utf8["Ncedil"] = "Ņ";
+utf82macro["Ņ"] = "Ncedil";
+macro2utf8["ecy"] = "э";
+utf82macro["э"] = "ecy";
+macro2utf8["nsubset"] = "⊄";
+utf82macro["⊄"] = "nsubset";
+macro2utf8["LessFullEqual"] = "≦";
+utf82macro["≦"] = "LessFullEqual";
+macro2utf8["bsolb"] = "⧅";
+utf82macro["⧅"] = "bsolb";
+macro2utf8["boxur"] = "└";
+utf82macro["└"] = "boxur";
+macro2utf8["ThinSpace"] = " ";
+utf82macro[" "] = "ThinSpace";
+macro2utf8["supdsub"] = "⫘";
+utf82macro["⫘"] = "supdsub";
+macro2utf8["colone"] = "≔";
+utf82macro["≔"] = "colone";
+macro2utf8["curren"] = "¤";
+utf82macro["¤"] = "curren";
+macro2utf8["boxvh"] = "┼";
+utf82macro["┼"] = "boxvh";
+macro2utf8["ecaron"] = "ě";
+utf82macro["ě"] = "ecaron";
+macro2utf8["UnderBrace"] = "︸";
+utf82macro["︸"] = "UnderBrace";
+macro2utf8["caron"] = "ˇ";
+utf82macro["ˇ"] = "caron";
+macro2utf8["ultri"] = "◸";
+utf82macro["◸"] = "ultri";
+macro2utf8["boxvl"] = "┤";
+utf82macro["┤"] = "boxvl";
+macro2utf8["scap"] = "≿";
+utf82macro["≿"] = "scap";
+macro2utf8["boxvr"] = "├";
+utf82macro["├"] = "boxvr";
+macro2utf8["bopf"] = "𝕓";
+utf82macro["𝕓"] = "bopf";
+macro2utf8["pfr"] = "𝔭";
+utf82macro["𝔭"] = "pfr";
+macro2utf8["nspar"] = "∦︀";
+utf82macro["∦︀"] = "nspar";
+macro2utf8["NegativeMediumSpace"] = " ︀";
+utf82macro[" ︀"] = "NegativeMediumSpace";
+macro2utf8["simgE"] = "⪠";
+utf82macro["⪠"] = "simgE";
+macro2utf8["nvDash"] = "⊭";
+utf82macro["⊭"] = "nvDash";
+macro2utf8["NotGreaterFullEqual"] = "≰";
+utf82macro["≰"] = "NotGreaterFullEqual";
+macro2utf8["uparrow"] = "↑";
+utf82macro["↑"] = "uparrow";
+macro2utf8["nsupset"] = "⊅";
+utf82macro["⊅"] = "nsupset";
+macro2utf8["simeq"] = "≃";
+utf82macro["≃"] = "simeq";
+macro2utf8["Zcy"] = "З";
+utf82macro["З"] = "Zcy";
+macro2utf8["RightTriangle"] = "⊳";
+utf82macro["⊳"] = "RightTriangle";
+macro2utf8["Lang"] = "《";
+utf82macro["《"] = "Lang";
+macro2utf8["Ucirc"] = "Û";
+utf82macro["Û"] = "Ucirc";
+macro2utf8["iopf"] = "𝕚";
+utf82macro["𝕚"] = "iopf";
+macro2utf8["leftrightsquigarrow"] = "↭";
+utf82macro["↭"] = "leftrightsquigarrow";
+macro2utf8["Gscr"] = "𝒢";
+utf82macro["𝒢"] = "Gscr";
+macro2utf8["lfloor"] = "⌊";
+utf82macro["⌊"] = "lfloor";
+macro2utf8["lbbrk"] = "〔";
+utf82macro["〔"] = "lbbrk";
+macro2utf8["bigvee"] = "⋁";
+utf82macro["⋁"] = "bigvee";
+macro2utf8["ordf"] = "ª";
+utf82macro["ª"] = "ordf";
+macro2utf8["rsquo"] = "’";
+utf82macro["’"] = "rsquo";
+macro2utf8["parallel"] = "∥";
+utf82macro["∥"] = "parallel";
+macro2utf8["half"] = "½";
+utf82macro["½"] = "half";
+macro2utf8["supseteq"] = "⊇";
+utf82macro["⊇"] = "supseteq";
+macro2utf8["ngeqq"] = "≱";
+utf82macro["≱"] = "ngeqq";
+macro2utf8["popf"] = "𝕡";
+utf82macro["𝕡"] = "popf";
+macro2utf8["NonBreakingSpace"] = " ";
+utf82macro[" "] = "NonBreakingSpace";
+macro2utf8["softcy"] = "ь";
+utf82macro["ь"] = "softcy";
+macro2utf8["ordm"] = "º";
+utf82macro["º"] = "ordm";
+macro2utf8["Nscr"] = "𝒩";
+utf82macro["𝒩"] = "Nscr";
+macro2utf8["owns"] = "∋";
+utf82macro["∋"] = "owns";
+macro2utf8["phi"] = "ϕ";
+utf82macro["ϕ"] = "phi";
+macro2utf8["efr"] = "𝔢";
+utf82macro["𝔢"] = "efr";
+macro2utf8["nesear"] = "⤨";
+utf82macro["⤨"] = "nesear";
+macro2utf8["marker"] = "▮";
+utf82macro["▮"] = "marker";
+macro2utf8["lneq"] = "≨";
+utf82macro["≨"] = "lneq";
+macro2utf8["parallet"] = "????";
+utf82macro["????"] = "parallet";
+macro2utf8["ndash"] = "–";
+utf82macro["–"] = "ndash";
+macro2utf8["DoubleLeftTee"] = "⫤";
+utf82macro["⫤"] = "DoubleLeftTee";
+macro2utf8["lArr"] = "⇐";
+utf82macro["⇐"] = "lArr";
+macro2utf8["becaus"] = "∵";
+utf82macro["∵"] = "becaus";
+macro2utf8["RightTee"] = "⊢";
+utf82macro["⊢"] = "RightTee";
+macro2utf8["Ocy"] = "О";
+utf82macro["О"] = "Ocy";
+macro2utf8["ntlg"] = "≸";
+utf82macro["≸"] = "ntlg";
+macro2utf8["cacute"] = "ć";
+utf82macro["ć"] = "cacute";
+macro2utf8["wopf"] = "𝕨";
+utf82macro["𝕨"] = "wopf";
+macro2utf8["Cup"] = "⋓";
+utf82macro["⋓"] = "Cup";
+macro2utf8["Uscr"] = "𝒰";
+utf82macro["𝒰"] = "Uscr";
+macro2utf8["NotHumpEqual"] = "≏̸";
+utf82macro["≏̸"] = "NotHumpEqual";
+macro2utf8["rnmid"] = "⫮";
+utf82macro["⫮"] = "rnmid";
+macro2utf8["nsupE"] = "⊉";
+utf82macro["⊉"] = "nsupE";
+macro2utf8["bemptyv"] = "⦰";
+utf82macro["⦰"] = "bemptyv";
+macro2utf8["lsqb"] = "[";
+utf82macro["["] = "lsqb";
+macro2utf8["nrarr"] = "↛";
+utf82macro["↛"] = "nrarr";
+macro2utf8["egs"] = "⋝";
+utf82macro["⋝"] = "egs";
+macro2utf8["reals"] = "ℝ";
+utf82macro["ℝ"] = "reals";
+macro2utf8["CupCap"] = "≍";
+utf82macro["≍"] = "CupCap";
+macro2utf8["Oacute"] = "Ó";
+utf82macro["Ó"] = "Oacute";
+macro2utf8["Zfr"] = "ℨ";
+utf82macro["ℨ"] = "Zfr";
+macro2utf8["ReverseEquilibrium"] = "⇋";
+utf82macro["⇋"] = "ReverseEquilibrium";
+macro2utf8["ccedil"] = "ç";
+utf82macro["ç"] = "ccedil";
+macro2utf8["bigtriangleup"] = "△";
+utf82macro["△"] = "bigtriangleup";
+macro2utf8["piv"] = "ϖ";
+utf82macro["ϖ"] = "piv";
+macro2utf8["cirscir"] = "⧂";
+utf82macro["⧂"] = "cirscir";
+macro2utf8["exists"] = "∃";
+utf82macro["∃"] = "exists";
+macro2utf8["Uarrocir"] = "⥉";
+utf82macro["⥉"] = "Uarrocir";
+macro2utf8["Dcy"] = "Д";
+utf82macro["Д"] = "Dcy";
+macro2utf8["cscr"] = "𝒸";
+utf82macro["𝒸"] = "cscr";
+macro2utf8["zcaron"] = "ž";
+utf82macro["ž"] = "zcaron";
+macro2utf8["isinE"] = "⋹";
+utf82macro["⋹"] = "isinE";
+macro2utf8["gtcir"] = "⩺";
+utf82macro["⩺"] = "gtcir";
+macro2utf8["hookrightarrow"] = "↪";
+utf82macro["↪"] = "hookrightarrow";
+macro2utf8["Int"] = "∬";
+utf82macro["∬"] = "Int";
+macro2utf8["nsupe"] = "⊉";
+utf82macro["⊉"] = "nsupe";
+macro2utf8["dotplus"] = "∔";
+utf82macro["∔"] = "dotplus";
+macro2utf8["ncup"] = "⩂";
+utf82macro["⩂"] = "ncup";
+macro2utf8["jscr"] = "𝒿";
+utf82macro["𝒿"] = "jscr";
+macro2utf8["angmsdaa"] = "⦨";
+utf82macro["⦨"] = "angmsdaa";
+macro2utf8["Iukcy"] = "І";
+utf82macro["І"] = "Iukcy";
+macro2utf8["flat"] = "♭";
+utf82macro["♭"] = "flat";
+macro2utf8["bNot"] = "⫭";
+utf82macro["⫭"] = "bNot";
+macro2utf8["angmsdab"] = "⦩";
+utf82macro["⦩"] = "angmsdab";
+macro2utf8["angmsdac"] = "⦪";
+utf82macro["⦪"] = "angmsdac";
+macro2utf8["xdtri"] = "▽";
+utf82macro["▽"] = "xdtri";
+macro2utf8["iota"] = "ι";
+utf82macro["ι"] = "iota";
+macro2utf8["angmsdad"] = "⦫";
+utf82macro["⦫"] = "angmsdad";
+macro2utf8["angmsdae"] = "⦬";
+utf82macro["⦬"] = "angmsdae";
+macro2utf8["rightarrowtail"] = "↣";
+utf82macro["↣"] = "rightarrowtail";
+macro2utf8["angmsdaf"] = "⦭";
+utf82macro["⦭"] = "angmsdaf";
+macro2utf8["Ocirc"] = "Ô";
+utf82macro["Ô"] = "Ocirc";
+macro2utf8["angmsdag"] = "⦮";
+utf82macro["⦮"] = "angmsdag";
+macro2utf8["Ofr"] = "𝔒";
+utf82macro["𝔒"] = "Ofr";
+macro2utf8["maltese"] = "✠";
+utf82macro["✠"] = "maltese";
+macro2utf8["angmsdah"] = "⦯";
+utf82macro["⦯"] = "angmsdah";
+macro2utf8["Del"] = "∇";
+utf82macro["∇"] = "Del";
+macro2utf8["Barwed"] = "⌆";
+utf82macro["⌆"] = "Barwed";
+macro2utf8["drbkarow"] = "⤐";
+utf82macro["⤐"] = "drbkarow";
+macro2utf8["qscr"] = "𝓆";
+utf82macro["𝓆"] = "qscr";
+macro2utf8["ETH"] = "Ð";
+utf82macro["Ð"] = "ETH";
+macro2utf8["operp"] = "⦹";
+utf82macro["⦹"] = "operp";
+macro2utf8["daleth"] = "ℸ";
+utf82macro["ℸ"] = "daleth";
+macro2utf8["bull"] = "•";
+utf82macro["•"] = "bull";
+macro2utf8["simlE"] = "⪟";
+utf82macro["⪟"] = "simlE";
+macro2utf8["lsquo"] = "‘";
+utf82macro["‘"] = "lsquo";
+macro2utf8["Larr"] = "↞";
+utf82macro["↞"] = "Larr";
+macro2utf8["curarr"] = "↷";
+utf82macro["↷"] = "curarr";
+macro2utf8["blacktriangleleft"] = "◂";
+utf82macro["◂"] = "blacktriangleleft";
+macro2utf8["hellip"] = "…";
+utf82macro["…"] = "hellip";
+macro2utf8["DoubleVerticalBar"] = "∥";
+utf82macro["∥"] = "DoubleVerticalBar";
+macro2utf8["rBarr"] = "⤏";
+utf82macro["⤏"] = "rBarr";
+macro2utf8["chcy"] = "ч";
+utf82macro["ч"] = "chcy";
+macro2utf8["varpi"] = "ϖ";
+utf82macro["ϖ"] = "varpi";
+macro2utf8["Cconint"] = "∰";
+utf82macro["∰"] = "Cconint";
+macro2utf8["xlarr"] = "";
+utf82macro[""] = "xlarr";
+macro2utf8["xscr"] = "𝓍";
+utf82macro["𝓍"] = "xscr";
+macro2utf8["DoubleLongRightArrow"] = "";
+utf82macro[""] = "DoubleLongRightArrow";
+macro2utf8["CounterClockwiseContourIntegral"] = "∳";
+utf82macro["∳"] = "CounterClockwiseContourIntegral";
+macro2utf8["urcrop"] = "⌎";
+utf82macro["⌎"] = "urcrop";
+macro2utf8["RightAngleBracket"] = "〉";
+utf82macro["〉"] = "RightAngleBracket";
+macro2utf8["Rcaron"] = "Ř";
+utf82macro["Ř"] = "Rcaron";
+macro2utf8["latail"] = "⤙";
+utf82macro["⤙"] = "latail";
+macro2utf8["pitchfork"] = "⋔";
+utf82macro["⋔"] = "pitchfork";
+macro2utf8["nvinfin"] = "⧞";
+utf82macro["⧞"] = "nvinfin";
+macro2utf8["hcirc"] = "ĥ";
+utf82macro["ĥ"] = "hcirc";
+macro2utf8["nexist"] = "∄";
+utf82macro["∄"] = "nexist";
+macro2utf8["checkmark"] = "✓";
+utf82macro["✓"] = "checkmark";
+macro2utf8["tridot"] = "◬";
+utf82macro["◬"] = "tridot";
+macro2utf8["vcy"] = "в";
+utf82macro["в"] = "vcy";
+macro2utf8["isins"] = "⋴";
+utf82macro["⋴"] = "isins";
+macro2utf8["fllig"] = "fl";
+utf82macro["fl"] = "fllig";
+macro2utf8["Dfr"] = "𝔇";
+utf82macro["𝔇"] = "Dfr";
+macro2utf8["hercon"] = "⊹";
+utf82macro["⊹"] = "hercon";
+macro2utf8["gEl"] = "⋛";
+utf82macro["⋛"] = "gEl";
+macro2utf8["bump"] = "≎";
+utf82macro["≎"] = "bump";
+macro2utf8["aleph"] = "ℵ";
+utf82macro["ℵ"] = "aleph";
+macro2utf8["Ubreve"] = "Ŭ";
+utf82macro["Ŭ"] = "Ubreve";
+macro2utf8["isinv"] = "∈";
+utf82macro["∈"] = "isinv";
+macro2utf8["smile"] = "⌣";
+utf82macro["⌣"] = "smile";
+macro2utf8["llcorner"] = "⌞";
+utf82macro["⌞"] = "llcorner";
+macro2utf8["boxH"] = "═";
+utf82macro["═"] = "boxH";
+macro2utf8["ecir"] = "≖";
+utf82macro["≖"] = "ecir";
+macro2utf8["varnothing"] = "∅";
+utf82macro["∅"] = "varnothing";
+macro2utf8["iuml"] = "ï";
+utf82macro["ï"] = "iuml";
+macro2utf8["mlcp"] = "⫛";
+utf82macro["⫛"] = "mlcp";
+macro2utf8["leftrightharpoons"] = "⇋";
+utf82macro["⇋"] = "leftrightharpoons";
+macro2utf8["ncong"] = "≇";
+utf82macro["≇"] = "ncong";
+macro2utf8["Vert"] = "‖";
+utf82macro["‖"] = "Vert";
+macro2utf8["vee"] = "∨";
+utf82macro["∨"] = "vee";
+macro2utf8["star"] = "⋆";
+utf82macro["⋆"] = "star";
+macro2utf8["boxV"] = "║";
+utf82macro["║"] = "boxV";
+macro2utf8["LeftRightArrow"] = "↔";
+utf82macro["↔"] = "LeftRightArrow";
+macro2utf8["leftrightarrow"] = "↔";
+utf82macro["↔"] = "leftrightarrow";
+macro2utf8["lstrok"] = "ł";
+utf82macro["ł"] = "lstrok";
+macro2utf8["ell"] = "ℓ";
+utf82macro["ℓ"] = "ell";
+macro2utf8["VerticalSeparator"] = "❘";
+utf82macro["❘"] = "VerticalSeparator";
+macro2utf8["Ubrcy"] = "Ў";
+utf82macro["Ў"] = "Ubrcy";
+macro2utf8["NotGreater"] = "≯";
+utf82macro["≯"] = "NotGreater";
+macro2utf8["Abreve"] = "Ă";
+utf82macro["Ă"] = "Abreve";
+macro2utf8["TildeTilde"] = "≈";
+utf82macro["≈"] = "TildeTilde";
+macro2utf8["CircleTimes"] = "⊗";
+utf82macro["⊗"] = "CircleTimes";
+macro2utf8["subsetneq"] = "⊊";
+utf82macro["⊊"] = "subsetneq";
+macro2utf8["ltcc"] = "⪦";
+utf82macro["⪦"] = "ltcc";
+macro2utf8["els"] = "⋜";
+utf82macro["⋜"] = "els";
+macro2utf8["succneqq"] = "⪶";
+utf82macro["⪶"] = "succneqq";
+macro2utf8["kcy"] = "к";
+utf82macro["к"] = "kcy";
+macro2utf8["nshortmid"] = "∤︀";
+utf82macro["∤︀"] = "nshortmid";
+macro2utf8["mldr"] = "…";
+utf82macro["…"] = "mldr";
+macro2utf8["harr"] = "↔";
+utf82macro["↔"] = "harr";
+macro2utf8["gimel"] = "ℷ";
+utf82macro["ℷ"] = "gimel";
+macro2utf8["Otimes"] = "⨷";
+utf82macro["⨷"] = "Otimes";
+macro2utf8["vsubnE"] = "⊊︀";
+utf82macro["⊊︀"] = "vsubnE";
+macro2utf8["ltdot"] = "⋖";
+utf82macro["⋖"] = "ltdot";
+macro2utf8["boxh"] = "─";
+utf82macro["─"] = "boxh";
+macro2utf8["notin"] = "∉";
+utf82macro["∉"] = "notin";
+macro2utf8["RuleDelayed"] = "⧴";
+utf82macro["⧴"] = "RuleDelayed";
+macro2utf8["sqsube"] = "⊑";
+utf82macro["⊑"] = "sqsube";
+macro2utf8["macr"] = "¯";
+utf82macro["¯"] = "macr";
+macro2utf8["Icirc"] = "Î";
+utf82macro["Î"] = "Icirc";
+macro2utf8["comma"] = ",";
+utf82macro[","] = "comma";
+macro2utf8["Cayleys"] = "ℭ";
+utf82macro["ℭ"] = "Cayleys";
+macro2utf8["rightleftharpoons"] = "⇌";
+utf82macro["⇌"] = "rightleftharpoons";
+macro2utf8["Rarrtl"] = "⤖";
+utf82macro["⤖"] = "Rarrtl";
+macro2utf8["SquareSubsetEqual"] = "⊑";
+utf82macro["⊑"] = "SquareSubsetEqual";
+macro2utf8["NotGreaterEqual"] = "≱⃥";
+utf82macro["≱⃥"] = "NotGreaterEqual";
+macro2utf8["vfr"] = "𝔳";
+utf82macro["𝔳"] = "vfr";
+macro2utf8["utri"] = "▵";
+utf82macro["▵"] = "utri";
+macro2utf8["simne"] = "≆";
+utf82macro["≆"] = "simne";
+macro2utf8["LeftUpVectorBar"] = "⥘";
+utf82macro["⥘"] = "LeftUpVectorBar";
+macro2utf8["hksearow"] = "⤥";
+utf82macro["⤥"] = "hksearow";
+macro2utf8["boxv"] = "│";
+utf82macro["│"] = "boxv";
+macro2utf8["curvearrowleft"] = "↶";
+utf82macro["↶"] = "curvearrowleft";
+macro2utf8["eng"] = "ŋ";
+utf82macro["ŋ"] = "eng";
+macro2utf8["gtrarr"] = "⥸";
+utf82macro["⥸"] = "gtrarr";
+macro2utf8["iecy"] = "е";
+utf82macro["е"] = "iecy";
+macro2utf8["varr"] = "↕";
+utf82macro["↕"] = "varr";
+macro2utf8["lBarr"] = "⤎";
+utf82macro["⤎"] = "lBarr";
+macro2utf8["ker"] = "ker";
+utf82macro["ker"] = "ker";
+macro2utf8["imath"] = "ı";
+utf82macro["ı"] = "imath";
+macro2utf8["Dstrok"] = "Đ";
+utf82macro["Đ"] = "Dstrok";
+macro2utf8["rlarr"] = "⇄";
+utf82macro["⇄"] = "rlarr";
+macro2utf8["leftleftarrows"] = "⇇";
+utf82macro["⇇"] = "leftleftarrows";
+macro2utf8["DifferentialD"] = "ⅆ";
+utf82macro["ⅆ"] = "DifferentialD";
+macro2utf8["because"] = "∵";
+utf82macro["∵"] = "because";
+macro2utf8["ulcrop"] = "⌏";
+utf82macro["⌏"] = "ulcrop";
+macro2utf8["prE"] = "⪯";
+utf82macro["⪯"] = "prE";
+macro2utf8["oast"] = "⊛";
+utf82macro["⊛"] = "oast";
+macro2utf8["DotEqual"] = "≐";
+utf82macro["≐"] = "DotEqual";
+macro2utf8["vsubne"] = "⊊︀";
+utf82macro["⊊︀"] = "vsubne";
+macro2utf8["hbar"] = "ℏ︀";
+utf82macro["ℏ︀"] = "hbar";
+macro2utf8["subset"] = "⊂";
+utf82macro["⊂"] = "subset";
+macro2utf8["UpTeeArrow"] = "↥";
+utf82macro["↥"] = "UpTeeArrow";
+macro2utf8["LeftFloor"] = "⌊";
+utf82macro["⌊"] = "LeftFloor";
+macro2utf8["kfr"] = "𝔨";
+utf82macro["𝔨"] = "kfr";
+macro2utf8["nisd"] = "⋺";
+utf82macro["⋺"] = "nisd";
+macro2utf8["scnE"] = "⪶";
+utf82macro["⪶"] = "scnE";
+macro2utf8["Ucy"] = "У";
+utf82macro["У"] = "Ucy";
+macro2utf8["nprec"] = "⊀";
+utf82macro["⊀"] = "nprec";
+macro2utf8["ltrPar"] = "⦖";
+utf82macro["⦖"] = "ltrPar";
+macro2utf8["Scaron"] = "Š";
+utf82macro["Š"] = "Scaron";
+macro2utf8["InvisibleComma"] = "​";
+utf82macro["​"] = "InvisibleComma";
+macro2utf8["SquareUnion"] = "⊔";
+utf82macro["⊔"] = "SquareUnion";
+macro2utf8["ffllig"] = "ffl";
+utf82macro["ffl"] = "ffllig";
+macro2utf8["approxeq"] = "≊";
+utf82macro["≊"] = "approxeq";
+macro2utf8["yacute"] = "ý";
+utf82macro["ý"] = "yacute";
+macro2utf8["pre"] = "⪯";
+utf82macro["⪯"] = "pre";
+macro2utf8["nsqsupe"] = "⋣";
+utf82macro["⋣"] = "nsqsupe";
+macro2utf8["supset"] = "⊃";
+utf82macro["⊃"] = "supset";
+macro2utf8["bsolhsub"] = "\\⊂";
+utf82macro["\\⊂"] = "bsolhsub";
+macro2utf8["nshortparallel"] = "∦︀";
+utf82macro["∦︀"] = "nshortparallel";
+macro2utf8["lozenge"] = "◊";
+utf82macro["◊"] = "lozenge";
+macro2utf8["lnot"] = "¬";
+utf82macro["¬"] = "lnot";
+macro2utf8["Dopf"] = "𝔻";
+utf82macro["𝔻"] = "Dopf";
+macro2utf8["leftharpoonup"] = "↼";
+utf82macro["↼"] = "leftharpoonup";
+macro2utf8["Jcy"] = "Й";
+utf82macro["Й"] = "Jcy";
+macro2utf8["rightarrow"] = "→";
+utf82macro["→"] = "rightarrow";
+macro2utf8["ntriangleright"] = "⋫";
+utf82macro["⋫"] = "ntriangleright";
+macro2utf8["Ccirc"] = "Ĉ";
+utf82macro["Ĉ"] = "Ccirc";
+macro2utf8["eacute"] = "é";
+utf82macro["é"] = "eacute";
+macro2utf8["acute"] = "´";
+utf82macro["´"] = "acute";
+macro2utf8["Precedes"] = "≺";
+utf82macro["≺"] = "Precedes";
+macro2utf8["middot"] = "·";
+utf82macro["·"] = "middot";
+macro2utf8["lHar"] = "⥢";
+utf82macro["⥢"] = "lHar";
+macro2utf8["eparsl"] = "⧣";
+utf82macro["⧣"] = "eparsl";
+macro2utf8["psi"] = "ψ";
+utf82macro["ψ"] = "psi";
+macro2utf8["parsl"] = "∥︀";
+utf82macro["∥︀"] = "parsl";
+macro2utf8["UpperLeftArrow"] = "↖";
+utf82macro["↖"] = "UpperLeftArrow";
+macro2utf8["oror"] = "⩖";
+utf82macro["⩖"] = "oror";
+macro2utf8["Kopf"] = "𝕂";
+utf82macro["𝕂"] = "Kopf";
+macro2utf8["apacir"] = "⩯";
+utf82macro["⩯"] = "apacir";
+macro2utf8["dharl"] = "⇃";
+utf82macro["⇃"] = "dharl";
+macro2utf8["nequiv"] = "≢";
+utf82macro["≢"] = "nequiv";
+macro2utf8["rightleftarrows"] = "⇄";
+utf82macro["⇄"] = "rightleftarrows";
+macro2utf8["UnderParenthesis"] = "︶";
+utf82macro["︶"] = "UnderParenthesis";
+macro2utf8["notni"] = "∌";
+utf82macro["∌"] = "notni";
+macro2utf8["dagger"] = "†";
+utf82macro["†"] = "dagger";
+macro2utf8["dharr"] = "⇂";
+utf82macro["⇂"] = "dharr";
+macro2utf8["twoheadleftarrow"] = "↞";
+utf82macro["↞"] = "twoheadleftarrow";
+macro2utf8["frac12"] = "½";
+utf82macro["½"] = "frac12";
+macro2utf8["varsubsetneqq"] = "⊊︀";
+utf82macro["⊊︀"] = "varsubsetneqq";
+macro2utf8["frac13"] = "⅓";
+utf82macro["⅓"] = "frac13";
+macro2utf8["Ufr"] = "𝔘";
+utf82macro["𝔘"] = "Ufr";
+macro2utf8["NestedLessLess"] = "≪";
+utf82macro["≪"] = "NestedLessLess";
+macro2utf8["llarr"] = "⇇";
+utf82macro["⇇"] = "llarr";
+macro2utf8["frac14"] = "¼";
+utf82macro["¼"] = "frac14";
+macro2utf8["frac15"] = "⅕";
+utf82macro["⅕"] = "frac15";
+macro2utf8["Ropf"] = "ℝ";
+utf82macro["ℝ"] = "Ropf";
+macro2utf8["frac16"] = "⅙";
+utf82macro["⅙"] = "frac16";
+macro2utf8["lrtri"] = "⊿";
+utf82macro["⊿"] = "lrtri";
+macro2utf8["frac18"] = "⅛";
+utf82macro["⅛"] = "frac18";
+macro2utf8["cedil"] = "¸";
+utf82macro["¸"] = "cedil";
+macro2utf8["subsim"] = "⫇";
+utf82macro["⫇"] = "subsim";
+macro2utf8["PrecedesTilde"] = "≾";
+utf82macro["≾"] = "PrecedesTilde";
+macro2utf8["igrave"] = "ì";
+utf82macro["ì"] = "igrave";
+macro2utf8["gjcy"] = "ѓ";
+utf82macro["ѓ"] = "gjcy";
+macro2utf8["LeftVector"] = "↼";
+utf82macro["↼"] = "LeftVector";
+macro2utf8["notniva"] = "∌";
+utf82macro["∌"] = "notniva";
+macro2utf8["notnivb"] = "⋾";
+utf82macro["⋾"] = "notnivb";
+macro2utf8["ogon"] = "˛";
+utf82macro["˛"] = "ogon";
+macro2utf8["notnivc"] = "⋽";
+utf82macro["⋽"] = "notnivc";
+macro2utf8["Yopf"] = "𝕐";
+utf82macro["𝕐"] = "Yopf";
+macro2utf8["there4"] = "∴";
+utf82macro["∴"] = "there4";
+macro2utf8["udarr"] = "⇅";
+utf82macro["⇅"] = "udarr";
+macro2utf8["bkarow"] = "⤍";
+utf82macro["⤍"] = "bkarow";
+macro2utf8["frac23"] = "⅔";
+utf82macro["⅔"] = "frac23";
+macro2utf8["frac25"] = "⅖";
+utf82macro["⅖"] = "frac25";
+macro2utf8["njcy"] = "њ";
+utf82macro["њ"] = "njcy";
+macro2utf8["Dashv"] = "⫤";
+utf82macro["⫤"] = "Dashv";
+macro2utf8["eta"] = "η";
+utf82macro["η"] = "eta";
+macro2utf8["bcong"] = "≌";
+utf82macro["≌"] = "bcong";
+macro2utf8["Ugrave"] = "Ù";
+utf82macro["Ù"] = "Ugrave";
+macro2utf8["csube"] = "⫑";
+utf82macro["⫑"] = "csube";
+macro2utf8["clubs"] = "♣";
+utf82macro["♣"] = "clubs";
+macro2utf8["supmult"] = "⫂";
+utf82macro["⫂"] = "supmult";
+macro2utf8["MinusPlus"] = "∓";
+utf82macro["∓"] = "MinusPlus";
+macro2utf8["Jfr"] = "𝔍";
+utf82macro["𝔍"] = "Jfr";
+macro2utf8["ensp"] = " ";
+utf82macro[" "] = "ensp";
+macro2utf8["ucirc"] = "û";
+utf82macro["û"] = "ucirc";
+macro2utf8["supsim"] = "⫈";
+utf82macro["⫈"] = "supsim";
+macro2utf8["eth"] = "ð";
+utf82macro["ð"] = "eth";
+macro2utf8["OverBrace"] = "︷";
+utf82macro["︷"] = "OverBrace";
+macro2utf8["Dot"] = "¨";
+utf82macro["¨"] = "Dot";
+macro2utf8["xcap"] = "⋂";
+utf82macro["⋂"] = "xcap";
+macro2utf8["vangrt"] = "⊾";
+utf82macro["⊾"] = "vangrt";
+macro2utf8["NotSubsetEqual"] = "⊈";
+utf82macro["⊈"] = "NotSubsetEqual";
+macro2utf8["frac34"] = "¾";
+utf82macro["¾"] = "frac34";
+macro2utf8["frac35"] = "⅗";
+utf82macro["⅗"] = "frac35";
+macro2utf8["planck"] = "ℏ︀";
+utf82macro["ℏ︀"] = "planck";
+macro2utf8["lnsim"] = "⋦";
+utf82macro["⋦"] = "lnsim";
+macro2utf8["gopf"] = "𝕘";
+utf82macro["𝕘"] = "gopf";
+macro2utf8["frac38"] = "⅜";
+utf82macro["⅜"] = "frac38";
+macro2utf8["DotDot"] = "⃜";
+utf82macro["⃜"] = "DotDot";
+macro2utf8["mapstoup"] = "↥";
+utf82macro["↥"] = "mapstoup";
+macro2utf8["Escr"] = "ℰ";
+utf82macro["ℰ"] = "Escr";
+macro2utf8["Integral"] = "∫";
+utf82macro["∫"] = "Integral";
+macro2utf8["Agrave"] = "À";
+utf82macro["À"] = "Agrave";
+macro2utf8["longleftarrow"] = "????;";
+utf82macro["????;"] = "longleftarrow";
+macro2utf8["Tcaron"] = "Ť";
+utf82macro["Ť"] = "Tcaron";
+macro2utf8["nopf"] = "𝕟";
+utf82macro["𝕟"] = "nopf";
+macro2utf8["LongLeftRightArrow"] = "";
+utf82macro[""] = "LongLeftRightArrow";
+macro2utf8["Emacr"] = "Ē";
+utf82macro["Ē"] = "Emacr";
+macro2utf8["omid"] = "⦶";
+utf82macro["⦶"] = "omid";
+macro2utf8["spades"] = "♠";
+utf82macro["♠"] = "spades";
+macro2utf8["naturals"] = "ℕ";
+utf82macro["ℕ"] = "naturals";
+macro2utf8["Lscr"] = "ℒ";
+utf82macro["ℒ"] = "Lscr";
+macro2utf8["udblac"] = "ű";
+utf82macro["ű"] = "udblac";
+macro2utf8["SucceedsTilde"] = "≿";
+utf82macro["≿"] = "SucceedsTilde";
+macro2utf8["frac45"] = "⅘";
+utf82macro["⅘"] = "frac45";
+macro2utf8["clubsuit"] = "♣";
+utf82macro["♣"] = "clubsuit";
+macro2utf8["mumap"] = "⊸";
+utf82macro["⊸"] = "mumap";
+macro2utf8["vltri"] = "⊲";
+utf82macro["⊲"] = "vltri";
+macro2utf8["LeftArrowBar"] = "⇤";
+utf82macro["⇤"] = "LeftArrowBar";
+macro2utf8["zacute"] = "ź";
+utf82macro["ź"] = "zacute";
+macro2utf8["szlig"] = "ß";
+utf82macro["ß"] = "szlig";
+macro2utf8["suplarr"] = "⥻";
+utf82macro["⥻"] = "suplarr";
+macro2utf8["RightDownVector"] = "⇂";
+utf82macro["⇂"] = "RightDownVector";
+macro2utf8["male"] = "♂";
+utf82macro["♂"] = "male";
+macro2utf8["RightDownVectorBar"] = "⥕";
+utf82macro["⥕"] = "RightDownVectorBar";
+macro2utf8["gdot"] = "ġ";
+utf82macro["ġ"] = "gdot";
+macro2utf8["nleqq"] = "≰";
+utf82macro["≰"] = "nleqq";
+macro2utf8["uopf"] = "𝕦";
+utf82macro["𝕦"] = "uopf";
+macro2utf8["YIcy"] = "Ї";
+utf82macro["Ї"] = "YIcy";
+macro2utf8["Sscr"] = "𝒮";
+utf82macro["𝒮"] = "Sscr";
+macro2utf8["empty"] = "∅︀";
+utf82macro["∅︀"] = "empty";
+macro2utf8["Vdash"] = "⊩";
+utf82macro["⊩"] = "Vdash";
+macro2utf8["sqsubset"] = "⊏";
+utf82macro["⊏"] = "sqsubset";
+macro2utf8["efDot"] = "≒";
+utf82macro["≒"] = "efDot";
+macro2utf8["times"] = "×";
+utf82macro["×"] = "times";
+macro2utf8["Oslash"] = "Ø";
+utf82macro["Ø"] = "Oslash";
+macro2utf8["itilde"] = "ĩ";
+utf82macro["ĩ"] = "itilde";
+macro2utf8["frac56"] = "⅚";
+utf82macro["⅚"] = "frac56";
+macro2utf8["numero"] = "№";
+utf82macro["№"] = "numero";
+macro2utf8["malt"] = "✠";
+utf82macro["✠"] = "malt";
+macro2utf8["npart"] = "∂̸";
+utf82macro["∂̸"] = "npart";
+macro2utf8["frac58"] = "⅝";
+utf82macro["⅝"] = "frac58";
+macro2utf8["Zscr"] = "𝒵";
+utf82macro["𝒵"] = "Zscr";
+macro2utf8["integers"] = "ℤ";
+utf82macro["ℤ"] = "integers";
+macro2utf8["CloseCurlyQuote"] = "’";
+utf82macro["’"] = "CloseCurlyQuote";
+macro2utf8["NewLine"] = "\n";
+utf82macro["\n"] = "NewLine";
+macro2utf8["fcy"] = "ф";
+utf82macro["ф"] = "fcy";
+macro2utf8["nwarr"] = "↖";
+utf82macro["↖"] = "nwarr";
+macro2utf8["thicksim"] = "∼︀";
+utf82macro["∼︀"] = "thicksim";
+macro2utf8["nprcue"] = "⋠";
+utf82macro["⋠"] = "nprcue";
+macro2utf8["lcub"] = "{";
+utf82macro["{"] = "lcub";
+macro2utf8["forall"] = "∀";
+utf82macro["∀"] = "forall";
+macro2utf8["plusacir"] = "⨣";
+utf82macro["⨣"] = "plusacir";
+macro2utf8["ascr"] = "𝒶";
+utf82macro["𝒶"] = "ascr";
+macro2utf8["plustwo"] = "⨧";
+utf82macro["⨧"] = "plustwo";
+macro2utf8["Utilde"] = "Ũ";
+utf82macro["Ũ"] = "Utilde";
+macro2utf8["lambda"] = "λ";
+utf82macro["λ"] = "lambda";
+macro2utf8["odash"] = "⊝";
+utf82macro["⊝"] = "odash";
+macro2utf8["iukcy"] = "і";
+utf82macro["і"] = "iukcy";
+macro2utf8["sqsupset"] = "⊐";
+utf82macro["⊐"] = "sqsupset";
+macro2utf8["Racute"] = "Ŕ";
+utf82macro["Ŕ"] = "Racute";
+macro2utf8["Longleftarrow"] = "????";
+utf82macro["????"] = "Longleftarrow";
+macro2utf8["capcap"] = "⩋";
+utf82macro["⩋"] = "capcap";
+macro2utf8["ocirc"] = "ô";
+utf82macro["ô"] = "ocirc";
+macro2utf8["nless"] = "≮";
+utf82macro["≮"] = "nless";
+macro2utf8["Wedge"] = "⋀";
+utf82macro["⋀"] = "Wedge";
+macro2utf8["qfr"] = "𝔮";
+utf82macro["𝔮"] = "qfr";
+macro2utf8["natur"] = "♮";
+utf82macro["♮"] = "natur";
+macro2utf8["hscr"] = "𝒽";
+utf82macro["𝒽"] = "hscr";
+macro2utf8["ldca"] = "⤶";
+utf82macro["⤶"] = "ldca";
+macro2utf8["ClockwiseContourIntegral"] = "∲";
+utf82macro["∲"] = "ClockwiseContourIntegral";
+macro2utf8["exp"] = "exp";
+utf82macro["exp"] = "exp";
+macro2utf8["RightTeeArrow"] = "↦";
+utf82macro["↦"] = "RightTeeArrow";
+macro2utf8["orarr"] = "↻";
+utf82macro["↻"] = "orarr";
+macro2utf8["tanh"] = "tanh";
+utf82macro["tanh"] = "tanh";
+macro2utf8["frac78"] = "⅞";
+utf82macro["⅞"] = "frac78";
+macro2utf8["Atilde"] = "Ã";
+utf82macro["Ã"] = "Atilde";
+macro2utf8["arcsin"] = "arcsin";
+utf82macro["arcsin"] = "arcsin";
+macro2utf8["Rcedil"] = "Ŗ";
+utf82macro["Ŗ"] = "Rcedil";
+macro2utf8["oscr"] = "ℴ";
+utf82macro["ℴ"] = "oscr";
+macro2utf8["InvisibleTimes"] = "⁢";
+utf82macro["⁢"] = "InvisibleTimes";
+macro2utf8["sime"] = "≃";
+utf82macro["≃"] = "sime";
+macro2utf8["simg"] = "⪞";
+utf82macro["⪞"] = "simg";
+macro2utf8["Conint"] = "∯";
+utf82macro["∯"] = "Conint";
+macro2utf8["Yuml"] = "Ÿ";
+utf82macro["Ÿ"] = "Yuml";
+macro2utf8["rlhar"] = "⇌";
+utf82macro["⇌"] = "rlhar";
+macro2utf8["rarrbfs"] = "⤠";
+utf82macro["⤠"] = "rarrbfs";
+macro2utf8["siml"] = "⪝";
+utf82macro["⪝"] = "siml";
+macro2utf8["DownRightVectorBar"] = "⥗";
+utf82macro["⥗"] = "DownRightVectorBar";
+macro2utf8["vscr"] = "𝓋";
+utf82macro["𝓋"] = "vscr";
+macro2utf8["divide"] = "÷";
+utf82macro["÷"] = "divide";
+macro2utf8["PlusMinus"] = "±";
+utf82macro["±"] = "PlusMinus";
+macro2utf8["ffr"] = "𝔣";
+utf82macro["𝔣"] = "ffr";
+macro2utf8["DownLeftTeeVector"] = "⥞";
+utf82macro["⥞"] = "DownLeftTeeVector";
+macro2utf8["EmptySmallSquare"] = "◽";
+utf82macro["◽"] = "EmptySmallSquare";
+macro2utf8["SHCHcy"] = "Щ";
+utf82macro["Щ"] = "SHCHcy";
+macro2utf8["cirmid"] = "⫯";
+utf82macro["⫯"] = "cirmid";
+macro2utf8["sigmav"] = "ς";
+utf82macro["ς"] = "sigmav";
+macro2utf8["csub"] = "⫏";
+utf82macro["⫏"] = "csub";
+macro2utf8["npar"] = "∦";
+utf82macro["∦"] = "npar";
+macro2utf8["bsemi"] = "⁏";
+utf82macro["⁏"] = "bsemi";
+macro2utf8["swArr"] = "⇙";
+utf82macro["⇙"] = "swArr";
+macro2utf8["Pcy"] = "П";
+utf82macro["П"] = "Pcy";
+macro2utf8["sinh"] = "sinh";
+utf82macro["sinh"] = "sinh";
+macro2utf8["lharul"] = "⥪";
+utf82macro["⥪"] = "lharul";
+macro2utf8["Jukcy"] = "Є";
+utf82macro["Є"] = "Jukcy";
+macro2utf8["permil"] = "‰";
+utf82macro["‰"] = "permil";
+macro2utf8["ndivides"] = "∤";
+utf82macro["∤"] = "ndivides";
+macro2utf8["Aring"] = "Å";
+utf82macro["Å"] = "Aring";
+macro2utf8["longmapsto"] = "????";
+utf82macro["????"] = "longmapsto";
+macro2utf8["Esim"] = "⩳";
+utf82macro["⩳"] = "Esim";
+macro2utf8["csup"] = "⫐";
+utf82macro["⫐"] = "csup";
+macro2utf8["trie"] = "≜";
+utf82macro["≜"] = "trie";
+macro2utf8["ubrcy"] = "ў";
+utf82macro["ў"] = "ubrcy";
+macro2utf8["NotEqualTilde"] = "≂̸";
+utf82macro["≂̸"] = "NotEqualTilde";
+macro2utf8["dotminus"] = "∸";
+utf82macro["∸"] = "dotminus";
+macro2utf8["diamondsuit"] = "♢";
+utf82macro["♢"] = "diamondsuit";
+macro2utf8["xnis"] = "⋻";
+utf82macro["⋻"] = "xnis";
+macro2utf8["Eogon"] = "Ę";
+utf82macro["Ę"] = "Eogon";
+macro2utf8["cuvee"] = "⋎";
+utf82macro["⋎"] = "cuvee";
+macro2utf8["DZcy"] = "Џ";
+utf82macro["Џ"] = "DZcy";
+macro2utf8["nRightarrow"] = "⇏";
+utf82macro["⇏"] = "nRightarrow";
+macro2utf8["sqsupe"] = "⊒";
+utf82macro["⊒"] = "sqsupe";
+macro2utf8["nsccue"] = "⋡";
+utf82macro["⋡"] = "nsccue";
+macro2utf8["drcrop"] = "⌌";
+utf82macro["⌌"] = "drcrop";
+macro2utf8["DownBreve"] = "̑";
+utf82macro["̑"] = "DownBreve";
+macro2utf8["Ecy"] = "Э";
+utf82macro["Э"] = "Ecy";
+macro2utf8["rdquor"] = "”";
+utf82macro["”"] = "rdquor";
+macro2utf8["rAtail"] = "⤜";
+utf82macro["⤜"] = "rAtail";
+macro2utf8["icirc"] = "î";
+utf82macro["î"] = "icirc";
+macro2utf8["gacute"] = "ǵ";
+utf82macro["ǵ"] = "gacute";
+macro2utf8["hyphen"] = "‐";
+utf82macro["‐"] = "hyphen";
+macro2utf8["uuml"] = "ü";
+utf82macro["ü"] = "uuml";
+macro2utf8["thorn"] = "þ";
+utf82macro["þ"] = "thorn";
+macro2utf8["ltri"] = "◃";
+utf82macro["◃"] = "ltri";
+macro2utf8["eqslantgtr"] = "⋝";
+utf82macro["⋝"] = "eqslantgtr";
+macro2utf8["DoubleContourIntegral"] = "∯";
+utf82macro["∯"] = "DoubleContourIntegral";
+macro2utf8["lescc"] = "⪨";
+utf82macro["⪨"] = "lescc";
+macro2utf8["DiacriticalGrave"] = "`";
+utf82macro["`"] = "DiacriticalGrave";
+macro2utf8["NotPrecedesEqual"] = "⪯̸";
+utf82macro["⪯̸"] = "NotPrecedesEqual";
+macro2utf8["RightArrow"] = "→";
+utf82macro["→"] = "RightArrow";
+macro2utf8["race"] = "⧚";
+utf82macro["⧚"] = "race";
+macro2utf8["topbot"] = "⌶";
+utf82macro["⌶"] = "topbot";
+macro2utf8["Pfr"] = "𝔓";
+utf82macro["𝔓"] = "Pfr";
+macro2utf8["napprox"] = "≉";
+utf82macro["≉"] = "napprox";
+macro2utf8["Sacute"] = "Ś";
+utf82macro["Ś"] = "Sacute";
+macro2utf8["cupor"] = "⩅";
+utf82macro["⩅"] = "cupor";
+macro2utf8["OverBar"] = "¯";
+utf82macro["¯"] = "OverBar";
+macro2utf8["bepsi"] = "϶";
+utf82macro["϶"] = "bepsi";
+macro2utf8["plankv"] = "ℏ";
+utf82macro["ℏ"] = "plankv";
+macro2utf8["lap"] = "≲";
+utf82macro["≲"] = "lap";
+macro2utf8["orslope"] = "⩗";
+utf82macro["⩗"] = "orslope";
+macro2utf8["beta"] = "β";
+utf82macro["β"] = "beta";
+macro2utf8["ShortDownArrow"] = "⌄︀";
+utf82macro["⌄︀"] = "ShortDownArrow";
+macro2utf8["perp"] = "⊥";
+utf82macro["⊥"] = "perp";
+macro2utf8["lat"] = "⪫";
+utf82macro["⪫"] = "lat";
+macro2utf8["CenterDot"] = "·";
+utf82macro["·"] = "CenterDot";
+macro2utf8["urcorner"] = "⌝";
+utf82macro["⌝"] = "urcorner";
+macro2utf8["models"] = "⊧";
+utf82macro["⊧"] = "models";
+macro2utf8["beth"] = "ℶ";
+utf82macro["ℶ"] = "beth";
+macro2utf8["subE"] = "⊆";
+utf82macro["⊆"] = "subE";
+macro2utf8["subnE"] = "⊊";
+utf82macro["⊊"] = "subnE";
+macro2utf8["ldots"] = "…";
+utf82macro["…"] = "ldots";
+macro2utf8["yacy"] = "я";
+utf82macro["я"] = "yacy";
+macro2utf8["udhar"] = "⥮";
+utf82macro["⥮"] = "udhar";
+macro2utf8["Scedil"] = "Ş";
+utf82macro["Ş"] = "Scedil";
+macro2utf8["subsub"] = "⫕";
+utf82macro["⫕"] = "subsub";
+macro2utf8["nvrtrie"] = "⋭̸";
+utf82macro["⋭̸"] = "nvrtrie";
+macro2utf8["Phi"] = "Φ";
+utf82macro["Φ"] = "Phi";
+macro2utf8["Efr"] = "𝔈";
+utf82macro["𝔈"] = "Efr";
+macro2utf8["larrfs"] = "⤝";
+utf82macro["⤝"] = "larrfs";
+macro2utf8["angle"] = "∠";
+utf82macro["∠"] = "angle";
+macro2utf8["TildeFullEqual"] = "≅";
+utf82macro["≅"] = "TildeFullEqual";
+macro2utf8["Jcirc"] = "Ĵ";
+utf82macro["Ĵ"] = "Jcirc";
+macro2utf8["THORN"] = "Þ";
+utf82macro["Þ"] = "THORN";
+macro2utf8["acE"] = "⧛";
+utf82macro["⧛"] = "acE";
+macro2utf8["Longleftrightarrow"] = "????";
+utf82macro["????"] = "Longleftrightarrow";
+macro2utf8["xuplus"] = "⊎";
+utf82macro["⊎"] = "xuplus";
+macro2utf8["searr"] = "↘";
+utf82macro["↘"] = "searr";
+macro2utf8["gvertneqq"] = "≩︀";
+utf82macro["≩︀"] = "gvertneqq";
+macro2utf8["subsup"] = "⫓";
+utf82macro["⫓"] = "subsup";
+macro2utf8["NotSucceedsEqual"] = "⪰̸";
+utf82macro["⪰̸"] = "NotSucceedsEqual";
+macro2utf8["gtrsim"] = "≳";
+utf82macro["≳"] = "gtrsim";
+macro2utf8["nrArr"] = "⇏";
+utf82macro["⇏"] = "nrArr";
+macro2utf8["NotSquareSupersetEqual"] = "⋣";
+utf82macro["⋣"] = "NotSquareSupersetEqual";
+macro2utf8["notindot"] = "⋶︀";
+utf82macro["⋶︀"] = "notindot";
+macro2utf8["HARDcy"] = "Ъ";
+utf82macro["Ъ"] = "HARDcy";
+macro2utf8["jmath"] = "j︀";
+utf82macro["j︀"] = "jmath";
+macro2utf8["aelig"] = "æ";
+utf82macro["æ"] = "aelig";
+macro2utf8["slarr"] = "←︀";
+utf82macro["←︀"] = "slarr";
+macro2utf8["dlcrop"] = "⌍";
+utf82macro["⌍"] = "dlcrop";
+macro2utf8["sube"] = "⊆";
+utf82macro["⊆"] = "sube";
+macro2utf8["cuepr"] = "⋞";
+utf82macro["⋞"] = "cuepr";
+macro2utf8["supsub"] = "⫔";
+utf82macro["⫔"] = "supsub";
+macro2utf8["trianglelefteq"] = "⊴";
+utf82macro["⊴"] = "trianglelefteq";
+macro2utf8["subne"] = "⊊";
+utf82macro["⊊"] = "subne";
+macro2utf8["between"] = "≬";
+utf82macro["≬"] = "between";
+macro2utf8["measuredangle"] = "∡";
+utf82macro["∡"] = "measuredangle";
+macro2utf8["swnwar"] = "⤪";
+utf82macro["⤪"] = "swnwar";
+macro2utf8["lcy"] = "л";
+utf82macro["л"] = "lcy";
+macro2utf8["ccirc"] = "ĉ";
+utf82macro["ĉ"] = "ccirc";
+macro2utf8["larrhk"] = "↩";
+utf82macro["↩"] = "larrhk";
+macro2utf8["DiacriticalTilde"] = "˜";
+utf82macro["˜"] = "DiacriticalTilde";
+macro2utf8["brvbar"] = "¦";
+utf82macro["¦"] = "brvbar";
+macro2utf8["triangledown"] = "▿";
+utf82macro["▿"] = "triangledown";
+macro2utf8["dtrif"] = "▾";
+utf82macro["▾"] = "dtrif";
+macro2utf8["Bopf"] = "𝔹";
+utf82macro["𝔹"] = "Bopf";
+macro2utf8["xwedge"] = "⋀";
+utf82macro["⋀"] = "xwedge";
+macro2utf8["rightsquigarrow"] = "↝";
+utf82macro["↝"] = "rightsquigarrow";
+macro2utf8["acd"] = "∿";
+utf82macro["∿"] = "acd";
+macro2utf8["supsup"] = "⫖";
+utf82macro["⫖"] = "supsup";
+macro2utf8["UpEquilibrium"] = "⥮";
+utf82macro["⥮"] = "UpEquilibrium";
+macro2utf8["succ"] = "≻";
+utf82macro["≻"] = "succ";
+macro2utf8["eqslantless"] = "⋜";
+utf82macro["⋜"] = "eqslantless";
+macro2utf8["coprod"] = "∐";
+utf82macro["∐"] = "coprod";
+macro2utf8["OpenCurlyDoubleQuote"] = "“";
+utf82macro["“"] = "OpenCurlyDoubleQuote";
+macro2utf8["NotGreaterSlantEqual"] = "≱";
+utf82macro["≱"] = "NotGreaterSlantEqual";
+macro2utf8["solb"] = "⧄";
+utf82macro["⧄"] = "solb";
+macro2utf8["HumpDownHump"] = "≎";
+utf82macro["≎"] = "HumpDownHump";
+macro2utf8["gtrapprox"] = "≳";
+utf82macro["≳"] = "gtrapprox";
+macro2utf8["Iopf"] = "𝕀";
+utf82macro["𝕀"] = "Iopf";
+macro2utf8["leg"] = "⋚";
+utf82macro["⋚"] = "leg";
+macro2utf8["wfr"] = "𝔴";
+utf82macro["𝔴"] = "wfr";
+macro2utf8["mapstoleft"] = "↤";
+utf82macro["↤"] = "mapstoleft";
+macro2utf8["gnapprox"] = "⪊";
+utf82macro["⪊"] = "gnapprox";
+macro2utf8["lgE"] = "⪑";
+utf82macro["⪑"] = "lgE";
+macro2utf8["CloseCurlyDoubleQuote"] = "”";
+utf82macro["”"] = "CloseCurlyDoubleQuote";
+macro2utf8["NotNestedLessLess"] = "⒡̸";
+utf82macro["⒡̸"] = "NotNestedLessLess";
+macro2utf8["acy"] = "а";
+utf82macro["а"] = "acy";
+macro2utf8["leq"] = "≤";
+utf82macro["≤"] = "leq";
+macro2utf8["Popf"] = "ℙ";
+utf82macro["ℙ"] = "Popf";
+macro2utf8["les"] = "⩽";
+utf82macro["⩽"] = "les";
+macro2utf8["succcurlyeq"] = "≽";
+utf82macro["≽"] = "succcurlyeq";
+macro2utf8["heartsuit"] = "♡";
+utf82macro["♡"] = "heartsuit";
+macro2utf8["angmsd"] = "∡";
+utf82macro["∡"] = "angmsd";
+macro2utf8["cuesc"] = "⋟";
+utf82macro["⋟"] = "cuesc";
+macro2utf8["lesseqgtr"] = "⋚";
+utf82macro["⋚"] = "lesseqgtr";
+macro2utf8["vartriangleright"] = "⊳";
+utf82macro["⊳"] = "vartriangleright";
+macro2utf8["csupe"] = "⫒";
+utf82macro["⫒"] = "csupe";
+macro2utf8["rthree"] = "⋌";
+utf82macro["⋌"] = "rthree";
+macro2utf8["Idot"] = "İ";
+utf82macro["İ"] = "Idot";
+macro2utf8["gtdot"] = "⋗";
+utf82macro["⋗"] = "gtdot";
+macro2utf8["dashv"] = "⊣";
+utf82macro["⊣"] = "dashv";
+macro2utf8["Odblac"] = "Ő";
+utf82macro["Ő"] = "Odblac";
+macro2utf8["Lmidot"] = "Ŀ";
+utf82macro["Ŀ"] = "Lmidot";
+macro2utf8["andd"] = "⩜";
+utf82macro["⩜"] = "andd";
+macro2utf8["Wopf"] = "𝕎";
+utf82macro["𝕎"] = "Wopf";
+macro2utf8["nvltrie"] = "⋬̸";
+utf82macro["⋬̸"] = "nvltrie";
+macro2utf8["nhpar"] = "⫲";
+utf82macro["⫲"] = "nhpar";
+macro2utf8["geqslant"] = "⩾";
+utf82macro["⩾"] = "geqslant";
+macro2utf8["xlArr"] = "";
+utf82macro[""] = "xlArr";
+macro2utf8["SquareSubset"] = "⊏";
+utf82macro["⊏"] = "SquareSubset";
+macro2utf8["intcal"] = "⊺";
+utf82macro["⊺"] = "intcal";
+macro2utf8["ljcy"] = "љ";
+utf82macro["љ"] = "ljcy";
+macro2utf8["lfr"] = "𝔩";
+utf82macro["𝔩"] = "lfr";
+macro2utf8["gtlPar"] = "⦕";
+utf82macro["⦕"] = "gtlPar";
+macro2utf8["zigrarr"] = "⇝";
+utf82macro["⇝"] = "zigrarr";
+macro2utf8["nvap"] = "≉̸";
+utf82macro["≉̸"] = "nvap";
+macro2utf8["boxtimes"] = "⊠";
+utf82macro["⊠"] = "boxtimes";
+macro2utf8["raquo"] = "»";
+utf82macro["»"] = "raquo";
+macro2utf8["CircleMinus"] = "⊖";
+utf82macro["⊖"] = "CircleMinus";
+macro2utf8["centerdot"] = "·";
+utf82macro["·"] = "centerdot";
+macro2utf8["xoplus"] = "⊕";
+utf82macro["⊕"] = "xoplus";
+macro2utf8["simdot"] = "⩪";
+utf82macro["⩪"] = "simdot";
+macro2utf8["Vcy"] = "В";
+utf82macro["В"] = "Vcy";
+macro2utf8["profline"] = "⌒";
+utf82macro["⌒"] = "profline";
+macro2utf8["ltquest"] = "⩻";
+utf82macro["⩻"] = "ltquest";
+macro2utf8["andv"] = "⩚";
+utf82macro["⩚"] = "andv";
+macro2utf8["lessgtr"] = "≶";
+utf82macro["≶"] = "lessgtr";
+macro2utf8["lesdoto"] = "⪁";
+utf82macro["⪁"] = "lesdoto";
+macro2utf8["NotSquareSubset"] = "⊏̸";
+utf82macro["⊏̸"] = "NotSquareSubset";
+macro2utf8["bullet"] = "•";
+utf82macro["•"] = "bullet";
+macro2utf8["rarrsim"] = "⥴";
+utf82macro["⥴"] = "rarrsim";
+macro2utf8["Tcedil"] = "Ţ";
+utf82macro["Ţ"] = "Tcedil";
+macro2utf8["Hstrok"] = "Ħ";
+utf82macro["Ħ"] = "Hstrok";
+macro2utf8["eopf"] = "𝕖";
+utf82macro["𝕖"] = "eopf";
+macro2utf8["Theta"] = "Θ";
+utf82macro["Θ"] = "Theta";
+macro2utf8["Cscr"] = "𝒞";
+utf82macro["𝒞"] = "Cscr";
+macro2utf8["emacr"] = "ē";
+utf82macro["ē"] = "emacr";
+macro2utf8["UnionPlus"] = "⊎";
+utf82macro["⊎"] = "UnionPlus";
+macro2utf8["Vee"] = "⋁";
+utf82macro["⋁"] = "Vee";
+macro2utf8["arctan"] = "arctan";
+utf82macro["arctan"] = "arctan";
+macro2utf8["afr"] = "𝔞";
+utf82macro["𝔞"] = "afr";
+macro2utf8["thinsp"] = " ";
+utf82macro[" "] = "thinsp";
+macro2utf8["bottom"] = "⊥";
+utf82macro["⊥"] = "bottom";
+macro2utf8["lopf"] = "𝕝";
+utf82macro["𝕝"] = "lopf";
+macro2utf8["larrlp"] = "↫";
+utf82macro["↫"] = "larrlp";
+macro2utf8["lbrace"] = "{";
+utf82macro["{"] = "lbrace";
+macro2utf8["Jscr"] = "𝒥";
+utf82macro["𝒥"] = "Jscr";
+macro2utf8["Kcy"] = "К";
+utf82macro["К"] = "Kcy";
+macro2utf8["shortparallel"] = "∥︀";
+utf82macro["∥︀"] = "shortparallel";
+macro2utf8["hairsp"] = " ";
+utf82macro[" "] = "hairsp";
+macro2utf8["osol"] = "⊘";
+utf82macro["⊘"] = "osol";
+macro2utf8["lbrack"] = "[";
+utf82macro["["] = "lbrack";
+macro2utf8["hArr"] = "⇔";
+utf82macro["⇔"] = "hArr";
+macro2utf8["vdash"] = "⊢";
+utf82macro["⊢"] = "vdash";
+macro2utf8["UpDownArrow"] = "↕";
+utf82macro["↕"] = "UpDownArrow";
+macro2utf8["edot"] = "ė";
+utf82macro["ė"] = "edot";
+macro2utf8["vzigzag"] = "⦚";
+utf82macro["⦚"] = "vzigzag";
+macro2utf8["sopf"] = "𝕤";
+utf82macro["𝕤"] = "sopf";
+macro2utf8["NotLessGreater"] = "≸";
+utf82macro["≸"] = "NotLessGreater";
+macro2utf8["Qscr"] = "𝒬";
+utf82macro["𝒬"] = "Qscr";
+macro2utf8["Gammad"] = "Ϝ";
+utf82macro["Ϝ"] = "Gammad";
+macro2utf8["SubsetEqual"] = "⊆";
+utf82macro["⊆"] = "SubsetEqual";
+macro2utf8["uplus"] = "⊎";
+utf82macro["⊎"] = "uplus";
+macro2utf8["LeftTriangle"] = "⊲";
+utf82macro["⊲"] = "LeftTriangle";
+macro2utf8["ange"] = "⦤";
+utf82macro["⦤"] = "ange";
+macro2utf8["lim"] = "lim";
+utf82macro["lim"] = "lim";
+macro2utf8["triangleright"] = "▹";
+utf82macro["▹"] = "triangleright";
+macro2utf8["angrt"] = "∟";
+utf82macro["∟"] = "angrt";
+macro2utf8["rfloor"] = "⌋";
+utf82macro["⌋"] = "rfloor";
+macro2utf8["bigtriangledown"] = "▽";
+utf82macro["▽"] = "bigtriangledown";
+macro2utf8["ofcir"] = "⦿";
+utf82macro["⦿"] = "ofcir";
+macro2utf8["Vfr"] = "𝔙";
+utf82macro["𝔙"] = "Vfr";
+macro2utf8["zopf"] = "𝕫";
+utf82macro["𝕫"] = "zopf";
+macro2utf8["UpArrowDownArrow"] = "⇅";
+utf82macro["⇅"] = "UpArrowDownArrow";
+macro2utf8["Xscr"] = "𝒳";
+utf82macro["𝒳"] = "Xscr";
+macro2utf8["digamma"] = "Ϝ";
+utf82macro["Ϝ"] = "digamma";
+macro2utf8["SmallCircle"] = "∘";
+utf82macro["∘"] = "SmallCircle";
+macro2utf8["vArr"] = "⇕";
+utf82macro["⇕"] = "vArr";
+macro2utf8["eqsim"] = "≂";
+utf82macro["≂"] = "eqsim";
+macro2utf8["downharpoonright"] = "⇂";
+utf82macro["⇂"] = "downharpoonright";
+macro2utf8["Ccaron"] = "Č";
+utf82macro["Č"] = "Ccaron";
+macro2utf8["sdot"] = "⋅";
+utf82macro["⋅"] = "sdot";
+macro2utf8["frown"] = "⌢";
+utf82macro["⌢"] = "frown";
+macro2utf8["angst"] = "Å";
+utf82macro["Å"] = "angst";
+macro2utf8["lesges"] = "⪓";
+utf82macro["⪓"] = "lesges";
+macro2utf8["iacute"] = "í";
+utf82macro["í"] = "iacute";
+macro2utf8["wedge"] = "∧";
+utf82macro["∧"] = "wedge";
+macro2utf8["ssetmn"] = "∖︀";
+utf82macro["∖︀"] = "ssetmn";
+macro2utf8["rotimes"] = "⨵";
+utf82macro["⨵"] = "rotimes";
+macro2utf8["laquo"] = "«";
+utf82macro["«"] = "laquo";
+macro2utf8["bigstar"] = "★";
+utf82macro["★"] = "bigstar";
+macro2utf8["Rrightarrow"] = "⇛";
+utf82macro["⇛"] = "Rrightarrow";
+macro2utf8["erDot"] = "≓";
+utf82macro["≓"] = "erDot";
+macro2utf8["subseteq"] = "⊆";
+utf82macro["⊆"] = "subseteq";
+macro2utf8["leftharpoondown"] = "↽";
+utf82macro["↽"] = "leftharpoondown";
+macro2utf8["infin"] = "∞";
+utf82macro["∞"] = "infin";
+macro2utf8["zdot"] = "ż";
+utf82macro["ż"] = "zdot";
+macro2utf8["solbar"] = "⌿";
+utf82macro["⌿"] = "solbar";
+macro2utf8["Iuml"] = "Ï";
+utf82macro["Ï"] = "Iuml";
+macro2utf8["Kfr"] = "𝔎";
+utf82macro["𝔎"] = "Kfr";
+macro2utf8["fscr"] = "𝒻";
+utf82macro["𝒻"] = "fscr";
+macro2utf8["DJcy"] = "Ђ";
+utf82macro["Ђ"] = "DJcy";
+macro2utf8["veeeq"] = "≚";
+utf82macro["≚"] = "veeeq";
+macro2utf8["Star"] = "⋆";
+utf82macro["⋆"] = "Star";
+macro2utf8["lsquor"] = "‚";
+utf82macro["‚"] = "lsquor";
+macro2utf8["Uacute"] = "Ú";
+utf82macro["Ú"] = "Uacute";
+macro2utf8["weierp"] = "℘";
+utf82macro["℘"] = "weierp";
+macro2utf8["rang"] = "〉";
+utf82macro["〉"] = "rang";
+macro2utf8["hamilt"] = "ℋ";
+utf82macro["ℋ"] = "hamilt";
+macro2utf8["angsph"] = "∢";
+utf82macro["∢"] = "angsph";
+macro2utf8["YUcy"] = "Ю";
+utf82macro["Ю"] = "YUcy";
+macro2utf8["Wcirc"] = "Ŵ";
+utf82macro["Ŵ"] = "Wcirc";
+macro2utf8["supsetneq"] = "⊋";
+utf82macro["⊋"] = "supsetneq";
+macro2utf8["gap"] = "≳";
+utf82macro["≳"] = "gap";
+macro2utf8["mscr"] = "𝓂";
+utf82macro["𝓂"] = "mscr";
+macro2utf8["KJcy"] = "Ќ";
+utf82macro["Ќ"] = "KJcy";
+macro2utf8["qprime"] = "⁗";
+utf82macro["⁗"] = "qprime";
+macro2utf8["EqualTilde"] = "≂";
+utf82macro["≂"] = "EqualTilde";
+macro2utf8["vBar"] = "⫨";
+utf82macro["⫨"] = "vBar";
+macro2utf8["larrpl"] = "⤹";
+utf82macro["⤹"] = "larrpl";
+macro2utf8["nvge"] = "≱";
+utf82macro["≱"] = "nvge";
+macro2utf8["approx"] = "≈";
+utf82macro["≈"] = "approx";
+macro2utf8["lnE"] = "≨";
+utf82macro["≨"] = "lnE";
+macro2utf8["NotGreaterLess"] = "≹";
+utf82macro["≹"] = "NotGreaterLess";
+macro2utf8["epar"] = "⋕";
+utf82macro["⋕"] = "epar";
+macro2utf8["bigotimes"] = "⊗";
+utf82macro["⊗"] = "bigotimes";
+macro2utf8["xharr"] = "";
+utf82macro[""] = "xharr";
+macro2utf8["roang"] = "";
+utf82macro[""] = "roang";
+macro2utf8["xcup"] = "⋃";
+utf82macro["⋃"] = "xcup";
+macro2utf8["tscr"] = "𝓉";
+utf82macro["𝓉"] = "tscr";
+macro2utf8["thkap"] = "≈︀";
+utf82macro["≈︀"] = "thkap";
+macro2utf8["Aacute"] = "Á";
+utf82macro["Á"] = "Aacute";
+macro2utf8["rcy"] = "р";
+utf82macro["р"] = "rcy";
+macro2utf8["jukcy"] = "є";
+utf82macro["є"] = "jukcy";
+macro2utf8["hookleftarrow"] = "↩";
+utf82macro["↩"] = "hookleftarrow";
+macro2utf8["napid"] = "≋̸";
+utf82macro["≋̸"] = "napid";
+macro2utf8["tscy"] = "ц";
+utf82macro["ц"] = "tscy";
+macro2utf8["nvgt"] = "≯";
+utf82macro["≯"] = "nvgt";
+macro2utf8["lpar"] = "(";
+utf82macro["("] = "lpar";
+macro2utf8["ldsh"] = "↲";
+utf82macro["↲"] = "ldsh";
+macro2utf8["aring"] = "å";
+utf82macro["å"] = "aring";
+macro2utf8["nGg"] = "⋙̸";
+utf82macro["⋙̸"] = "nGg";
+macro2utf8["LessEqualGreater"] = "⋚";
+utf82macro["⋚"] = "LessEqualGreater";
+macro2utf8["gcd"] = "gcd";
+utf82macro["gcd"] = "gcd";
+macro2utf8["oplus"] = "⊕";
+utf82macro["⊕"] = "oplus";
+macro2utf8["lcaron"] = "ľ";
+utf82macro["ľ"] = "lcaron";
+macro2utf8["DownArrow"] = "↓";
+utf82macro["↓"] = "DownArrow";
+macro2utf8["xutri"] = "△";
+utf82macro["△"] = "xutri";
+macro2utf8["Psi"] = "Ψ";
+utf82macro["Ψ"] = "Psi";
+macro2utf8["lesssim"] = "≲";
+utf82macro["≲"] = "lesssim";
+macro2utf8["topcir"] = "⫱";
+utf82macro["⫱"] = "topcir";
+macro2utf8["puncsp"] = " ";
+utf82macro[" "] = "puncsp";
+macro2utf8["origof"] = "⊶";
+utf82macro["⊶"] = "origof";
+macro2utf8["gnsim"] = "⋧";
+utf82macro["⋧"] = "gnsim";
+macro2utf8["eogon"] = "ę";
+utf82macro["ę"] = "eogon";
+macro2utf8["spar"] = "∥︀";
+utf82macro["∥︀"] = "spar";
+macro2utf8["LowerRightArrow"] = "↘";
+utf82macro["↘"] = "LowerRightArrow";
+macro2utf8["Lleftarrow"] = "⇚";
+utf82macro["⇚"] = "Lleftarrow";
+macro2utf8["nGt"] = "≫̸";
+utf82macro["≫̸"] = "nGt";
+macro2utf8["euml"] = "ë";
+utf82macro["ë"] = "euml";
+macro2utf8["reg"] = "®";
+utf82macro["®"] = "reg";
+macro2utf8["exponentiale"] = "ⅇ";
+utf82macro["ⅇ"] = "exponentiale";
+macro2utf8["qint"] = "⨌";
+utf82macro["⨌"] = "qint";
+macro2utf8["sqcups"] = "⊔︀";
+utf82macro["⊔︀"] = "sqcups";
+macro2utf8["lne"] = "≨";
+utf82macro["≨"] = "lne";
+macro2utf8["LessSlantEqual"] = "⩽";
+utf82macro["⩽"] = "LessSlantEqual";
+macro2utf8["Egrave"] = "È";
+utf82macro["È"] = "Egrave";
+macro2utf8["orderof"] = "ℴ";
+utf82macro["ℴ"] = "orderof";
+macro2utf8["cirE"] = "⧃";
+utf82macro["⧃"] = "cirE";
+macro2utf8["nleqslant"] = "≰";
+utf82macro["≰"] = "nleqslant";
+macro2utf8["gcy"] = "г";
+utf82macro["г"] = "gcy";
+macro2utf8["curvearrowright"] = "↷";
+utf82macro["↷"] = "curvearrowright";
+macro2utf8["ratail"] = "↣";
+utf82macro["↣"] = "ratail";
+macro2utf8["emsp13"] = " ";
+utf82macro[" "] = "emsp13";
+macro2utf8["sdotb"] = "⊡";
+utf82macro["⊡"] = "sdotb";
+macro2utf8["horbar"] = "―";
+utf82macro["―"] = "horbar";
+macro2utf8["emsp14"] = " ";
+utf82macro[" "] = "emsp14";
+macro2utf8["npre"] = "⪯̸";
+utf82macro["⪯̸"] = "npre";
+macro2utf8["rbrksld"] = "⦎";
+utf82macro["⦎"] = "rbrksld";
+macro2utf8["sdote"] = "⩦";
+utf82macro["⩦"] = "sdote";
+macro2utf8["varsupsetneqq"] = "⊋︀";
+utf82macro["⊋︀"] = "varsupsetneqq";
+macro2utf8["VeryThinSpace"] = " ";
+utf82macro[" "] = "VeryThinSpace";
+macro2utf8["DownArrowBar"] = "⤓";
+utf82macro["⤓"] = "DownArrowBar";
+macro2utf8["Rightarrow"] = "⇒";
+utf82macro["⇒"] = "Rightarrow";
+macro2utf8["ocir"] = "⊚";
+utf82macro["⊚"] = "ocir";
+macro2utf8["NotHumpDownHump"] = "≎̸";
+utf82macro["≎̸"] = "NotHumpDownHump";
+macro2utf8["darr"] = "↓";
+utf82macro["↓"] = "darr";
+macro2utf8["geqq"] = "≧";
+utf82macro["≧"] = "geqq";
+macro2utf8["sup1"] = "¹";
+utf82macro["¹"] = "sup1";
+macro2utf8["log"] = "log";
+utf82macro["log"] = "log";
+macro2utf8["sup2"] = "²";
+utf82macro["²"] = "sup2";
+macro2utf8["micro"] = "µ";
+utf82macro["µ"] = "micro";
+macro2utf8["amp"] = "&";
+utf82macro["&"] = "amp";
+macro2utf8["arccos"] = "arccos";
+utf82macro["arccos"] = "arccos";
+macro2utf8["sup3"] = "³";
+utf82macro["³"] = "sup3";
+macro2utf8["GreaterTilde"] = "≳";
+utf82macro["≳"] = "GreaterTilde";
+macro2utf8["circeq"] = "≗";
+utf82macro["≗"] = "circeq";
+macro2utf8["rfr"] = "𝔯";
+utf82macro["𝔯"] = "rfr";
+macro2utf8["dash"] = "‐";
+utf82macro["‐"] = "dash";
+macro2utf8["rbrkslu"] = "⦐";
+utf82macro["⦐"] = "rbrkslu";
+macro2utf8["Dcaron"] = "Ď";
+utf82macro["Ď"] = "Dcaron";
+macro2utf8["and"] = "∧";
+utf82macro["∧"] = "and";
+macro2utf8["Vbar"] = "⫫";
+utf82macro["⫫"] = "Vbar";
+macro2utf8["angzarr"] = "⍼";
+utf82macro["⍼"] = "angzarr";
+macro2utf8["gel"] = "⋛";
+utf82macro["⋛"] = "gel";
+macro2utf8["ang"] = "∠";
+utf82macro["∠"] = "ang";
+macro2utf8["lor"] = "∨";
+utf82macro["∨"] = "lor";
+macro2utf8["circ"] = "∘";
+utf82macro["∘"] = "circ";
+macro2utf8["upharpoonright"] = "↾";
+utf82macro["↾"] = "upharpoonright";
+macro2utf8["dblac"] = "˝";
+utf82macro["˝"] = "dblac";
+macro2utf8["subsetneqq"] = "⊊";
+utf82macro["⊊"] = "subsetneqq";
+macro2utf8["rhard"] = "⇁";
+utf82macro["⇁"] = "rhard";
+macro2utf8["Intersection"] = "⋂";
+utf82macro["⋂"] = "Intersection";
+macro2utf8["cire"] = "≗";
+utf82macro["≗"] = "cire";
+macro2utf8["apE"] = "≊";
+utf82macro["≊"] = "apE";
+macro2utf8["sung"] = "♪";
+utf82macro["♪"] = "sung";
+macro2utf8["geq"] = "≥";
+utf82macro["≥"] = "geq";
+macro2utf8["succsim"] = "≿";
+utf82macro["≿"] = "succsim";
+macro2utf8["ges"] = "⩾";
+utf82macro["⩾"] = "ges";
+macro2utf8["Gbreve"] = "Ğ";
+utf82macro["Ğ"] = "Gbreve";
+macro2utf8["intercal"] = "⊺";
+utf82macro["⊺"] = "intercal";
+macro2utf8["supE"] = "⊇";
+utf82macro["⊇"] = "supE";
+macro2utf8["NotCupCap"] = "≭";
+utf82macro["≭"] = "NotCupCap";
+macro2utf8["loz"] = "◊";
+utf82macro["◊"] = "loz";
+macro2utf8["capcup"] = "⩇";
+utf82macro["⩇"] = "capcup";
+macro2utf8["larrtl"] = "↢";
+utf82macro["↢"] = "larrtl";
+macro2utf8["AElig"] = "Æ";
+utf82macro["Æ"] = "AElig";
+macro2utf8["rarr"] = "→";
+utf82macro["→"] = "rarr";
+macro2utf8["varkappa"] = "ϰ";
+utf82macro["ϰ"] = "varkappa";
+macro2utf8["upsi"] = "υ";
+utf82macro["υ"] = "upsi";
+macro2utf8["loang"] = "";
+utf82macro[""] = "loang";
+macro2utf8["looparrowleft"] = "↫";
+utf82macro["↫"] = "looparrowleft";
+macro2utf8["IOcy"] = "Ё";
+utf82macro["Ё"] = "IOcy";
+macro2utf8["backprime"] = "‵";
+utf82macro["‵"] = "backprime";
+macro2utf8["sstarf"] = "⋆";
+utf82macro["⋆"] = "sstarf";
+macro2utf8["rharu"] = "⇀";
+utf82macro["⇀"] = "rharu";
+macro2utf8["gesl"] = "⋛︀";
+utf82macro["⋛︀"] = "gesl";
+macro2utf8["xotime"] = "⊗";
+utf82macro["⊗"] = "xotime";
+macro2utf8["minus"] = "−";
+utf82macro["−"] = "minus";
+macro2utf8["gvnE"] = "≩︀";
+utf82macro["≩︀"] = "gvnE";
+macro2utf8["gfr"] = "𝔤";
+utf82macro["𝔤"] = "gfr";
+macro2utf8["lfisht"] = "⥼";
+utf82macro["⥼"] = "lfisht";
+macro2utf8["jcirc"] = "ĵ";
+utf82macro["ĵ"] = "jcirc";
+macro2utf8["roarr"] = "⇾";
+utf82macro["⇾"] = "roarr";
+macro2utf8["rho"] = "ρ";
+utf82macro["ρ"] = "rho";
+macro2utf8["nvle"] = "≰";
+utf82macro["≰"] = "nvle";
+macro2utf8["sect"] = "§";
+utf82macro["§"] = "sect";
+macro2utf8["ggg"] = "⋙";
+utf82macro["⋙"] = "ggg";
+macro2utf8["plusb"] = "⊞";
+utf82macro["⊞"] = "plusb";
+macro2utf8["NotTildeFullEqual"] = "≇";
+utf82macro["≇"] = "NotTildeFullEqual";
+macro2utf8["NegativeVeryThinSpace"] = " ︀";
+utf82macro[" ︀"] = "NegativeVeryThinSpace";
+macro2utf8["ape"] = "≊";
+utf82macro["≊"] = "ape";
+macro2utf8["pluse"] = "⩲";
+utf82macro["⩲"] = "pluse";
+macro2utf8["dollar"] = "$";
+utf82macro["$"] = "dollar";
+macro2utf8["divonx"] = "⋇";
+utf82macro["⋇"] = "divonx";
+macro2utf8["partial"] = "∂";
+utf82macro["∂"] = "partial";
+macro2utf8["DoubleLeftRightArrow"] = "⇔";
+utf82macro["⇔"] = "DoubleLeftRightArrow";
+macro2utf8["varepsilon"] = "ε";
+utf82macro["ε"] = "varepsilon";
+macro2utf8["supe"] = "⊇";
+utf82macro["⊇"] = "supe";
+macro2utf8["nvlt"] = "≮";
+utf82macro["≮"] = "nvlt";
+macro2utf8["angrtvb"] = "⦝︀";
+utf82macro["⦝︀"] = "angrtvb";
+macro2utf8["gets"] = "←";
+utf82macro["←"] = "gets";
+macro2utf8["nparallel"] = "∦";
+utf82macro["∦"] = "nparallel";
+macro2utf8["varphi"] = "φ";
+utf82macro["φ"] = "varphi";
+macro2utf8["nsupseteq"] = "⊉";
+utf82macro["⊉"] = "nsupseteq";
+macro2utf8["circledR"] = "®";
+utf82macro["®"] = "circledR";
+macro2utf8["circledS"] = "Ⓢ";
+utf82macro["Ⓢ"] = "circledS";
+macro2utf8["primes"] = "ℙ";
+utf82macro["ℙ"] = "primes";
+macro2utf8["cuwed"] = "⋏";
+utf82macro["⋏"] = "cuwed";
+macro2utf8["cupcap"] = "⩆";
+utf82macro["⩆"] = "cupcap";
+macro2utf8["nLl"] = "⋘̸";
+utf82macro["⋘̸"] = "nLl";
+macro2utf8["lozf"] = "⧫";
+utf82macro["⧫"] = "lozf";
+macro2utf8["ShortLeftArrow"] = "←︀";
+utf82macro["←︀"] = "ShortLeftArrow";
+macro2utf8["nLt"] = "≪̸";
+utf82macro["≪̸"] = "nLt";
+macro2utf8["lesdotor"] = "⪃";
+utf82macro["⪃"] = "lesdotor";
+macro2utf8["Fcy"] = "Ф";
+utf82macro["Ф"] = "Fcy";
+macro2utf8["scnsim"] = "⋩";
+utf82macro["⋩"] = "scnsim";
+macro2utf8["VerticalLine"] = "|";
+utf82macro["|"] = "VerticalLine";
+macro2utf8["nwArr"] = "⇖";
+utf82macro["⇖"] = "nwArr";
+macro2utf8["LeftTeeArrow"] = "↤";
+utf82macro["↤"] = "LeftTeeArrow";
+macro2utf8["iprod"] = "⨼";
+utf82macro["⨼"] = "iprod";
+macro2utf8["lsh"] = "↰";
+utf82macro["↰"] = "lsh";
+macro2utf8["Congruent"] = "≡";
+utf82macro["≡"] = "Congruent";
+macro2utf8["NotLeftTriangle"] = "⋪";
+utf82macro["⋪"] = "NotLeftTriangle";
+macro2utf8["rdldhar"] = "⥩";
+utf82macro["⥩"] = "rdldhar";
+macro2utf8["varpropto"] = "∝";
+utf82macro["∝"] = "varpropto";
+macro2utf8["nvlArr"] = "⇍";
+utf82macro["⇍"] = "nvlArr";
+macro2utf8["arg"] = "arg";
+utf82macro["arg"] = "arg";
+macro2utf8["lhard"] = "↽";
+utf82macro["↽"] = "lhard";
+macro2utf8["surd"] = "????";
+utf82macro["????"] = "surd";
+macro2utf8["napos"] = "ʼn";
+utf82macro["ʼn"] = "napos";
+macro2utf8["lparlt"] = "⦓";
+utf82macro["⦓"] = "lparlt";
+macro2utf8["hslash"] = "ℏ";
+utf82macro["ℏ"] = "hslash";
+macro2utf8["Gopf"] = "𝔾";
+utf82macro["𝔾"] = "Gopf";
+macro2utf8["SHcy"] = "Ш";
+utf82macro["Ш"] = "SHcy";
+macro2utf8["triangle"] = "▵";
+utf82macro["▵"] = "triangle";
+macro2utf8["Qfr"] = "𝔔";
+utf82macro["𝔔"] = "Qfr";
+macro2utf8["DiacriticalAcute"] = "´";
+utf82macro["´"] = "DiacriticalAcute";
+macro2utf8["tbrk"] = "⎴";
+utf82macro["⎴"] = "tbrk";
+macro2utf8["Implies"] = "⇒";
+utf82macro["⇒"] = "Implies";
+macro2utf8["comp"] = "∁";
+utf82macro["∁"] = "comp";
+macro2utf8["ddarr"] = "⇊";
+utf82macro["⇊"] = "ddarr";
+macro2utf8["Colone"] = "⩴";
+utf82macro["⩴"] = "Colone";
+macro2utf8["smashp"] = "⨳";
+utf82macro["⨳"] = "smashp";
+macro2utf8["ccups"] = "⩌";
+utf82macro["⩌"] = "ccups";
+macro2utf8["triangleq"] = "≜";
+utf82macro["≜"] = "triangleq";
+macro2utf8["NotSquareSubsetEqual"] = "⋢";
+utf82macro["⋢"] = "NotSquareSubsetEqual";
+macro2utf8["Nopf"] = "ℕ";
+utf82macro["ℕ"] = "Nopf";
+macro2utf8["ZHcy"] = "Ж";
+utf82macro["Ж"] = "ZHcy";
+macro2utf8["map"] = "↦";
+utf82macro["↦"] = "map";
+macro2utf8["lharu"] = "↼";
+utf82macro["↼"] = "lharu";
+macro2utf8["glE"] = "⪒";
+utf82macro["⪒"] = "glE";
+macro2utf8["cong"] = "≅";
+utf82macro["≅"] = "cong";
+macro2utf8["Ecaron"] = "Ě";
+utf82macro["Ě"] = "Ecaron";
+macro2utf8["Uring"] = "Ů";
+utf82macro["Ů"] = "Uring";
+macro2utf8["blacktriangleright"] = "▸";
+utf82macro["▸"] = "blacktriangleright";
+macro2utf8["ntilde"] = "ñ";
+utf82macro["ñ"] = "ntilde";
+macro2utf8["max"] = "max";
+utf82macro["max"] = "max";
+macro2utf8["loarr"] = "⇽";
+utf82macro["⇽"] = "loarr";
+macro2utf8["LeftArrow"] = "←";
+utf82macro["←"] = "LeftArrow";
+macro2utf8["Gdot"] = "Ġ";
+utf82macro["Ġ"] = "Gdot";
+macro2utf8["Uopf"] = "𝕌";
+utf82macro["𝕌"] = "Uopf";
+macro2utf8["bigsqcup"] = "⊔";
+utf82macro["⊔"] = "bigsqcup";
+macro2utf8["wedgeq"] = "≙";
+utf82macro["≙"] = "wedgeq";
+macro2utf8["RoundImplies"] = "⥰";
+utf82macro["⥰"] = "RoundImplies";
+macro2utf8["prap"] = "≾";
+utf82macro["≾"] = "prap";
+macro2utf8["gescc"] = "⪩";
+utf82macro["⪩"] = "gescc";
+macro2utf8["realine"] = "ℛ";
+utf82macro["ℛ"] = "realine";
+macro2utf8["ast"] = "*";
+utf82macro["*"] = "ast";
+macro2utf8["subedot"] = "⫃";
+utf82macro["⫃"] = "subedot";
+macro2utf8["LeftTeeVector"] = "⥚";
+utf82macro["⥚"] = "LeftTeeVector";
+macro2utf8["female"] = "♀";
+utf82macro["♀"] = "female";
+macro2utf8["circlearrowleft"] = "↺";
+utf82macro["↺"] = "circlearrowleft";
+macro2utf8["Ffr"] = "𝔉";
+utf82macro["𝔉"] = "Ffr";
+macro2utf8["VDash"] = "⊫";
+utf82macro["⊫"] = "VDash";
+macro2utf8["jsercy"] = "ј";
+utf82macro["ј"] = "jsercy";
+macro2utf8["Proportional"] = "∝";
+utf82macro["∝"] = "Proportional";
+macro2utf8["OverBracket"] = "⎴";
+utf82macro["⎴"] = "OverBracket";
+macro2utf8["gla"] = "⪥";
+utf82macro["⪥"] = "gla";
+macro2utf8["NotElement"] = "∉";
+utf82macro["∉"] = "NotElement";
+macro2utf8["theta"] = "θ";
+utf82macro["θ"] = "theta";
+macro2utf8["kcedil"] = "ķ";
+utf82macro["ķ"] = "kcedil";
+macro2utf8["smeparsl"] = "⧤";
+utf82macro["⧤"] = "smeparsl";
+macro2utf8["rarrb"] = "⇥";
+utf82macro["⇥"] = "rarrb";
+macro2utf8["rarrc"] = "⤳";
+utf82macro["⤳"] = "rarrc";
+macro2utf8["ograve"] = "ò";
+utf82macro["ò"] = "ograve";
+macro2utf8["glj"] = "⪤";
+utf82macro["⪤"] = "glj";
+macro2utf8["infty"] = "∞";
+utf82macro["∞"] = "infty";
+macro2utf8["gnE"] = "≩";
+utf82macro["≩"] = "gnE";
+macro2utf8["copf"] = "𝕔";
+utf82macro["𝕔"] = "copf";
+macro2utf8["LeftArrowRightArrow"] = "⇆";
+utf82macro["⇆"] = "LeftArrowRightArrow";
+macro2utf8["cwconint"] = "∲";
+utf82macro["∲"] = "cwconint";
+macro2utf8["Ascr"] = "𝒜";
+utf82macro["𝒜"] = "Ascr";
+macro2utf8["NegativeThinSpace"] = " ︀";
+utf82macro[" ︀"] = "NegativeThinSpace";
+macro2utf8["varsubsetneq"] = "⊊︀";
+utf82macro["⊊︀"] = "varsubsetneq";
+macro2utf8["trisb"] = "⧍";
+utf82macro["⧍"] = "trisb";
+macro2utf8["rightharpoonup"] = "⇀";
+utf82macro["⇀"] = "rightharpoonup";
+macro2utf8["imagline"] = "ℐ";
+utf82macro["ℐ"] = "imagline";
+macro2utf8["mcy"] = "м";
+utf82macro["м"] = "mcy";
+macro2utf8["Cacute"] = "Ć";
+utf82macro["Ć"] = "Cacute";
+macro2utf8["bumpeq"] = "≏";
+utf82macro["≏"] = "bumpeq";
+macro2utf8["jopf"] = "𝕛";
+utf82macro["𝕛"] = "jopf";
+macro2utf8["shchcy"] = "щ";
+utf82macro["щ"] = "shchcy";
+macro2utf8["rarrw"] = "↝";
+utf82macro["↝"] = "rarrw";
+macro2utf8["uuarr"] = "⇈";
+utf82macro["⇈"] = "uuarr";
+macro2utf8["doteq"] = "≐";
+utf82macro["≐"] = "doteq";
+macro2utf8["cudarrl"] = "⤸";
+utf82macro["⤸"] = "cudarrl";
+macro2utf8["varsigma"] = "ς";
+utf82macro["ς"] = "varsigma";
+macro2utf8["Hscr"] = "ℋ";
+utf82macro["ℋ"] = "Hscr";
+macro2utf8["DownArrowUpArrow"] = "⇵";
+utf82macro["⇵"] = "DownArrowUpArrow";
+macro2utf8["Ecirc"] = "Ê";
+utf82macro["Ê"] = "Ecirc";
+macro2utf8["DD"] = "ⅅ";
+utf82macro["ⅅ"] = "DD";
+macro2utf8["copy"] = "©";
+utf82macro["©"] = "copy";
+macro2utf8["SquareIntersection"] = "⊓";
+utf82macro["⊓"] = "SquareIntersection";
+macro2utf8["RightUpVector"] = "↾";
+utf82macro["↾"] = "RightUpVector";
+macro2utf8["NotSucceedsSlantEqual"] = "⋡";
+utf82macro["⋡"] = "NotSucceedsSlantEqual";
+macro2utf8["cudarrr"] = "⤵";
+utf82macro["⤵"] = "cudarrr";
+macro2utf8["verbar"] = "|";
+utf82macro["|"] = "verbar";
+macro2utf8["ncaron"] = "ň";
+utf82macro["ň"] = "ncaron";
+macro2utf8["prurel"] = "⊰";
+utf82macro["⊰"] = "prurel";
+macro2utf8["nearr"] = "↗";
+utf82macro["↗"] = "nearr";
+macro2utf8["cdot"] = "ċ";
+utf82macro["ċ"] = "cdot";
+macro2utf8["qopf"] = "𝕢";
+utf82macro["𝕢"] = "qopf";
+macro2utf8["SucceedsSlantEqual"] = "≽";
+utf82macro["≽"] = "SucceedsSlantEqual";
+macro2utf8["Oscr"] = "𝒪";
+utf82macro["𝒪"] = "Oscr";
+macro2utf8["xfr"] = "𝔵";
+utf82macro["𝔵"] = "xfr";
+macro2utf8["gne"] = "≩";
+utf82macro["≩"] = "gne";
+macro2utf8["Ccedil"] = "Ç";
+utf82macro["Ç"] = "Ccedil";
+macro2utf8["nlarr"] = "↚";
+utf82macro["↚"] = "nlarr";
+macro2utf8["inodot"] = "ı";
+utf82macro["ı"] = "inodot";
+macro2utf8["prec"] = "≺";
+utf82macro["≺"] = "prec";
+macro2utf8["percnt"] = "%";
+utf82macro["%"] = "percnt";
+macro2utf8["Exists"] = "∃";
+utf82macro["∃"] = "Exists";
+macro2utf8["bcy"] = "б";
+utf82macro["б"] = "bcy";
+macro2utf8["xopf"] = "𝕩";
+utf82macro["𝕩"] = "xopf";
+macro2utf8["nsimeq"] = "≄";
+utf82macro["≄"] = "nsimeq";
+macro2utf8["nrtri"] = "⋫";
+utf82macro["⋫"] = "nrtri";
+macro2utf8["barvee"] = "⊽";
+utf82macro["⊽"] = "barvee";
+macro2utf8["Vscr"] = "𝒱";
+utf82macro["𝒱"] = "Vscr";
+macro2utf8["Zcaron"] = "Ž";
+utf82macro["Ž"] = "Zcaron";
+macro2utf8["ReverseElement"] = "∋";
+utf82macro["∋"] = "ReverseElement";
+macro2utf8["npolint"] = "⨔";
+utf82macro["⨔"] = "npolint";
+macro2utf8["NotGreaterTilde"] = "≵";
+utf82macro["≵"] = "NotGreaterTilde";
+macro2utf8["lmoustache"] = "⎰";
+utf82macro["⎰"] = "lmoustache";
+macro2utf8["forkv"] = "⫙";
+utf82macro["⫙"] = "forkv";
+macro2utf8["rmoustache"] = "⎱";
+utf82macro["⎱"] = "rmoustache";
+macro2utf8["DownLeftVectorBar"] = "⥖";
+utf82macro["⥖"] = "DownLeftVectorBar";
+macro2utf8["cosh"] = "cosh";
+utf82macro["cosh"] = "cosh";
+macro2utf8["mfr"] = "𝔪";
+utf82macro["𝔪"] = "mfr";
+macro2utf8["LessGreater"] = "≶";
+utf82macro["≶"] = "LessGreater";
+macro2utf8["zeetrf"] = "ℨ";
+utf82macro["ℨ"] = "zeetrf";
+macro2utf8["DiacriticalDot"] = "˙";
+utf82macro["˙"] = "DiacriticalDot";
+macro2utf8["Poincareplane"] = "ℌ";
+utf82macro["ℌ"] = "Poincareplane";
+macro2utf8["curlyeqsucc"] = "⋟";
+utf82macro["⋟"] = "curlyeqsucc";
+macro2utf8["Equal"] = "⩵";
+utf82macro["⩵"] = "Equal";
+macro2utf8["divides"] = "∣";
+utf82macro["∣"] = "divides";
+macro2utf8["scpolint"] = "⨓";
+utf82macro["⨓"] = "scpolint";
+macro2utf8["ngsim"] = "≵";
+utf82macro["≵"] = "ngsim";
+macro2utf8["larrbfs"] = "⤟";
+utf82macro["⤟"] = "larrbfs";
+macro2utf8["HilbertSpace"] = "ℋ";
+utf82macro["ℋ"] = "HilbertSpace";
+macro2utf8["otilde"] = "õ";
+utf82macro["õ"] = "otilde";
+macro2utf8["larrb"] = "⇤";
+utf82macro["⇤"] = "larrb";
+macro2utf8["wcirc"] = "ŵ";
+utf82macro["ŵ"] = "wcirc";
+macro2utf8["dscr"] = "𝒹";
+utf82macro["𝒹"] = "dscr";
+macro2utf8["phmmat"] = "ℳ";
+utf82macro["ℳ"] = "phmmat";
+macro2utf8["lacute"] = "ĺ";
+utf82macro["ĺ"] = "lacute";
+macro2utf8["tstrok"] = "ŧ";
+utf82macro["ŧ"] = "tstrok";
+macro2utf8["NotDoubleVerticalBar"] = "∦";
+utf82macro["∦"] = "NotDoubleVerticalBar";
+macro2utf8["lagran"] = "ℒ";
+utf82macro["ℒ"] = "lagran";
+macro2utf8["NotRightTriangle"] = "⋫";
+utf82macro["⋫"] = "NotRightTriangle";
+macro2utf8["dscy"] = "ѕ";
+utf82macro["ѕ"] = "dscy";
+macro2utf8["rightrightarrows"] = "⇉";
+utf82macro["⇉"] = "rightrightarrows";
+macro2utf8["seArr"] = "⇘";
+utf82macro["⇘"] = "seArr";
+macro2utf8["RightTriangleBar"] = "⧐";
+utf82macro["⧐"] = "RightTriangleBar";
+macro2utf8["coth"] = "coth";
+utf82macro["coth"] = "coth";
+macro2utf8["swarrow"] = "↙";
+utf82macro["↙"] = "swarrow";
+macro2utf8["semi"] = ";";
+utf82macro[";"] = "semi";
+macro2utf8["kscr"] = "𝓀";
+utf82macro["𝓀"] = "kscr";
+macro2utf8["NotLessEqual"] = "≰⃥";
+utf82macro["≰⃥"] = "NotLessEqual";
+macro2utf8["cularr"] = "↶";
+utf82macro["↶"] = "cularr";
+macro2utf8["blacklozenge"] = "⧫";
+utf82macro["⧫"] = "blacklozenge";
+macro2utf8["realpart"] = "ℜ";
+utf82macro["ℜ"] = "realpart";
+macro2utf8["LeftTriangleEqual"] = "⊴";
+utf82macro["⊴"] = "LeftTriangleEqual";
+macro2utf8["bfr"] = "𝔟";
+utf82macro["𝔟"] = "bfr";
+macro2utf8["Uuml"] = "Ü";
+utf82macro["Ü"] = "Uuml";
+macro2utf8["longleftrightarrow"] = "????";
+utf82macro["????"] = "longleftrightarrow";
+macro2utf8["lcedil"] = "ļ";
+utf82macro["ļ"] = "lcedil";
+macro2utf8["complement"] = "∁";
+utf82macro["∁"] = "complement";
+macro2utf8["rscr"] = "𝓇";
+utf82macro["𝓇"] = "rscr";
+macro2utf8["mho"] = "℧";
+utf82macro["℧"] = "mho";
+macro2utf8["mcomma"] = "⨩";
+utf82macro["⨩"] = "mcomma";
+macro2utf8["wedbar"] = "⩟";
+utf82macro["⩟"] = "wedbar";
+macro2utf8["NotVerticalBar"] = "∤";
+utf82macro["∤"] = "NotVerticalBar";
+macro2utf8["Lcy"] = "Л";
+utf82macro["Л"] = "Lcy";
+macro2utf8["tprime"] = "‴";
+utf82macro["‴"] = "tprime";
+macro2utf8["precneqq"] = "⪵";
+utf82macro["⪵"] = "precneqq";
+macro2utf8["Downarrow"] = "⇓";
+utf82macro["⇓"] = "Downarrow";
+macro2utf8["rsh"] = "↱";
+utf82macro["↱"] = "rsh";
+macro2utf8["mid"] = "∣";
+utf82macro["∣"] = "mid";
+macro2utf8["blank"] = "␣";
+utf82macro["␣"] = "blank";
+macro2utf8["square"] = "□";
+utf82macro["□"] = "square";
+macro2utf8["squarf"] = "▪";
+utf82macro["▪"] = "squarf";
+macro2utf8["fflig"] = "ff";
+utf82macro["ff"] = "fflig";
+macro2utf8["downdownarrows"] = "⇊";
+utf82macro["⇊"] = "downdownarrows";
+macro2utf8["yscr"] = "𝓎";
+utf82macro["𝓎"] = "yscr";
+macro2utf8["subdot"] = "⪽";
+utf82macro["⪽"] = "subdot";
+macro2utf8["ShortRightArrow"] = "→︀";
+utf82macro["→︀"] = "ShortRightArrow";
+macro2utf8["NotCongruent"] = "≢";
+utf82macro["≢"] = "NotCongruent";
+macro2utf8["Gg"] = "⋙";
+utf82macro["⋙"] = "Gg";
+macro2utf8["Lstrok"] = "Ł";
+utf82macro["Ł"] = "Lstrok";
+macro2utf8["min"] = "max";
+utf82macro["max"] = "min";
+macro2utf8["Laplacetrf"] = "ℒ";
+utf82macro["ℒ"] = "Laplacetrf";
+macro2utf8["rarrap"] = "⥵";
+utf82macro["⥵"] = "rarrap";
+macro2utf8["NotLessSlantEqual"] = "≰";
+utf82macro["≰"] = "NotLessSlantEqual";
+macro2utf8["DoubleRightArrow"] = "⇒";
+utf82macro["⇒"] = "DoubleRightArrow";
+macro2utf8["Wfr"] = "𝔚";
+utf82macro["𝔚"] = "Wfr";
+macro2utf8["subrarr"] = "⥹";
+utf82macro["⥹"] = "subrarr";
+macro2utf8["numsp"] = " ";
+utf82macro[" "] = "numsp";
+macro2utf8["khcy"] = "х";
+utf82macro["х"] = "khcy";
+macro2utf8["oint"] = "∮";
+utf82macro["∮"] = "oint";
+macro2utf8["vprop"] = "∝";
+utf82macro["∝"] = "vprop";
+macro2utf8["hardcy"] = "ъ";
+utf82macro["ъ"] = "hardcy";
+macro2utf8["boxminus"] = "⊟";
+utf82macro["⊟"] = "boxminus";
+macro2utf8["GreaterLess"] = "≷";
+utf82macro["≷"] = "GreaterLess";
+macro2utf8["thetav"] = "ϑ";
+utf82macro["ϑ"] = "thetav";
+macro2utf8["scE"] = "≾";
+utf82macro["≾"] = "scE";
+macro2utf8["Gt"] = "≫";
+utf82macro["≫"] = "Gt";
+macro2utf8["Acy"] = "А";
+utf82macro["А"] = "Acy";
+macro2utf8["backcong"] = "≌";
+utf82macro["≌"] = "backcong";
+macro2utf8["gtquest"] = "⩼";
+utf82macro["⩼"] = "gtquest";
+macro2utf8["awint"] = "⨑";
+utf82macro["⨑"] = "awint";
+macro2utf8["profsurf"] = "⌓";
+utf82macro["⌓"] = "profsurf";
+macro2utf8["capdot"] = "⩀";
+utf82macro["⩀"] = "capdot";
+macro2utf8["supdot"] = "⪾";
+utf82macro["⪾"] = "supdot";
+macro2utf8["oelig"] = "œ";
+utf82macro["œ"] = "oelig";
+macro2utf8["doteqdot"] = "≑";
+utf82macro["≑"] = "doteqdot";
+macro2utf8["rharul"] = "⥬";
+utf82macro["⥬"] = "rharul";
+macro2utf8["cylcty"] = "⌭";
+utf82macro["⌭"] = "cylcty";
+macro2utf8["epsi"] = "ε";
+utf82macro["ε"] = "epsi";
+macro2utf8["eqcirc"] = "≖";
+utf82macro["≖"] = "eqcirc";
+macro2utf8["nLeftarrow"] = "⇍";
+utf82macro["⇍"] = "nLeftarrow";
+macro2utf8["rtrie"] = "⊵";
+utf82macro["⊵"] = "rtrie";
+macro2utf8["para"] = "¶";
+utf82macro["¶"] = "para";
+macro2utf8["Lfr"] = "𝔏";
+utf82macro["𝔏"] = "Lfr";
+macro2utf8["rtrif"] = "▸";
+utf82macro["▸"] = "rtrif";
+macro2utf8["NotReverseElement"] = "∌";
+utf82macro["∌"] = "NotReverseElement";
+macro2utf8["emptyv"] = "∅";
+utf82macro["∅"] = "emptyv";
+macro2utf8["nldr"] = "‥";
+utf82macro["‥"] = "nldr";
+macro2utf8["leqq"] = "≦";
+utf82macro["≦"] = "leqq";
+macro2utf8["CapitalDifferentialD"] = "ⅅ";
+utf82macro["ⅅ"] = "CapitalDifferentialD";
+macro2utf8["supsetneqq"] = "⊋";
+utf82macro["⊋"] = "supsetneqq";
+macro2utf8["boxDL"] = "╗";
+utf82macro["╗"] = "boxDL";
+macro2utf8["Im"] = "ℑ";
+utf82macro["ℑ"] = "Im";
+macro2utf8["sce"] = "≽";
+utf82macro["≽"] = "sce";
+macro2utf8["prsim"] = "≾";
+utf82macro["≾"] = "prsim";
+macro2utf8["diams"] = "♦";
+utf82macro["♦"] = "diams";
+macro2utf8["gtreqqless"] = "⋛";
+utf82macro["⋛"] = "gtreqqless";
+macro2utf8["boxDR"] = "╔";
+utf82macro["╔"] = "boxDR";
+macro2utf8["vartriangleleft"] = "⊲";
+utf82macro["⊲"] = "vartriangleleft";
+macro2utf8["SupersetEqual"] = "⊇";
+utf82macro["⊇"] = "SupersetEqual";
+macro2utf8["Omega"] = "Ω";
+utf82macro["Ω"] = "Omega";
+macro2utf8["nsubseteqq"] = "⊈";
+utf82macro["⊈"] = "nsubseteqq";
+macro2utf8["Subset"] = "⋐";
+utf82macro["⋐"] = "Subset";
+macro2utf8["ncongdot"] = "⩭̸";
+utf82macro["⩭̸"] = "ncongdot";
+macro2utf8["minusb"] = "⊟";
+utf82macro["⊟"] = "minusb";
+macro2utf8["ltimes"] = "⋉";
+utf82macro["⋉"] = "ltimes";
+macro2utf8["seswar"] = "⤩";
+utf82macro["⤩"] = "seswar";
+macro2utf8["part"] = "∂";
+utf82macro["∂"] = "part";
+macro2utf8["bumpE"] = "⪮";
+utf82macro["⪮"] = "bumpE";
+macro2utf8["minusd"] = "∸";
+utf82macro["∸"] = "minusd";
+macro2utf8["Amacr"] = "Ā";
+utf82macro["Ā"] = "Amacr";
+macro2utf8["nleq"] = "≰";
+utf82macro["≰"] = "nleq";
+macro2utf8["nles"] = "≰";
+utf82macro["≰"] = "nles";
+macro2utf8["NotLess"] = "≮";
+utf82macro["≮"] = "NotLess";
+macro2utf8["scy"] = "с";
+utf82macro["с"] = "scy";
+macro2utf8["iinfin"] = "⧜";
+utf82macro["⧜"] = "iinfin";
+macro2utf8["Afr"] = "𝔄";
+utf82macro["𝔄"] = "Afr";
+macro2utf8["isinsv"] = "⋳";
+utf82macro["⋳"] = "isinsv";
+macro2utf8["prnE"] = "⪵";
+utf82macro["⪵"] = "prnE";
+macro2utf8["lesg"] = "⋚︀";
+utf82macro["⋚︀"] = "lesg";
+macro2utf8["cups"] = "∪︀";
+utf82macro["∪︀"] = "cups";
+macro2utf8["thickapprox"] = "≈︀";
+utf82macro["≈︀"] = "thickapprox";
+macro2utf8["RightTeeVector"] = "⥛";
+utf82macro["⥛"] = "RightTeeVector";
+macro2utf8["LowerLeftArrow"] = "↙";
+utf82macro["↙"] = "LowerLeftArrow";
+macro2utf8["utdot"] = "⋰";
+utf82macro["⋰"] = "utdot";
+macro2utf8["homtht"] = "∻";
+utf82macro["∻"] = "homtht";
+macro2utf8["ddotseq"] = "⩷";
+utf82macro["⩷"] = "ddotseq";
+macro2utf8["bowtie"] = "⋈";
+utf82macro["⋈"] = "bowtie";
+macro2utf8["succnsim"] = "⋩";
+utf82macro["⋩"] = "succnsim";
+macro2utf8["boxDl"] = "╖";
+utf82macro["╖"] = "boxDl";
+macro2utf8["quot"] = """;
+utf82macro["""] = "quot";
+macro2utf8["lvnE"] = "≨︀";
+utf82macro["≨︀"] = "lvnE";
+macro2utf8["CircleDot"] = "⊙";
+utf82macro["⊙"] = "CircleDot";
+macro2utf8["lsime"] = "⪍";
+utf82macro["⪍"] = "lsime";
+macro2utf8["Yacute"] = "Ý";
+utf82macro["Ý"] = "Yacute";
+macro2utf8["esdot"] = "≐";
+utf82macro["≐"] = "esdot";
+macro2utf8["Supset"] = "⋑";
+utf82macro["⋑"] = "Supset";
+macro2utf8["lsimg"] = "⪏";
+utf82macro["⪏"] = "lsimg";
+macro2utf8["eDot"] = "≑";
+utf82macro["≑"] = "eDot";
+macro2utf8["sec"] = "sec";
+utf82macro["sec"] = "sec";
+macro2utf8["boxDr"] = "╓";
+utf82macro["╓"] = "boxDr";
+macro2utf8["plus"] = "+";
+utf82macro["+"] = "plus";
+macro2utf8["ddagger"] = "‡";
+utf82macro["‡"] = "ddagger";
+macro2utf8["Vdashl"] = "⫦";
+utf82macro["⫦"] = "Vdashl";
+macro2utf8["equest"] = "≟";
+utf82macro["≟"] = "equest";
+macro2utf8["quest"] = "?";
+utf82macro["?"] = "quest";
+macro2utf8["divideontimes"] = "⋇";
+utf82macro["⋇"] = "divideontimes";
+macro2utf8["nsmid"] = "∤︀";
+utf82macro["∤︀"] = "nsmid";
+macro2utf8["fnof"] = "ƒ";
+utf82macro["ƒ"] = "fnof";
+macro2utf8["bumpe"] = "≏";
+utf82macro["≏"] = "bumpe";
+macro2utf8["lhblk"] = "▄";
+utf82macro["▄"] = "lhblk";
+macro2utf8["prnap"] = "⋨";
+utf82macro["⋨"] = "prnap";
+macro2utf8["compfn"] = "∘";
+utf82macro["∘"] = "compfn";
+macro2utf8["nsucceq"] = "⪰̸";
+utf82macro["⪰̸"] = "nsucceq";
+macro2utf8["RightArrowLeftArrow"] = "⇄";
+utf82macro["⇄"] = "RightArrowLeftArrow";
+macro2utf8["sharp"] = "♯";
+utf82macro["♯"] = "sharp";
+macro2utf8["CHcy"] = "Ч";
+utf82macro["Ч"] = "CHcy";
+macro2utf8["dwangle"] = "⦦";
+utf82macro["⦦"] = "dwangle";
+macro2utf8["angrtvbd"] = "⦝";
+utf82macro["⦝"] = "angrtvbd";
+macro2utf8["period"] = ".";
+utf82macro["."] = "period";
+macro2utf8["phone"] = "☎";
+utf82macro["☎"] = "phone";
+macro2utf8["Eacute"] = "É";
+utf82macro["É"] = "Eacute";
+macro2utf8["dzigrarr"] = "";
+utf82macro[""] = "dzigrarr";
+macro2utf8["Ll"] = "⋘";
+utf82macro["⋘"] = "Ll";
+macro2utf8["succapprox"] = "≿";
+utf82macro["≿"] = "succapprox";
+macro2utf8["rarrfs"] = "⤞";
+utf82macro["⤞"] = "rarrfs";
+macro2utf8["dbkarow"] = "⤏";
+utf82macro["⤏"] = "dbkarow";
+macro2utf8["zeta"] = "ζ";
+utf82macro["ζ"] = "zeta";
+macro2utf8["Lt"] = "≪";
+utf82macro["≪"] = "Lt";
+macro2utf8["triminus"] = "⨺";
+utf82macro["⨺"] = "triminus";
+macro2utf8["odiv"] = "⨸";
+utf82macro["⨸"] = "odiv";
+macro2utf8["ltrie"] = "⊴";
+utf82macro["⊴"] = "ltrie";
+macro2utf8["Dagger"] = "‡";
+utf82macro["‡"] = "Dagger";
+macro2utf8["ltrif"] = "◂";
+utf82macro["◂"] = "ltrif";
+macro2utf8["boxHD"] = "╦";
+utf82macro["╦"] = "boxHD";
+macro2utf8["timesb"] = "⊠";
+utf82macro["⊠"] = "timesb";
+macro2utf8["check"] = "✓";
+utf82macro["✓"] = "check";
+macro2utf8["urcorn"] = "⌝";
+utf82macro["⌝"] = "urcorn";
+macro2utf8["timesd"] = "⨰";
+utf82macro["⨰"] = "timesd";
+macro2utf8["tshcy"] = "ћ";
+utf82macro["ћ"] = "tshcy";
+macro2utf8["sfr"] = "𝔰";
+utf82macro["𝔰"] = "sfr";
+macro2utf8["lmoust"] = "⎰";
+utf82macro["⎰"] = "lmoust";
+macro2utf8["ruluhar"] = "⥨";
+utf82macro["⥨"] = "ruluhar";
+macro2utf8["bne"] = "=⃥";
+utf82macro["=⃥"] = "bne";
+macro2utf8["prod"] = "∏";
+utf82macro["∏"] = "prod";
+macro2utf8["Eopf"] = "𝔼";
+utf82macro["𝔼"] = "Eopf";
+macro2utf8["scsim"] = "≿";
+utf82macro["≿"] = "scsim";
+macro2utf8["GreaterEqualLess"] = "⋛";
+utf82macro["⋛"] = "GreaterEqualLess";
+macro2utf8["Igrave"] = "Ì";
+utf82macro["Ì"] = "Igrave";
+macro2utf8["Longrightarrow"] = "⇒";
+utf82macro["⇒"] = "Longrightarrow";
+macro2utf8["bigcap"] = "⋂";
+utf82macro["⋂"] = "bigcap";
+macro2utf8["boxHU"] = "╩";
+utf82macro["╩"] = "boxHU";
+macro2utf8["uring"] = "ů";
+utf82macro["ů"] = "uring";
+macro2utf8["equivDD"] = "⩸";
+utf82macro["⩸"] = "equivDD";
+macro2utf8["prop"] = "∝";
+utf82macro["∝"] = "prop";
+macro2utf8["Lopf"] = "𝕃";
+utf82macro["𝕃"] = "Lopf";
+macro2utf8["ldrushar"] = "⥋";
+utf82macro["⥋"] = "ldrushar";
+macro2utf8["rarrhk"] = "↪";
+utf82macro["↪"] = "rarrhk";
+macro2utf8["Leftarrow"] = "⇐";
+utf82macro["⇐"] = "Leftarrow";
+macro2utf8["lltri"] = "◺";
+utf82macro["◺"] = "lltri";
+macro2utf8["NestedGreaterGreater"] = "≫";
+utf82macro["≫"] = "NestedGreaterGreater";
+macro2utf8["GreaterFullEqual"] = "≧";
+utf82macro["≧"] = "GreaterFullEqual";
+macro2utf8["robrk"] = "〛";
+utf82macro["〛"] = "robrk";
+macro2utf8["larrsim"] = "⥳";
+utf82macro["⥳"] = "larrsim";
+macro2utf8["boxHd"] = "╤";
+utf82macro["╤"] = "boxHd";
+macro2utf8["vDash"] = "⊨";
+utf82macro["⊨"] = "vDash";
+macro2utf8["hfr"] = "𝔥";
+utf82macro["𝔥"] = "hfr";
+macro2utf8["Edot"] = "Ė";
+utf82macro["Ė"] = "Edot";
+macro2utf8["Vvdash"] = "⊪";
+utf82macro["⊪"] = "Vvdash";
+macro2utf8["Sopf"] = "𝕊";
+utf82macro["𝕊"] = "Sopf";
+macro2utf8["upuparrows"] = "⇈";
+utf82macro["⇈"] = "upuparrows";
+macro2utf8["RightUpTeeVector"] = "⥜";
+utf82macro["⥜"] = "RightUpTeeVector";
+macro2utf8["DownLeftVector"] = "↽";
+utf82macro["↽"] = "DownLeftVector";
+macro2utf8["xhArr"] = "";
+utf82macro[""] = "xhArr";
+macro2utf8["triplus"] = "⨹";
+utf82macro["⨹"] = "triplus";
+macro2utf8["bot"] = "⊥";
+utf82macro["⊥"] = "bot";
+macro2utf8["Rcy"] = "Р";
+utf82macro["Р"] = "Rcy";
+macro2utf8["eDDot"] = "⩷";
+utf82macro["⩷"] = "eDDot";
+macro2utf8["subseteqq"] = "⊆";
+utf82macro["⊆"] = "subseteqq";
+macro2utf8["cirfnint"] = "⨐";
+utf82macro["⨐"] = "cirfnint";
+macro2utf8["spadesuit"] = "♠";
+utf82macro["♠"] = "spadesuit";
+macro2utf8["nacute"] = "ń";
+utf82macro["ń"] = "nacute";
+macro2utf8["Zopf"] = "ℤ";
+utf82macro["ℤ"] = "Zopf";
+macro2utf8["upharpoonleft"] = "↿";
+utf82macro["↿"] = "upharpoonleft";
+macro2utf8["shy"] = "­";
+utf82macro["­"] = "shy";
+macro2utf8["nparsl"] = "∥︀⃥";
+utf82macro["∥︀⃥"] = "nparsl";
+macro2utf8["boxHu"] = "╧";
+utf82macro["╧"] = "boxHu";
+macro2utf8["ThickSpace"] = "   ";
+utf82macro["   "] = "ThickSpace";
+macro2utf8["Or"] = "⩔";
+utf82macro["⩔"] = "Or";
+macro2utf8["raemptyv"] = "⦳";
+utf82macro["⦳"] = "raemptyv";
+macro2utf8["Aogon"] = "Ą";
+utf82macro["Ą"] = "Aogon";
+macro2utf8["IEcy"] = "Е";
+utf82macro["Е"] = "IEcy";
+macro2utf8["sim"] = "∼";
+utf82macro["∼"] = "sim";
+macro2utf8["sin"] = "sin";
+utf82macro["sin"] = "sin";
+macro2utf8["copysr"] = "℗";
+utf82macro["℗"] = "copysr";
+macro2utf8["scnap"] = "⋩";
+utf82macro["⋩"] = "scnap";
+macro2utf8["rdquo"] = "”";
+utf82macro["”"] = "rdquo";
+macro2utf8["aopf"] = "𝕒";
+utf82macro["𝕒"] = "aopf";
+macro2utf8["Pi"] = "Π";
+utf82macro["Π"] = "Pi";
+macro2utf8["Udblac"] = "Ű";
+utf82macro["Ű"] = "Udblac";
+macro2utf8["expectation"] = "ℰ";
+utf82macro["ℰ"] = "expectation";
+macro2utf8["Zacute"] = "Ź";
+utf82macro["Ź"] = "Zacute";
+macro2utf8["urtri"] = "◹";
+utf82macro["◹"] = "urtri";
+macro2utf8["NotTildeEqual"] = "≄";
+utf82macro["≄"] = "NotTildeEqual";
+macro2utf8["ncedil"] = "ņ";
+utf82macro["ņ"] = "ncedil";
+macro2utf8["Gamma"] = "Γ";
+utf82macro["Γ"] = "Gamma";
+macro2utf8["ecirc"] = "ê";
+utf82macro["ê"] = "ecirc";
+macro2utf8["dsol"] = "⧶";
+utf82macro["⧶"] = "dsol";
+macro2utf8["Gcy"] = "Г";
+utf82macro["Г"] = "Gcy";
+macro2utf8["Pr"] = "Pr";
+utf82macro["Pr"] = "Pr";
+macro2utf8["Zdot"] = "Ż";
+utf82macro["Ż"] = "Zdot";
+macro2utf8["mnplus"] = "∓";
+utf82macro["∓"] = "mnplus";
+macro2utf8["hopf"] = "𝕙";
+utf82macro["𝕙"] = "hopf";
+macro2utf8["blacktriangledown"] = "▾";
+utf82macro["▾"] = "blacktriangledown";
+macro2utf8["LeftCeiling"] = "⌈";
+utf82macro["⌈"] = "LeftCeiling";
+macro2utf8["ulcorn"] = "⌜";
+utf82macro["⌜"] = "ulcorn";
+macro2utf8["searrow"] = "↘";
+utf82macro["↘"] = "searrow";
+macro2utf8["GreaterGreater"] = "⪢";
+utf82macro["⪢"] = "GreaterGreater";
+macro2utf8["Fscr"] = "ℱ";
+utf82macro["ℱ"] = "Fscr";
+macro2utf8["cupcup"] = "⩊";
+utf82macro["⩊"] = "cupcup";
+macro2utf8["NotEqual"] = "≠";
+utf82macro["≠"] = "NotEqual";
+macro2utf8["sext"] = "✶";
+utf82macro["✶"] = "sext";
+macro2utf8["CirclePlus"] = "⊕";
+utf82macro["⊕"] = "CirclePlus";
+macro2utf8["erarr"] = "⥱";
+utf82macro["⥱"] = "erarr";
+macro2utf8["dArr"] = "⇓";
+utf82macro["⇓"] = "dArr";
+macro2utf8["PrecedesSlantEqual"] = "≼";
+utf82macro["≼"] = "PrecedesSlantEqual";
+macro2utf8["Itilde"] = "Ĩ";
+utf82macro["Ĩ"] = "Itilde";
+macro2utf8["gesdoto"] = "⪂";
+utf82macro["⪂"] = "gesdoto";
+macro2utf8["Rang"] = "》";
+utf82macro["》"] = "Rang";
+macro2utf8["nwarhk"] = "⤣";
+utf82macro["⤣"] = "nwarhk";
+macro2utf8["minusdu"] = "⨪";
+utf82macro["⨪"] = "minusdu";
+macro2utf8["oopf"] = "𝕠";
+utf82macro["𝕠"] = "oopf";
+macro2utf8["Mscr"] = "ℳ";
+utf82macro["ℳ"] = "Mscr";
+macro2utf8["Rfr"] = "ℜ";
+utf82macro["ℜ"] = "Rfr";
+macro2utf8["langle"] = "〈";
+utf82macro["〈"] = "langle";
+macro2utf8["And"] = "⩓";
+utf82macro["⩓"] = "And";
+macro2utf8["bprime"] = "‵";
+utf82macro["‵"] = "bprime";
+macro2utf8["nLeftrightarrow"] = "⇎";
+utf82macro["⇎"] = "nLeftrightarrow";
+macro2utf8["Re"] = "ℜ";
+utf82macro["ℜ"] = "Re";
+macro2utf8["OpenCurlyQuote"] = "‘";
+utf82macro["‘"] = "OpenCurlyQuote";
+macro2utf8["vopf"] = "𝕧";
+utf82macro["𝕧"] = "vopf";
+macro2utf8["ulcorner"] = "⌜";
+utf82macro["⌜"] = "ulcorner";
+macro2utf8["nap"] = "≉";
+utf82macro["≉"] = "nap";
+macro2utf8["Tscr"] = "𝒯";
+utf82macro["𝒯"] = "Tscr";
+macro2utf8["gtreqless"] = "⋛";
+utf82macro["⋛"] = "gtreqless";
+macro2utf8["rarrlp"] = "↬";
+utf82macro["↬"] = "rarrlp";
+macro2utf8["Lambda"] = "Λ";
+utf82macro["Λ"] = "Lambda";
+macro2utf8["lobrk"] = "〚";
+utf82macro["〚"] = "lobrk";
+macro2utf8["rbrace"] = "}";
+utf82macro["}"] = "rbrace";
+macro2utf8["rArr"] = "⇒";
+utf82macro["⇒"] = "rArr";
+macro2utf8["coloneq"] = "≔";
+utf82macro["≔"] = "coloneq";
+macro2utf8["UpArrow"] = "↑";
+utf82macro["↑"] = "UpArrow";
+macro2utf8["odot"] = "⊙";
+utf82macro["⊙"] = "odot";
+macro2utf8["LeftDownTeeVector"] = "⥡";
+utf82macro["⥡"] = "LeftDownTeeVector";
+macro2utf8["complexes"] = "ℂ";
+utf82macro["ℂ"] = "complexes";
+macro2utf8["rbrack"] = "]";
+utf82macro["]"] = "rbrack";
+macro2utf8["DownTeeArrow"] = "↧";
+utf82macro["↧"] = "DownTeeArrow";
+macro2utf8["sqcap"] = "⊓";
+utf82macro["⊓"] = "sqcap";
+macro2utf8["Sc"] = "⪼";
+utf82macro["⪼"] = "Sc";
+macro2utf8["ycy"] = "ы";
+utf82macro["ы"] = "ycy";
+macro2utf8["Prime"] = "″";
+utf82macro["″"] = "Prime";
+macro2utf8["Gfr"] = "𝔊";
+utf82macro["𝔊"] = "Gfr";
+macro2utf8["trianglerighteq"] = "⊵";
+utf82macro["⊵"] = "trianglerighteq";
+macro2utf8["rangd"] = "⦒";
+utf82macro["⦒"] = "rangd";
+macro2utf8["gtrdot"] = "⋗";
+utf82macro["⋗"] = "gtrdot";
+macro2utf8["range"] = "⦥";
+utf82macro["⦥"] = "range";
+macro2utf8["rsqb"] = "]";
+utf82macro["]"] = "rsqb";
+macro2utf8["Euml"] = "Ë";
+utf82macro["Ë"] = "Euml";
+macro2utf8["Therefore"] = "∴";
+utf82macro["∴"] = "Therefore";
+macro2utf8["nesim"] = "≂̸";
+utf82macro["≂̸"] = "nesim";
+macro2utf8["order"] = "ℴ";
+utf82macro["ℴ"] = "order";
+macro2utf8["vsupnE"] = "⊋︀";
+utf82macro["⊋︀"] = "vsupnE";
+macro2utf8["awconint"] = "∳";
+utf82macro["∳"] = "awconint";
+macro2utf8["bscr"] = "𝒷";
+utf82macro["𝒷"] = "bscr";
+macro2utf8["lesseqqgtr"] = "⋚";
+utf82macro["⋚"] = "lesseqqgtr";
+macro2utf8["cap"] = "∩";
+utf82macro["∩"] = "cap";
+macro2utf8["ldquo"] = "“";
+utf82macro["“"] = "ldquo";
+macro2utf8["nsubseteq"] = "⊈";
+utf82macro["⊈"] = "nsubseteq";
+macro2utf8["rhov"] = "ϱ";
+utf82macro["ϱ"] = "rhov";
+macro2utf8["xvee"] = "⋁";
+utf82macro["⋁"] = "xvee";
+macro2utf8["olarr"] = "↺";
+utf82macro["↺"] = "olarr";
+macro2utf8["nang"] = "∠̸";
+utf82macro["∠̸"] = "nang";
+macro2utf8["uwangle"] = "⦧";
+utf82macro["⦧"] = "uwangle";
+macro2utf8["nlsim"] = "≴";
+utf82macro["≴"] = "nlsim";
+macro2utf8["smt"] = "⪪";
+utf82macro["⪪"] = "smt";
+macro2utf8["nVdash"] = "⊮";
+utf82macro["⊮"] = "nVdash";
+macro2utf8["napE"] = "⩰̸";
+utf82macro["⩰̸"] = "napE";
+macro2utf8["ngeq"] = "≱";
+utf82macro["≱"] = "ngeq";
+macro2utf8["iscr"] = "𝒾";
+utf82macro["𝒾"] = "iscr";
+macro2utf8["GJcy"] = "Ѓ";
+utf82macro["Ѓ"] = "GJcy";
+macro2utf8["nges"] = "≱";
+utf82macro["≱"] = "nges";
+macro2utf8["exist"] = "∃";
+utf82macro["∃"] = "exist";
+macro2utf8["cent"] = "¢";
+utf82macro["¢"] = "cent";
+macro2utf8["oacute"] = "ó";
+utf82macro["ó"] = "oacute";
+macro2utf8["Darr"] = "↡";
+utf82macro["↡"] = "Darr";
+macro2utf8["yen"] = "¥";
+utf82macro["¥"] = "yen";
+macro2utf8["bigcirc"] = "◯";
+utf82macro["◯"] = "bigcirc";
+macro2utf8["ncy"] = "н";
+utf82macro["н"] = "ncy";
+macro2utf8["midast"] = "*";
+utf82macro["*"] = "midast";
+macro2utf8["UpperRightArrow"] = "↗";
+utf82macro["↗"] = "UpperRightArrow";
+macro2utf8["precnapprox"] = "⋨";
+utf82macro["⋨"] = "precnapprox";
+macro2utf8["OElig"] = "Œ";
+utf82macro["Œ"] = "OElig";
+macro2utf8["hybull"] = "⁃";
+utf82macro["⁃"] = "hybull";
+macro2utf8["cupbrcap"] = "⩈";
+utf82macro["⩈"] = "cupbrcap";
+macro2utf8["rationals"] = "ℚ";
+utf82macro["ℚ"] = "rationals";
+macro2utf8["VerticalTilde"] = "≀";
+utf82macro["≀"] = "VerticalTilde";
+macro2utf8["pscr"] = "𝓅";
+utf82macro["𝓅"] = "pscr";
+macro2utf8["NJcy"] = "Њ";
+utf82macro["Њ"] = "NJcy";
+macro2utf8["NotSucceedsTilde"] = "≿̸";
+utf82macro["≿̸"] = "NotSucceedsTilde";
+macro2utf8["vsupne"] = "⊋︀";
+utf82macro["⊋︀"] = "vsupne";
+macro2utf8["Updownarrow"] = "⇕";
+utf82macro["⇕"] = "Updownarrow";
+macro2utf8["Lsh"] = "↰";
+utf82macro["↰"] = "Lsh";
+macro2utf8["rAarr"] = "⇛";
+utf82macro["⇛"] = "rAarr";
+macro2utf8["precapprox"] = "≾";
+utf82macro["≾"] = "precapprox";
+macro2utf8["rsquor"] = "’";
+utf82macro["’"] = "rsquor";
+macro2utf8["pound"] = "£";
+utf82macro["£"] = "pound";
+macro2utf8["lbrksld"] = "⦏";
+utf82macro["⦏"] = "lbrksld";
+macro2utf8["gesdot"] = "⪀";
+utf82macro["⪀"] = "gesdot";
+macro2utf8["Element"] = "∈";
+utf82macro["∈"] = "Element";
+macro2utf8["xcirc"] = "◯";
+utf82macro["◯"] = "xcirc";
+macro2utf8["wscr"] = "𝓌";
+utf82macro["𝓌"] = "wscr";
+macro2utf8["toea"] = "⤨";
+utf82macro["⤨"] = "toea";
+macro2utf8["setmn"] = "∖";
+utf82macro["∖"] = "setmn";
+macro2utf8["neg"] = "¬";
+utf82macro["¬"] = "neg";
+macro2utf8["sol"] = "/";
+utf82macro["/"] = "sol";
+macro2utf8["yfr"] = "𝔶";
+utf82macro["𝔶"] = "yfr";
+macro2utf8["DoubleDownArrow"] = "⇓";
+utf82macro["⇓"] = "DoubleDownArrow";
+macro2utf8["Rarr"] = "↠";
+utf82macro["↠"] = "Rarr";
+macro2utf8["ngE"] = "≱";
+utf82macro["≱"] = "ngE";
+macro2utf8["Upsi"] = "ϒ";
+utf82macro["ϒ"] = "Upsi";
+macro2utf8["opar"] = "⦷";
+utf82macro["⦷"] = "opar";
+macro2utf8["rarrpl"] = "⥅";
+utf82macro["⥅"] = "rarrpl";
+macro2utf8["auml"] = "ä";
+utf82macro["ä"] = "auml";
+macro2utf8["bmod"] = "mod";
+utf82macro["mod"] = "bmod";
+macro2utf8["SquareSuperset"] = "⊐";
+utf82macro["⊐"] = "SquareSuperset";
+macro2utf8["neq"] = "≠";
+utf82macro["≠"] = "neq";
+macro2utf8["circleddash"] = "⊝";
+utf82macro["⊝"] = "circleddash";
+macro2utf8["xrarr"] = "";
+utf82macro[""] = "xrarr";
+macro2utf8["barwed"] = "⊼";
+utf82macro["⊼"] = "barwed";
+macro2utf8["lbrkslu"] = "⦍";
+utf82macro["⦍"] = "lbrkslu";
+macro2utf8["planckh"] = "ℎ";
+utf82macro["ℎ"] = "planckh";
+macro2utf8["ldrdhar"] = "⥧";
+utf82macro["⥧"] = "ldrdhar";
+macro2utf8["circledcirc"] = "⊚";
+utf82macro["⊚"] = "circledcirc";
+macro2utf8["ctdot"] = "⋯";
+utf82macro["⋯"] = "ctdot";
+macro2utf8["fallingdotseq"] = "≒";
+utf82macro["≒"] = "fallingdotseq";
+macro2utf8["Map"] = "⤅";
+utf82macro["⤅"] = "Map";
+macro2utf8["VerticalBar"] = "∣";
+utf82macro["∣"] = "VerticalBar";
+macro2utf8["succeq"] = "≽";
+utf82macro["≽"] = "succeq";
+macro2utf8["tint"] = "∭";
+utf82macro["∭"] = "tint";
+macro2utf8["imof"] = "⊷";
+utf82macro["⊷"] = "imof";
+macro2utf8["diam"] = "⋄";
+utf82macro["⋄"] = "diam";
+macro2utf8["twixt"] = "≬";
+utf82macro["≬"] = "twixt";
+macro2utf8["NoBreak"] = "";
+utf82macro[""] = "NoBreak";
+macro2utf8["langd"] = "⦑";
+utf82macro["⦑"] = "langd";
+macro2utf8["Bernoullis"] = "ℬ";
+utf82macro["ℬ"] = "Bernoullis";
+macro2utf8["rcaron"] = "ř";
+utf82macro["ř"] = "rcaron";
+macro2utf8["hom"] = "hom";
+utf82macro["hom"] = "hom";
+macro2utf8["nfr"] = "𝔫";
+utf82macro["𝔫"] = "nfr";
+macro2utf8["backsimeq"] = "⋍";
+utf82macro["⋍"] = "backsimeq";
+macro2utf8["target"] = "⌖";
+utf82macro["⌖"] = "target";
+macro2utf8["ouml"] = "ö";
+utf82macro["ö"] = "ouml";
+macro2utf8["nge"] = "≱⃥";
+utf82macro["≱⃥"] = "nge";
+macro2utf8["LeftTriangleBar"] = "⧏";
+utf82macro["⧏"] = "LeftTriangleBar";
+macro2utf8["subplus"] = "⪿";
+utf82macro["⪿"] = "subplus";
+macro2utf8["parsim"] = "⫳";
+utf82macro["⫳"] = "parsim";
+macro2utf8["Gcedil"] = "Ģ";
+utf82macro["Ģ"] = "Gcedil";
+macro2utf8["bnequiv"] = "≡⃥";
+utf82macro["≡⃥"] = "bnequiv";
+macro2utf8["ubreve"] = "ŭ";
+utf82macro["ŭ"] = "ubreve";
+macro2utf8["iexcl"] = "¡";
+utf82macro["¡"] = "iexcl";
+macro2utf8["Xi"] = "Ξ";
+utf82macro["Ξ"] = "Xi";
+macro2utf8["omega"] = "ω";
+utf82macro["ω"] = "omega";
+macro2utf8["elsdot"] = "⪗";
+utf82macro["⪗"] = "elsdot";
+macro2utf8["propto"] = "∝";
+utf82macro["∝"] = "propto";
+macro2utf8["squ"] = "□";
+utf82macro["□"] = "squ";
+macro2utf8["Ycirc"] = "Ŷ";
+utf82macro["Ŷ"] = "Ycirc";
+macro2utf8["amacr"] = "ā";
+utf82macro["ā"] = "amacr";
+macro2utf8["curlyeqprec"] = "⋞";
+utf82macro["⋞"] = "curlyeqprec";
+macro2utf8["ngt"] = "≯";
+utf82macro["≯"] = "ngt";
+macro2utf8["plusdo"] = "∔";
+utf82macro["∔"] = "plusdo";
+macro2utf8["ngeqslant"] = "≱";
+utf82macro["≱"] = "ngeqslant";
+macro2utf8["LongRightArrow"] = "";
+utf82macro[""] = "LongRightArrow";
+macro2utf8["LeftUpVector"] = "↿";
+utf82macro["↿"] = "LeftUpVector";
+macro2utf8["asymp"] = "≍";
+utf82macro["≍"] = "asymp";
+macro2utf8["imped"] = "𝕃";
+utf82macro["𝕃"] = "imped";
+macro2utf8["tritime"] = "⨻";
+utf82macro["⨻"] = "tritime";
+macro2utf8["rpargt"] = "⦔";
+utf82macro["⦔"] = "rpargt";
+macro2utf8["DDotrahd"] = "⤑";
+utf82macro["⤑"] = "DDotrahd";
+macro2utf8["prnsim"] = "⋨";
+utf82macro["⋨"] = "prnsim";
+macro2utf8["plusdu"] = "⨥";
+utf82macro["⨥"] = "plusdu";
+macro2utf8["cfr"] = "𝔠";
+utf82macro["𝔠"] = "cfr";
+macro2utf8["abreve"] = "ă";
+utf82macro["ă"] = "abreve";
+macro2utf8["suphsol"] = "⊃/";
+utf82macro["⊃/"] = "suphsol";
+macro2utf8["NegativeThickSpace"] = " ︀";
+utf82macro[" ︀"] = "NegativeThickSpace";
+macro2utf8["Mcy"] = "М";
+utf82macro["М"] = "Mcy";
+macro2utf8["uarr"] = "↑";
+utf82macro["↑"] = "uarr";
+macro2utf8["LeftRightVector"] = "⥎";
+utf82macro["⥎"] = "LeftRightVector";
+macro2utf8["lAarr"] = "⇚";
+utf82macro["⇚"] = "lAarr";
+macro2utf8["bsim"] = "∽";
+utf82macro["∽"] = "bsim";
+macro2utf8["simrarr"] = "⥲";
+utf82macro["⥲"] = "simrarr";
+macro2utf8["otimes"] = "⊗";
+utf82macro["⊗"] = "otimes";
+macro2utf8["NotSucceeds"] = "⊁";
+utf82macro["⊁"] = "NotSucceeds";
+macro2utf8["Cross"] = "⨯";
+utf82macro["⨯"] = "Cross";
+macro2utf8["downarrow"] = "↓";
+utf82macro["↓"] = "downarrow";
+macro2utf8["blacktriangle"] = "▴";
+utf82macro["▴"] = "blacktriangle";
+macro2utf8["TripleDot"] = "⃛";
+utf82macro["⃛"] = "TripleDot";
+macro2utf8["smallsetminus"] = "∖︀";
+utf82macro["∖︀"] = "smallsetminus";
+macro2utf8["supedot"] = "⫄";
+utf82macro["⫄"] = "supedot";
+macro2utf8["NotPrecedesSlantEqual"] = "⋠";
+utf82macro["⋠"] = "NotPrecedesSlantEqual";
+macro2utf8["neArr"] = "⇗";
+utf82macro["⇗"] = "neArr";
+macro2utf8["rarrtl"] = "↣";
+utf82macro["↣"] = "rarrtl";
+macro2utf8["isin"] = "∈";
+utf82macro["∈"] = "isin";
+macro2utf8["rrarr"] = "⇉";
+utf82macro["⇉"] = "rrarr";
+macro2utf8["Upsilon"] = "ϒ";
+utf82macro["ϒ"] = "Upsilon";
+macro2utf8["sqsub"] = "⊏";
+utf82macro["⊏"] = "sqsub";
+macro2utf8["boxUL"] = "╝";
+utf82macro["╝"] = "boxUL";
+macro2utf8["LessTilde"] = "≲";
+utf82macro["≲"] = "LessTilde";
+macro2utf8["Xfr"] = "𝔛";
+utf82macro["𝔛"] = "Xfr";
+macro2utf8["nis"] = "⋼";
+utf82macro["⋼"] = "nis";
+macro2utf8["chi"] = "χ";
+utf82macro["χ"] = "chi";
+macro2utf8["DownRightVector"] = "⇁";
+utf82macro["⇁"] = "DownRightVector";
+macro2utf8["niv"] = "∋";
+utf82macro["∋"] = "niv";
+macro2utf8["boxUR"] = "╚";
+utf82macro["╚"] = "boxUR";
+macro2utf8["nlArr"] = "⇍";
+utf82macro["⇍"] = "nlArr";
+macro2utf8["Bcy"] = "Б";
+utf82macro["Б"] = "Bcy";
+macro2utf8["tan"] = "tan";
+utf82macro["tan"] = "tan";
+macro2utf8["EmptyVerySmallSquare"] = "";
+utf82macro[""] = "EmptyVerySmallSquare";
+macro2utf8["dstrok"] = "đ";
+utf82macro["đ"] = "dstrok";
+macro2utf8["rfisht"] = "⥽";
+utf82macro["⥽"] = "rfisht";
+macro2utf8["easter"] = "≛";
+utf82macro["≛"] = "easter";
+macro2utf8["nlE"] = "≰";
+utf82macro["≰"] = "nlE";
+macro2utf8["Mellintrf"] = "ℳ";
+utf82macro["ℳ"] = "Mellintrf";
+macro2utf8["lotimes"] = "⨴";
+utf82macro["⨴"] = "lotimes";
+macro2utf8["sqsup"] = "⊐";
+utf82macro["⊐"] = "sqsup";
+macro2utf8["boxVH"] = "╬";
+utf82macro["╬"] = "boxVH";
+macro2utf8["bbrk"] = "⎵";
+utf82macro["⎵"] = "bbrk";
+macro2utf8["tau"] = "τ";
+utf82macro["τ"] = "tau";
+macro2utf8["UpTee"] = "⊥";
+utf82macro["⊥"] = "UpTee";
+macro2utf8["NotLeftTriangleBar"] = "⧏̸";
+utf82macro["⧏̸"] = "NotLeftTriangleBar";
+macro2utf8["boxVL"] = "╣";
+utf82macro["╣"] = "boxVL";
+macro2utf8["Proportion"] = "∷";
+utf82macro["∷"] = "Proportion";
+macro2utf8["equiv"] = "≡";
+utf82macro["≡"] = "equiv";
+macro2utf8["blk12"] = "▒";
+utf82macro["▒"] = "blk12";
+macro2utf8["blk14"] = "░";
+utf82macro["░"] = "blk14";
+macro2utf8["fpartint"] = "⨍";
+utf82macro["⨍"] = "fpartint";
+macro2utf8["boxVR"] = "╠";
+utf82macro["╠"] = "boxVR";
+macro2utf8["starf"] = "★";
+utf82macro["★"] = "starf";
+macro2utf8["risingdotseq"] = "≓";
+utf82macro["≓"] = "risingdotseq";
+macro2utf8["Equilibrium"] = "⇌";
+utf82macro["⇌"] = "Equilibrium";
+macro2utf8["ijlig"] = "ij";
+utf82macro["ij"] = "ijlig";
+macro2utf8["yicy"] = "ї";
+utf82macro["ї"] = "yicy";
+macro2utf8["sum"] = "∑";
+utf82macro["∑"] = "sum";
+macro2utf8["cir"] = "○";
+utf82macro["○"] = "cir";
+macro2utf8["telrec"] = "⌕";
+utf82macro["⌕"] = "telrec";
+macro2utf8["Mfr"] = "𝔐";
+utf82macro["𝔐"] = "Mfr";
+macro2utf8["dHar"] = "⥥";
+utf82macro["⥥"] = "dHar";
+macro2utf8["boxUl"] = "╜";
+utf82macro["╜"] = "boxUl";
+macro2utf8["apid"] = "≋";
+utf82macro["≋"] = "apid";
+macro2utf8["nleftarrow"] = "↚";
+utf82macro["↚"] = "nleftarrow";
+macro2utf8["curarrm"] = "⤼";
+utf82macro["⤼"] = "curarrm";
+macro2utf8["Scirc"] = "Ŝ";
+utf82macro["Ŝ"] = "Scirc";
+macro2utf8["Copf"] = "ℂ";
+utf82macro["ℂ"] = "Copf";
+macro2utf8["RightTriangleEqual"] = "⊵";
+utf82macro["⊵"] = "RightTriangleEqual";
+macro2utf8["boxUr"] = "╙";
+utf82macro["╙"] = "boxUr";
+macro2utf8["loplus"] = "⨭";
+utf82macro["⨭"] = "loplus";
+macro2utf8["varsupsetneq"] = "⊋︀";
+utf82macro["⊋︀"] = "varsupsetneq";
+macro2utf8["scaron"] = "š";
+utf82macro["š"] = "scaron";
+macro2utf8["Diamond"] = "⋄";
+utf82macro["⋄"] = "Diamond";
+macro2utf8["lowast"] = "∗";
+utf82macro["∗"] = "lowast";
+macro2utf8["nle"] = "≰⃥";
+utf82macro["≰⃥"] = "nle";
+macro2utf8["phiv"] = "ϕ";
+utf82macro["ϕ"] = "phiv";
+macro2utf8["gesdotol"] = "⪄";
+utf82macro["⪄"] = "gesdotol";
+macro2utf8["boxVh"] = "╫";
+utf82macro["╫"] = "boxVh";
+macro2utf8["nleftrightarrow"] = "↮";
+utf82macro["↮"] = "nleftrightarrow";
+macro2utf8["Jopf"] = "𝕁";
+utf82macro["𝕁"] = "Jopf";
+macro2utf8["boxVl"] = "╢";
+utf82macro["╢"] = "boxVl";
+macro2utf8["nearhk"] = "⤤";
+utf82macro["⤤"] = "nearhk";
+macro2utf8["vBarv"] = "⫩";
+utf82macro["⫩"] = "vBarv";
+macro2utf8["rHar"] = "⥤";
+utf82macro["⥤"] = "rHar";
+macro2utf8["boxVr"] = "╟";
+utf82macro["╟"] = "boxVr";
+macro2utf8["lessdot"] = "⋖";
+utf82macro["⋖"] = "lessdot";
+macro2utf8["LeftDoubleBracket"] = "〚";
+utf82macro["〚"] = "LeftDoubleBracket";
+macro2utf8["Delta"] = "Δ";
+utf82macro["Δ"] = "Delta";
+macro2utf8["limsup"] = "limsup";
+utf82macro["limsup"] = "limsup";
+macro2utf8["tcy"] = "т";
+utf82macro["т"] = "tcy";
+macro2utf8["nlt"] = "≮";
+utf82macro["≮"] = "nlt";
+macro2utf8["Cdot"] = "Ċ";
+utf82macro["Ċ"] = "Cdot";
+macro2utf8["blk34"] = "▓";
+utf82macro["▓"] = "blk34";
+macro2utf8["Bfr"] = "𝔅";
+utf82macro["𝔅"] = "Bfr";
+macro2utf8["lowbar"] = "_";
+utf82macro["_"] = "lowbar";
+macro2utf8["lneqq"] = "≨";
+utf82macro["≨"] = "lneqq";
+macro2utf8["TildeEqual"] = "≃";
+utf82macro["≃"] = "TildeEqual";
+macro2utf8["shortmid"] = "∣︀";
+utf82macro["∣︀"] = "shortmid";
+macro2utf8["Qopf"] = "ℚ";
+utf82macro["ℚ"] = "Qopf";
+macro2utf8["drcorn"] = "⌟";
+utf82macro["⌟"] = "drcorn";
+macro2utf8["ZeroWidthSpace"] = "​";
+utf82macro["​"] = "ZeroWidthSpace";
+macro2utf8["aogon"] = "ą";
+utf82macro["ą"] = "aogon";
+macro2utf8["Rsh"] = "↱";
+utf82macro["↱"] = "Rsh";
+macro2utf8["lrarr"] = "⇆";
+utf82macro["⇆"] = "lrarr";
+macro2utf8["cupdot"] = "⊍";
+utf82macro["⊍"] = "cupdot";
+macro2utf8["Xopf"] = "𝕏";
+utf82macro["𝕏"] = "Xopf";
+macro2utf8["Backslash"] = "∖";
+utf82macro["∖"] = "Backslash";
+macro2utf8["Union"] = "⋃";
+utf82macro["⋃"] = "Union";
+macro2utf8["ratio"] = "∶";
+utf82macro["∶"] = "ratio";
+macro2utf8["duarr"] = "⇵";
+utf82macro["⇵"] = "duarr";
+macro2utf8["lates"] = "⪭︀";
+utf82macro["⪭︀"] = "lates";
+macro2utf8["suphsub"] = "⫗";
+utf82macro["⫗"] = "suphsub";
+macro2utf8["squf"] = "▪";
+utf82macro["▪"] = "squf";
+macro2utf8["gamma"] = "γ";
+utf82macro["γ"] = "gamma";
+macro2utf8["lrhard"] = "⥭";
+utf82macro["⥭"] = "lrhard";
+macro2utf8["intprod"] = "⨼";
+utf82macro["⨼"] = "intprod";
+macro2utf8["ReverseUpEquilibrium"] = "⥯";
+utf82macro["⥯"] = "ReverseUpEquilibrium";
+macro2utf8["icy"] = "и";
+utf82macro["и"] = "icy";
+macro2utf8["quatint"] = "⨖";
+utf82macro["⨖"] = "quatint";
+macro2utf8["nbump"] = "≎̸";
+utf82macro["≎̸"] = "nbump";
+macro2utf8["downharpoonleft"] = "⇃";
+utf82macro["⇃"] = "downharpoonleft";
+macro2utf8["otimesas"] = "⨶";
+utf82macro["⨶"] = "otimesas";
+macro2utf8["nvHarr"] = "⇎";
+utf82macro["⇎"] = "nvHarr";
+macro2utf8["ContourIntegral"] = "∮";
+utf82macro["∮"] = "ContourIntegral";
+macro2utf8["bsol"] = "\\";
+utf82macro["\\"] = "bsol";
+macro2utf8["DoubleUpDownArrow"] = "⇕";
+utf82macro["⇕"] = "DoubleUpDownArrow";
+macro2utf8["disin"] = "⋲";
+utf82macro["⋲"] = "disin";
+macro2utf8["Breve"] = "˘";
+utf82macro["˘"] = "Breve";
+macro2utf8["YAcy"] = "Я";
+utf82macro["Я"] = "YAcy";
+macro2utf8["precsim"] = "≾";
+utf82macro["≾"] = "precsim";
+macro2utf8["NotGreaterGreater"] = "≫̸︀";
+utf82macro["≫̸︀"] = "NotGreaterGreater";
+macro2utf8["fopf"] = "𝕗";
+utf82macro["𝕗"] = "fopf";
+macro2utf8["SquareSupersetEqual"] = "⊒";
+utf82macro["⊒"] = "SquareSupersetEqual";
+macro2utf8["Dscr"] = "𝒟";
+utf82macro["𝒟"] = "Dscr";
+macro2utf8["gsime"] = "⪎";
+utf82macro["⪎"] = "gsime";
+macro2utf8["PartialD"] = "∂";
+utf82macro["∂"] = "PartialD";
+macro2utf8["Umacr"] = "Ū";
+utf82macro["Ū"] = "Umacr";
+macro2utf8["tfr"] = "𝔱";
+utf82macro["𝔱"] = "tfr";
+macro2utf8["cularrp"] = "⤽";
+utf82macro["⤽"] = "cularrp";
+macro2utf8["UnderBracket"] = "⎵";
+utf82macro["⎵"] = "UnderBracket";
+macro2utf8["ugrave"] = "ù";
+utf82macro["ù"] = "ugrave";
+macro2utf8["mopf"] = "𝕞";
+utf82macro["𝕞"] = "mopf";
+macro2utf8["gsiml"] = "⪐";
+utf82macro["⪐"] = "gsiml";
+macro2utf8["iquest"] = "¿";
+utf82macro["¿"] = "iquest";
+macro2utf8["nmid"] = "∤";
+utf82macro["∤"] = "nmid";
+macro2utf8["leftarrowtail"] = "↢";
+utf82macro["↢"] = "leftarrowtail";
+macro2utf8["not"] = "¬";
+utf82macro["¬"] = "not";
+macro2utf8["Kscr"] = "𝒦";
+utf82macro["𝒦"] = "Kscr";
+macro2utf8["xsqcup"] = "⊔";
+utf82macro["⊔"] = "xsqcup";
+macro2utf8["triangleleft"] = "◃";
+utf82macro["◃"] = "triangleleft";
+macro2utf8["amalg"] = "⨿";
+utf82macro["⨿"] = "amalg";
+macro2utf8["prcue"] = "≼";
+utf82macro["≼"] = "prcue";
+macro2utf8["ac"] = "⤏";
+utf82macro["⤏"] = "ac";
+macro2utf8["nharr"] = "↮";
+utf82macro["↮"] = "nharr";
+macro2utf8["dzcy"] = "џ";
+utf82macro["џ"] = "dzcy";
+macro2utf8["topf"] = "𝕥";
+utf82macro["𝕥"] = "topf";
+macro2utf8["iff"] = "⇔";
+utf82macro["⇔"] = "iff";
+macro2utf8["af"] = "⁡";
+utf82macro["⁡"] = "af";
+macro2utf8["Uparrow"] = "⇑";
+utf82macro["⇑"] = "Uparrow";
+macro2utf8["Iacute"] = "Í";
+utf82macro["Í"] = "Iacute";
+macro2utf8["Rscr"] = "ℛ";
+utf82macro["ℛ"] = "Rscr";
+macro2utf8["vrtri"] = "⊳";
+utf82macro["⊳"] = "vrtri";
+macro2utf8["multimap"] = "⊸";
+utf82macro["⊸"] = "multimap";
+macro2utf8["Hat"] = "̂";
+utf82macro["̂"] = "Hat";
+macro2utf8["rtriltri"] = "⧎";
+utf82macro["⧎"] = "rtriltri";
+macro2utf8["npr"] = "⊀";
+utf82macro["⊀"] = "npr";
+macro2utf8["agrave"] = "à";
+utf82macro["à"] = "agrave";
+macro2utf8["UnderBar"] = "̲";
+utf82macro["̲"] = "UnderBar";
+macro2utf8["prime"] = "′";
+utf82macro["′"] = "prime";
+macro2utf8["plusmn"] = "±";
+utf82macro["±"] = "plusmn";
+macro2utf8["eplus"] = "⩱";
+utf82macro["⩱"] = "eplus";
+macro2utf8["ap"] = "≈";
+utf82macro["≈"] = "ap";
+macro2utf8["dlcorn"] = "⌞";
+utf82macro["⌞"] = "dlcorn";
+macro2utf8["backsim"] = "∽";
+utf82macro["∽"] = "backsim";
+macro2utf8["ifr"] = "𝔦";
+utf82macro["𝔦"] = "ifr";
+macro2utf8["bigcup"] = "⋃";
+utf82macro["⋃"] = "bigcup";
+macro2utf8["tcaron"] = "ť";
+utf82macro["ť"] = "tcaron";
+macro2utf8["sqcaps"] = "⊓︀";
+utf82macro["⊓︀"] = "sqcaps";
+macro2utf8["equals"] = "=";
+utf82macro["="] = "equals";
+macro2utf8["curlywedge"] = "⋏";
+utf82macro["⋏"] = "curlywedge";
+macro2utf8["Yscr"] = "𝒴";
+utf82macro["𝒴"] = "Yscr";
+macro2utf8["longrightarrow"] = "????";
+utf82macro["????"] = "longrightarrow";
+macro2utf8["fork"] = "⋔";
+utf82macro["⋔"] = "fork";
+macro2utf8["cos"] = "cos";
+utf82macro["cos"] = "cos";
+macro2utf8["cot"] = "cot";
+utf82macro["cot"] = "cot";
+macro2utf8["ImaginaryI"] = "ⅈ";
+utf82macro["ⅈ"] = "ImaginaryI";
+macro2utf8["Scy"] = "С";
+utf82macro["С"] = "Scy";
+macro2utf8["mapsto"] = "↦";
+utf82macro["↦"] = "mapsto";
+macro2utf8["tdot"] = "⃛";
+utf82macro["⃛"] = "tdot";
+macro2utf8["vellip"] = "⋮";
+utf82macro["⋮"] = "vellip";
+macro2utf8["sqsupseteq"] = "⊒";
+utf82macro["⊒"] = "sqsupseteq";
+macro2utf8["nvdash"] = "⊬";
+utf82macro["⊬"] = "nvdash";
+macro2utf8["NotSuperset"] = "⊅";
+utf82macro["⊅"] = "NotSuperset";
+macro2utf8["DoubleUpArrow"] = "⇑";
+utf82macro["⇑"] = "DoubleUpArrow";
+macro2utf8["land"] = "∧";
+utf82macro["∧"] = "land";
+macro2utf8["topfork"] = "⫚";
+utf82macro["⫚"] = "topfork";
+macro2utf8["llhard"] = "⥫";
+utf82macro["⥫"] = "llhard";
+macro2utf8["apos"] = "'";
+utf82macro["'"] = "apos";
+macro2utf8["oslash"] = "ø";
+utf82macro["ø"] = "oslash";
+macro2utf8["lang"] = "〈";
+utf82macro["〈"] = "lang";
+macro2utf8["bernou"] = "ℬ";
+utf82macro["ℬ"] = "bernou";
+macro2utf8["varrho"] = "ϱ";
+utf82macro["ϱ"] = "varrho";
+macro2utf8["rcub"] = "}";
+utf82macro["}"] = "rcub";
+macro2utf8["Cedilla"] = "¸";
+utf82macro["¸"] = "Cedilla";
+macro2utf8["ApplyFunction"] = "⁡";
+utf82macro["⁡"] = "ApplyFunction";
+macro2utf8["nsce"] = "⪰̸";
+utf82macro["⪰̸"] = "nsce";
+macro2utf8["gscr"] = "ℊ";
+utf82macro["ℊ"] = "gscr";
+macro2utf8["imagpart"] = "ℑ";
+utf82macro["ℑ"] = "imagpart";
+macro2utf8["ngtr"] = "≯";
+utf82macro["≯"] = "ngtr";
+macro2utf8["nsc"] = "⊁";
+utf82macro["⊁"] = "nsc";
+macro2utf8["Barv"] = "⫧";
+utf82macro["⫧"] = "Barv";
+macro2utf8["tosa"] = "⤩";
+utf82macro["⤩"] = "tosa";
+macro2utf8["nwnear"] = "⤧";
+utf82macro["⤧"] = "nwnear";
+macro2utf8["ltlarr"] = "⥶";
+utf82macro["⥶"] = "ltlarr";
+macro2utf8["PrecedesEqual"] = "⪯";
+utf82macro["⪯"] = "PrecedesEqual";
+macro2utf8["lessapprox"] = "≲";
+utf82macro["≲"] = "lessapprox";
+macro2utf8["Lcaron"] = "Ľ";
+utf82macro["Ľ"] = "Lcaron";
let user_tbl = (ref [] : user list ref)
-(* session table: session id, (user id, matita status, matita history *)
-type session = session_id * (string * MatitaEngine.status * MatitaEngine.status list)
+(* low users can't commit or update *)
+let luser_tbl = (ref [] : user list ref)
+
+(* session table: session id, (user id, matita status, matita history, commit privileges *)
+type session = session_id * (string * MatitaEngine.status * MatitaEngine.status list * bool)
let session_tbl = (ref [] : session list ref)
exception UsernameCollision of string
exception InvalidPassword
-let lookup_user uid = List.assoc uid !user_tbl
+(* returns user entry and privileges *)
+let lookup_user uid =
+ try List.assoc uid !user_tbl, true
+ with Not_found -> List.assoc uid !luser_tbl, false
+
+let user_of_session sid = let res,_,_,_ = List.assoc sid !session_tbl in res
-let user_of_session sid = let res,_,_ = List.assoc sid !session_tbl in res
+(* disable for debugging *)
+let prerr_endline _ = ()
+(* used for commits, so lusers are excluded *)
let get_users () = List.map fst !user_tbl
let create_session uid =
let status = new MatitaEngine.status (Some uid) "cic:/matita" in
let history = [status] in
- let salt,pw,sid = List.assoc uid !user_tbl in
- let clean_utbl = List.remove_assoc uid !user_tbl in
+ let (salt,pw,sid),cp = lookup_user uid in
let new_session = Uuidm.create `V4 in
- user_tbl := (uid,(salt,pw,Some new_session))::clean_utbl;
+ (if cp then
+ let clean_utbl = List.remove_assoc uid !user_tbl in
+ user_tbl := (uid,(salt,pw,Some new_session))::clean_utbl
+ else
+ let clean_lutbl = List.remove_assoc uid !luser_tbl in
+ luser_tbl := (uid,(salt,pw,Some new_session))::clean_lutbl);
let clean_stbl = match sid with
| Some sid' ->
List.remove_assoc sid' !session_tbl
| _ -> !session_tbl
in
- session_tbl := (new_session,(uid,status,history))::clean_stbl;
+ session_tbl := (new_session,(uid,status,history,cp))::clean_stbl;
new_session
;;
let get_session_owner sid =
- let uid,_,_ = List.assoc sid !session_tbl
+ let uid,_,_,_ = List.assoc sid !session_tbl
in uid
let get_status sid =
- let _,st,_ = List.assoc sid !session_tbl
+ let _,st,_,_ = List.assoc sid !session_tbl
in st
let get_history sid =
- let _,_,hist = List.assoc sid !session_tbl
+ let _,_,hist,_ = List.assoc sid !session_tbl
in hist
+let get_commit_priv sid =
+ let _,_,_,cp = List.assoc sid !session_tbl
+ in cp
+
+let probe_commit_priv sid =
+ let _,_,_,cp = List.assoc sid !session_tbl in
+ if not cp then failwith "no commit privileges"
+
let set_status sid st =
- let uid, oldst, hist = List.assoc sid !session_tbl in
- session_tbl := (sid,(uid,st,hist))::(List.remove_assoc sid !session_tbl)
+ let uid, oldst, hist, cp = List.assoc sid !session_tbl in
+ session_tbl := (sid,(uid,st,hist,cp))::(List.remove_assoc sid !session_tbl)
let set_history sid hist =
- let uid, st, oldhist = List.assoc sid !session_tbl in
- session_tbl := (sid,(uid,st,hist))::(List.remove_assoc sid !session_tbl)
+ let uid, st, oldhist, cp = List.assoc sid !session_tbl in
+ session_tbl := (sid,(uid,st,hist,cp))::(List.remove_assoc sid !session_tbl)
let logout_user sid =
- let uid,st,hist = List.assoc sid !session_tbl in
- let salt,pw,_ = List.assoc uid !user_tbl in
- user_tbl := (uid,(salt,pw,None))::List.remove_assoc uid !user_tbl;
+ let uid,st,hist,cp = List.assoc sid !session_tbl in
+ (if cp then
+ let salt,pw,_ = List.assoc uid !user_tbl in
+ user_tbl := (uid,(salt,pw,None))::List.remove_assoc uid !user_tbl
+ else
+ let salt,pw,_ = List.assoc uid !luser_tbl in
+ luser_tbl := (uid,(salt,pw,None))::List.remove_assoc uid !luser_tbl);
session_tbl := List.remove_assoc sid !session_tbl
;;
let remove_user uid =
- user_tbl := List.remove_assoc uid !user_tbl
+ user_tbl := List.remove_assoc uid !user_tbl;
+ luser_tbl := List.remove_assoc uid !luser_tbl
;;
(* serialization and deserialization of the user table *)
let serialize () =
let clean_utbl = List.map (fun (uid,(salt,pw,_)) -> uid,(salt,pw,None)) !user_tbl in
+ let clean_lutbl = List.map (fun (uid,(salt,pw,_)) -> uid,(salt,pw,None)) !luser_tbl in
let utbl_ch = open_out (config_path () ^ "/usertable.dump") in
Marshal.to_channel utbl_ch clean_utbl [];
close_out utbl_ch;
+ let lutbl_ch = open_out (config_path () ^ "/lusertable.dump") in
+ Marshal.to_channel lutbl_ch clean_lutbl [];
+ close_out lutbl_ch
;;
let deserialize () =
with
| Sys_error _ ->
user_tbl := []; serialize());
+ (try
+ let lutbl_ch = open_in (config_path () ^ "/lusertable.dump") in
+ luser_tbl := Marshal.from_channel lutbl_ch;
+ close_in lutbl_ch;
+ with
+ | Sys_error _ ->
+ luser_tbl := []; serialize());
(* old_sessions are now invalid *)
session_tbl := [];
;;
write_ft uid (ft'@ft)
;;
-let add_user uid pw =
+let add_user uid pw cp =
try
let _ = lookup_user uid in
raise (UsernameCollision uid)
let sha256 = Cryptokit.Hash.sha256 () in
sha256#add_string (salt ^ pw);
let crypto_pw = sha256#result in
- user_tbl := (uid,(salt,crypto_pw,None))::!user_tbl;
+ (if cp then
+ user_tbl := (uid,(salt,crypto_pw,None))::!user_tbl
+ else
+ luser_tbl := (uid,(salt,crypto_pw,None))::!luser_tbl);
write_ft uid ft;
serialize ()
;;
-let add_user_no_checkout uid pw =
+let add_user_no_checkout uid pw cp =
try
let _ = lookup_user uid in
raise (UsernameCollision uid)
sha256#add_string (salt ^ pw);
let crypto_pw = sha256#result in
sha256#wipe;
- user_tbl := (uid,(salt,crypto_pw,None))::!user_tbl;
+ (if cp then
+ user_tbl := (uid,(salt,crypto_pw,None))::!user_tbl
+ else
+ luser_tbl := (uid,(salt,crypto_pw,None))::!luser_tbl);
serialize ()
;;
let check_pw uid pw =
try
- let salt,crypto_pw,_ = lookup_user uid in
+ let (salt,crypto_pw,_),_ = lookup_user uid in
let sha256 = Cryptokit.Hash.sha256 () in
sha256#add_string (salt ^ pw);
let computed_pw = sha256#result in
let reset () =
user_tbl := [];
+ luser_tbl := [];
session_tbl := [];
MatitaFilesystem.reset_lib ();
serialize ();
exception UsernameCollision of string
exception InvalidPassword
-val lookup_user : string -> (string * string * session_id option)
+val lookup_user : string -> (string * string * session_id option) * bool
val user_of_session : session_id -> string
val get_history : session_id -> MatitaEngine.status list
+val get_commit_priv : session_id -> bool
+
+val probe_commit_priv : session_id -> unit
+
val set_status : session_id -> MatitaEngine.status -> unit
val set_history : session_id -> MatitaEngine.status list -> unit
val set_file_flag :
string -> (string * MatitaFilesystem.matita_flag option) list -> unit
-val add_user : string -> string -> unit
+val add_user : string -> string -> bool -> unit
-val add_user_no_checkout : string -> string -> unit
+val add_user_no_checkout : string -> string -> bool -> unit
val check_pw : string -> string -> unit
exception SvnError of string;;
+(* disable for debugging *)
+let prerr_endline _ = ()
+
let exec_process cmd =
let (stdout, stdin, stderr) as chs = Unix.open_process_full cmd [||] in
let outlines = ref [] in
let rt_dir = Helm_registry.get "matita.rt_base_dir" in
let repo = Helm_registry.get "matita.weblib" in
- let errno, outlines, errlines = exec_process
+ let errno, outlines, errlines =
+ prerr_endline
+ ("svn co --non-interactive " ^ repo ^ " " ^ rt_dir ^ "/users/" ^ user ^ "/");
+ exec_process
("svn co --non-interactive " ^ repo ^ " " ^ rt_dir ^ "/users/" ^ user ^ "/")
in
let files, anomalies =
status :=
List.fold_left (fun s f -> f s) !status
(conf_components @ other_components);
- NCicLibrary.init ()
+ (* library for single user mode *)
+ NCicLibrary.init None
let parse_cmdline_and_configuration_file () =
status := List.fold_left (fun s f -> f s) !status conf_components
module Stack = Continuationals.Stack
+(* disable for debug *)
+let prerr_endline _ = ()
+
let rt_path () = Helm_registry.get "matita.rt_base_dir"
let libdir uid = (rt_path ()) ^ "/users/" ^ uid
Printf.sprintf "\005A href=\"%s\"\006%s\005/A\006"
(NReference.string_of_reference r) (NCicPp.r2s status true r)
in
- if trace = [] then "{}"
- else String.concat ", "
+ (*if trace = [] then "{}"
+ else*) String.concat ", "
(HExtlib.filter_map (function
| NotationPt.NRef r -> Some (href r)
| _ -> None)
Http_daemon.respond ~headers:["Content-Type", contenttype] ~code:(`Code 200) ~body:s outchan
;;
-let retrieve (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+let retrieve (cgi : Netcgi.cgi_activation) =
let env = cgi#environment in
(try
let sid = Uuidm.of_string (Netcgi.Cookie.value (env#cookie "session")) in
let history = MatitaAuthentication.get_history sid in
let status = status#reset_disambiguate_db () in
let (st,new_statements,new_unparsed),parsed_len =
- try
- eval_statement !include_paths (*buffer*) status (`Raw text)
- with
- | HExtlib.Localized (floc,e) as exn ->
+ let rec do_exc = function
+ | HExtlib.Localized (floc,e) ->
let x, y = HExtlib.loc_of_floc floc in
- prerr_endline (Printf.sprintf "ustring_sub caso 2: (%d,%d) parsed=%s" 0 x text);
let pre = Netconversion.ustring_sub `Enc_utf8 0 x text in
- prerr_endline (Printf.sprintf "ustring_sub caso 3: (%d,%d) parsed=%s" x (y-x) text);
let err = Netconversion.ustring_sub `Enc_utf8 x (y-x) text in
- prerr_endline (Printf.sprintf "ustring_sub caso 4: (%d,%d) parsed=%s" y (Netconversion.ustring_length `Enc_utf8 text - y) text);
let post = Netconversion.ustring_sub `Enc_utf8 y
(Netconversion.ustring_length `Enc_utf8 text - y) text in
- let _,title = MatitaExcPp.to_string exn in
+ let _,title = MatitaExcPp.to_string e in
(* let title = "" in *)
let marked =
pre ^ "\005span class=\"error\" title=\"" ^ title ^ "\"\006" ^ err ^ "\005/span\006" ^ post in
let marked = Netencoding.Html.encode ~in_enc:`Enc_utf8 ~prefer_name:false
() (html_of_matita marked) in
- raise (Emphasized_error marked)
+ raise (Emphasized_error marked)
+ | Disambiguate.NoWellTypedInterpretation (floc,e) ->
+ let x, y = HExtlib.loc_of_floc floc in
+ let pre = Netconversion.ustring_sub `Enc_utf8 0 x text in
+ let err = Netconversion.ustring_sub `Enc_utf8 x (y-x) text in
+ let post = Netconversion.ustring_sub `Enc_utf8 y
+ (Netconversion.ustring_length `Enc_utf8 text - y) text in
+ (*let _,title = MatitaExcPp.to_string e in*)
+ (* let title = "" in *)
+ let marked =
+ pre ^ "\005span class=\"error\" title=\"" ^ e ^ "\"\006" ^ err ^ "\005/span\006" ^ post in
+ let marked = Netencoding.Html.encode ~in_enc:`Enc_utf8 ~prefer_name:false
+ () (html_of_matita marked) in
+ raise (Emphasized_error marked)
+ | NCicRefiner.Uncertain m as exn ->
+ let floc, e = Lazy.force m in
+ let x, y = HExtlib.loc_of_floc floc in
+ let pre = Netconversion.ustring_sub `Enc_utf8 0 x text in
+ let err = Netconversion.ustring_sub `Enc_utf8 x (y-x) text in
+ let post = Netconversion.ustring_sub `Enc_utf8 y
+ (Netconversion.ustring_length `Enc_utf8 text - y) text in
+ (* let _,title = MatitaExcPp.to_string e in *)
+ (* let title = "" in *)
+ let marked =
+ pre ^ "\005span class=\"error\" title=\"" ^ e ^ "\"\006" ^ err ^ "\005/span\006" ^ post in
+ let marked = Netencoding.Html.encode ~in_enc:`Enc_utf8 ~prefer_name:false
+ () (html_of_matita marked) in
+ raise (Emphasized_error marked)
| NTacStatus.Error (s,None) as e ->
prerr_endline
- ("NTacStatus.Error " ^ (Lazy.force s));
- raise e
+ ("NTacStatus.Error " ^ (Lazy.force s)); raise e
| NTacStatus.Error (s,Some exc) as e ->
prerr_endline
("NTacStatus.Error " ^ Lazy.force s ^ " -- " ^ (Printexc.to_string exc));
- raise e
+ do_exc exc
| GrafiteDisambiguate.Ambiguous_input (loc,choices) ->
let x,y = HExtlib.loc_of_floc loc in
let choice_of_alias = function
in raise (Disamb_error strchoices)
| GrafiteDisambiguate.Error l -> raise (Disamb_error (xml_of_disamb_error l))
(* | End_of_file -> ... *)
+ | e -> raise e
+ in
+
+ try
+ eval_statement !include_paths (*buffer*) status (`Raw text)
+ with e -> do_exc e
in
MatitaAuthentication.set_status sid st;
MatitaAuthentication.set_history sid (st::history);
+(* prerr_endline "previous timestamp";
+ status#print_timestamp();
+ prerr_endline "current timestamp";
+ st#print_timestamp(); *)
parsed_len,
Netencoding.Html.encode ~in_enc:`Enc_utf8 ~prefer_name:false
() (html_of_matita new_statements), new_unparsed, st
-let register (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+let register (cgi : Netcgi.cgi_activation) =
let _env = cgi#environment in
assert (cgi#arguments <> []);
let uid = cgi#argument_value "userid" in
let userpw = cgi#argument_value "password" in
- (try
- MatitaAuthentication.add_user uid userpw;
+ (try
+ (* currently registering only unprivileged users *)
+ MatitaAuthentication.add_user uid userpw false;
(* env#set_output_header_field "Location" "/index.html" *)
cgi#out_channel#output_string
("<html><head><meta http-equiv=\"refresh\" content=\"2;url=/login.html\">"
cgi#out_channel#commit_work()
;;
-let login (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+let login (cgi : Netcgi.cgi_activation) =
let env = cgi#environment in
assert (cgi#arguments <> []);
let userpw = cgi#argument_value "password" in
(try
MatitaAuthentication.check_pw uid userpw;
+ NCicLibrary.init (Some uid);
let ft = MatitaAuthentication.read_ft uid in
let _ = MatitaFilesystem.html_of_library uid ft in
let sid = MatitaAuthentication.create_session uid in
cgi#out_channel#commit_work()
;;
-let logout (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+let logout (cgi : Netcgi.cgi_activation) =
let env = cgi#environment in
(try
let sid = Uuidm.of_string (Netcgi.Cookie.value (env#cookie "session")) in
exception File_already_exists;;
-let save (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+let save (cgi : Netcgi.cgi_activation) =
let env = cgi#environment in
(try
let sid = Uuidm.of_string (Netcgi.Cookie.value (env#cookie "session")) in
cgi#out_channel#commit_work()
;;
-let initiate_commit (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
- let _env = cgi#environment in
+let initiate_commit (cgi : Netcgi.cgi_activation) =
+ let env = cgi#environment in
(try
+ let sid = Uuidm.of_string (Netcgi.Cookie.value (env#cookie "session")) in
+ let sid = HExtlib.unopt sid in
+ MatitaAuthentication.probe_commit_priv sid;
let out = do_global_commit () in
cgi # set_header
~cache:`No_cache
cgi#out_channel#commit_work()
;;
-let svn_update (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+let svn_update (cgi : Netcgi.cgi_activation) =
let env = cgi#environment in
let sid = Uuidm.of_string (Netcgi.Cookie.value (env#cookie "session")) in
let sid = HExtlib.unopt sid in
let uid = MatitaAuthentication.user_of_session sid in
(try
+ MatitaAuthentication.probe_commit_priv sid;
let files,anomalies,(added,conflict,del,upd,merged) =
MatitaFilesystem.update_user uid
in
(* returns the length of the executed text and an html representation of the
* current metasenv*)
-let advance (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+(*let advance =*)
+let advance (cgi : Netcgi.cgi_activation) =
+ (* let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in *)
let env = cgi#environment in
(try
let sid = Uuidm.of_string (Netcgi.Cookie.value (env#cookie "session")) in
cgi#out_channel#commit_work()
;;
-let gotoBottom (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+let gotoBottom (cgi : Netcgi.cgi_activation) =
let env = cgi#environment in
(* (try *)
let sid = Uuidm.of_string (Netcgi.Cookie.value (env#cookie "session")) in
let sid = HExtlib.unopt sid in
- let history = MatitaAuthentication.get_history sid in
let error_msg = function
| Emphasized_error text -> "<localized>" ^ text ^ "</localized>"
prerr_endline ("evaluating: " ^ first_line text);
let plen,new_parsed,new_unparsed,_new_status = advance0 sid text in
aux ((plen,new_parsed)::acc) new_unparsed
- with e ->
+ with e -> acc, error_msg e
+ (* DON'T SERIALIZE NOW!!!
let status = MatitaAuthentication.get_status sid in
GrafiteTypes.Serializer.serialize
~baseuri:(NUri.uri_of_string status#baseuri) status;
- acc, error_msg e
+ acc, error_msg e *)
in
(*
cgi # set_header
cgi#out_channel#commit_work()
;;
-let gotoTop (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+let gotoTop (cgi : Netcgi.cgi_activation) =
let env = cgi#environment in
prerr_endline "executing goto Top";
(try
cgi#out_channel#commit_work()
;;
-let retract (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+let retract (cgi : Netcgi.cgi_activation) =
let env = cgi#environment in
(try
let sid = Uuidm.of_string (Netcgi.Cookie.value (env#cookie "session")) in
();
*)
let history = MatitaAuthentication.get_history sid in
+ let old_status = MatitaAuthentication.get_status sid in
let new_history,new_status =
match history with
_::(status::_ as history) ->
history, status
| [_] -> (prerr_endline "singleton";failwith "retract")
| _ -> (prerr_endline "nil"; assert false) in
- prerr_endline ("prima della time travel");
+(* prerr_endline "timestamp prima della retract";
+ old_status#print_timestamp ();
+ prerr_endline "timestamp della retract";
+ new_status#print_timestamp ();
+ prerr_endline ("prima della time travel"); *)
NCicLibrary.time_travel new_status;
prerr_endline ("dopo della time travel");
MatitaAuthentication.set_history sid new_history;
;;
-let viewLib (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+let viewLib (cgi : Netcgi.cgi_activation) =
let env = cgi#environment in
let sid = Uuidm.of_string (Netcgi.Cookie.value (env#cookie "session")) in
;;
-let resetLib (cgi : Netcgi1_compat.Netcgi_types.cgi_activation) =
- let cgi = Netcgi1_compat.Netcgi_types.of_compat_activation cgi in
+let resetLib (cgi : Netcgi.cgi_activation) =
MatitaAuthentication.reset ();
cgi # set_header
~cache:`No_cache
#!
-./matitadaemon -conf netplex.conf
+rm -f nohup.out
+echo running matitaweb
+#nohup ./matitadaemon -conf netplex.conf
+./matitadaemon -conf netplex.conf 2> /dev/null
tags[i].parentNode.insertBefore(children[j],tags[i]);
}
}
- while (tags.length > 0) {
+ for (var i = 0;tags.length > i;i++) {
tags[0].parentNode.removeChild(tags[0]);
}
}
// len1 = unlocked.innerHTML.length;
// len2 = len0 - len1;
var len2 = parsedtxt.length;
- var metasenv = xml.getElementsByTagName("meta");
+ metasenv = xml.getElementsByTagName("meta");
statements = listcons(len2,statements);
unlocked.scrollIntoView(true);
return len;
disambcell.appendChild(okbutton);
disambcell.appendChild(cancelbutton);
- disable_toparea();
-
matita.disambMode = true;
updateSide();
throw "Stop";
}
else if (is_defined(disamberr)) {
- set_cps(disamberr.childNodes);
- matita.unlockedbackup = unlocked.innerHTML.html_to_matita();
- matita.disambMode = true;
- disable_toparea();
- next_cp(0);
+ // must be fixed in a daemon: it makes sense to return a
+ // disambiguation error with no choices
+ if (disamberr.childNodes.length > 0) {
+ set_cps(disamberr.childNodes);
+ matita.unlockedbackup = unlocked.innerHTML.html_to_matita();
+ matita.disambMode = true;
+ next_cp(0);
+ }
throw "Stop";
}
else {
var href = choices[j].getAttribute("href");
var title = choices[j].getAttribute("title");
var desc;
- if (is_defined(title)) {
+ if (is_defined(title) && title != null) {
desc = title;
- } else if (is_defined(href)) {
+ } else if (is_defined(href) && href != null) {
desc = href;
} else {
- desc = "Preliminary error";
+ desc = null;
}
res[j] = document.createElement("input");
res[j].setAttribute("choiceno",j);
res[j].setAttribute("href",href);
res[j].setAttribute("title",title);
- res[j].setAttribute("desc",desc);
+ if (desc != null) res[j].setAttribute("desc",desc);
if (j == 0) res[j].setAttribute("checked","");
}
var mid = unlockedtxt.substring(start,stop).matita_to_html();
var post = unlockedtxt.substring(stop).matita_to_html();
unlocked.innerHTML = pre +
- "<span class=\"error\" title=\"disambiguation failed\">" +
+ "<span class=\"error\" title=\"error location\">" +
mid + "</span>" + post;
- var title = "<H3>Disambiguation failed</H3>";
+ var title = "<H3>Error diagnostics</H3>";
disambcell.innerHTML = title;
var choices = get_choice_opts(curcp);
for (var i = 0;i < choices.length;i++) {
disambcell.appendChild(choices[i]);
- disambcell.appendChild(document.createTextNode(choices[i].getAttribute("desc")));
+ var desc = choices[i].getAttribute("desc");
+ if (!is_defined(desc) || desc == null) {
+ desc = "Interpretation " + i;
+ }
+ disambcell.appendChild(document.createTextNode(desc));
disambcell.appendChild(document.createElement("br"));
}
var choiceno = parseInt(choice.getAttribute("choiceno"));
var choicedesc = choice.getAttribute("desc");
- var title = "<H3>Disambiguation failed</H3>";
- var subtitle = "<p>Errors at node " + cpno + " = " + choicedesc + "</p>";
+ var title = "<H3>Error diagnostics</H3>";
+ var subtitle;
+ if (is_defined(choicedesc) && choicedesc != null) {
+ subtitle = "<p>Errors at node " + cpno + " = " + choicedesc + "</p>";
+ } else {
+ subtitle = "<p>Global errors:</p>";
+ }
disambcell.innerHTML = title + subtitle;
var failures = get_failure_opts(cpno,choiceno);
var localized = xml.getElementsByTagName("localized")[0];
var ambiguity = xml.getElementsByTagName("ambiguity")[0];
var generic_err = xml.getElementsByTagName("error")[0];
+ var disamberr = xml.getElementsByTagName("disamberror")[0];
for (var i = 0;i < parsed.length; i++) {
var len = parsed[i].getAttribute("length");
// len0 = unlocked.innerHTML.length;
disambcell.appendChild(okbutton);
disambcell.appendChild(cancelbutton);
- disable_toparea();
-
matita.disambMode = true;
updateSide();
}
- if (is_defined(localized)) {
- unlocked.innerHTML = localized.wholeText;
+ else if (is_defined(disamberr)) {
+ // must be fixed in a daemon: it makes sense to return a
+ // disambiguation error with no choices
+ if (disamberr.childNodes.length > 0) {
+ set_cps(disamberr.childNodes);
+ matita.unlockedbackup = unlocked.innerHTML.html_to_matita();
+ matita.disambMode = true;
+ next_cp(0);
+ }
+ throw "Stop";
+ }
+ else if (is_defined(localized)) {
+ unlocked.innerHTML = localized.childNodes[0].wholeText;
}
- if (is_defined(generic_err)) {
- debug("Unmanaged error:\n" ^ generic_err.wholeText);
+ else if (is_defined(generic_err)) {
+ debug("Unmanaged error:\n" ^ generic_err.childNodes[0].wholeText);
}
} else {
debug("goto bottom failed");
}
resume();
};
- debug("retract 1");
pause();
callServer("retract",processor);
- debug("retract 2");
}
function openFile()
{
if (is_defined(xml)) {
changeFile(thefile);
+ matita.disambMode = false;
+ matita.proofMode = false;
+ updateSide();
lockedbackup = ""
locked.innerHTML = lockedbackup;
// code originally used in google chrome (problems with mozilla)
debug("file open failed");
}
};
- abortDialog();
+ abortDialog("dialogBox");
callServer("open",processor,"file=" + escape(thefile));
}
function uploadOK()
{
var file = document.getElementById("uploadFilename").files[0];
- if (file) {
- var filecontent = file.getAsText("UTF-8");
- locked.innerHTML = lockedbackup;
- unlocked.innerHTML = filecontent;
- uploadBox.style.display = "none";
- }
// if (file) {
-// var reader = new FileReader();
-// reader.readAsText(file, "UTF-8");
-// reader.onloadend = function (evt) {
-// lockedbackup = "";
-// locked.innerHTML = lockedbackup
-// unlocked.innerHTML = evt.target.result;
-// uploadBox.style.display = "none";
-// }
-// reader.onerror = function (evt) {
-// debug("file open failed");
-// uploadBox.style.display = "none";
-// }
+// var filecontent = file.getAsText("UTF-8");
+// locked.innerHTML = lockedbackup;
+// unlocked.innerHTML = filecontent;
+// uploadBox.style.display = "none";
// }
+ if (file) {
+ var reader = new FileReader();
+ reader.onerror = function (evt) {
+ debug("file open failed");
+ }
+ reader.onload = function (evt) {
+ lockedbackup = "";
+ locked.innerHTML = lockedbackup;
+ unlocked.innerHTML = "";
+ unlocked.appendChild(document.createTextNode(evt.target.result));
+ uploadBox.style.display = "none";
+ }
+ try { reader.readAsText(file, "UTF-8"); }
+ catch (err) { /* nothing to do */ };
+ uploadBox.style.display = "none";
+ }
}
function openDialog()
function saveDialog()
{
callback = function (fname) {
- abortDialog();
+ abortDialog("dialogBox");
saveFile(fname,
(locked.innerHTML.html_to_matita()).sescape(),
(unlocked.innerHTML.html_to_matita()).sescape(),
function newDialog()
{
callback = function (fname) {
- abortDialog();
+ abortDialog("dialogBox");
saveFile(fname,"","",false,newDialog,true);
};
showLibrary("Create new file", callback, newDialog);
}
function createDir() {
- abortDialog();
+ abortDialog("dialogBox");
dirname = prompt("New directory name:\ncic:/matita/","newdir");
if (dirname != null) {
processor = function(xml) {
alert("Commit executed: see details in the log.\n\n" +
"NOTICE: this message does NOT imply (yet) that the commit was successful.");
} else {
- alert("Commit failed!");
+ alert("Commit failed!\n(maybe you don't have permissionis to commit?)");
}
resume();
};
"Details:\n" +
xml.getElementsByTagName("details")[0].textContent);
} else {
- alert("Update failed!");
+ alert("Update failed!\n(maybe you don't have permissions to update?)");
}
resume();
};
}
function abortDialog(dialog) {
+ document.getElementById(dialog).style.display = "none";
$('#mask').hide();
- dialogBox.style.display = "none";
}
function removeElement(id) {
function cancel_disambiguate() {
matita.disambMode = false;
- enable_toparea();
- enable_editing();
+ resume();
+ // enable_toparea();
+ // enable_editing();
+ strip_tags("span","error");
updateSide();
}
// retractButton.disabled = false;
// cursorButton.disabled = false;
// bottomButton.disabled = false;
- enable_toparea();
- enable_editing();
+ if (!matita.disambMode) {
+ enable_toparea();
+ enable_editing();
+ }
}
path = "/";
service {
type = "file";
- docroot = "/home/matitaweb/matita/matita";
+ docroot = "/home/matitaweb/matita/matita/html";
media_types_file = "/etc/mime.types";
enable_listings = true;
}
utf82macro["⋭"] = "NotRightTriangleEqual";
macro2utf8["filig"] = "fi";
utf82macro["fi"] = "filig";
-macro2utf8["atilde"] = "ã";
-utf82macro["ã"] = "atilde";
+macro2utf8["atilde"] = "ã";
+utf82macro["ã"] = "atilde";
macro2utf8["ring"] = "˚";
utf82macro["˚"] = "ring";
macro2utf8["congdot"] = "⩭";
utf82macro["ŷ"] = "ycirc";
macro2utf8["sqcup"] = "⊔";
utf82macro["⊔"] = "sqcup";
-macro2utf8["DoubleLeftArrow"] = "⇐";
-utf82macro["⇐"] = "DoubleLeftArrow";
+macro2utf8["DoubleLeftArrow"] = "⇐";
+utf82macro["⇐"] = "DoubleLeftArrow";
macro2utf8["gtrless"] = "≷";
utf82macro["≷"] = "gtrless";
-macro2utf8["ge"] = "≥";
-utf82macro["≥"] = "ge";
-macro2utf8["Product"] = "∏";
-utf82macro["∏"] = "Product";
+macro2utf8["ge"] = "≥";
+utf82macro["≥"] = "ge";
+macro2utf8["Product"] = "∏";
+utf82macro["∏"] = "Product";
macro2utf8["NotExists"] = "∄";
utf82macro["∄"] = "NotExists";
macro2utf8["gg"] = "≫";
utf82macro["!"] = "excl";
macro2utf8["cdots"] = "⋯";
utf82macro["⋯"] = "cdots";
-macro2utf8["larr"] = "←";
-utf82macro["←"] = "larr";
+macro2utf8["larr"] = "←";
+utf82macro["←"] = "larr";
macro2utf8["dtdot"] = "⋱";
utf82macro["⋱"] = "dtdot";
macro2utf8["kgreen"] = "ĸ";
utf82macro["⤍"] = "rbarr";
macro2utf8["ocy"] = "о";
utf82macro["о"] = "ocy";
-macro2utf8["gt"] = ">";
-utf82macro[">"] = "gt";
+macro2utf8["gt"] = ">";
+utf82macro[">"] = "gt";
macro2utf8["DownLeftRightVector"] = "⥐";
utf82macro["⥐"] = "DownLeftRightVector";
-macro2utf8["cup"] = "∪";
-utf82macro["∪"] = "cup";
+macro2utf8["cup"] = "∪";
+utf82macro["∪"] = "cup";
macro2utf8["updownarrow"] = "↕";
utf82macro["↕"] = "updownarrow";
macro2utf8["Imacr"] = "Ī";
utf82macro["Ī"] = "Imacr";
macro2utf8["cross"] = "✗";
utf82macro["✗"] = "cross";
-macro2utf8["Acirc"] = "Â";
-utf82macro["Â"] = "Acirc";
+macro2utf8["Acirc"] = "Â";
+utf82macro["Â"] = "Acirc";
macro2utf8["lvertneqq"] = "≨︀";
utf82macro["≨︀"] = "lvertneqq";
macro2utf8["ccaps"] = "⩍";
utf82macro["|"] = "vert";
macro2utf8["sacute"] = "ś";
utf82macro["ś"] = "sacute";
-macro2utf8["in"] = "∈";
-utf82macro["∈"] = "in";
+macro2utf8["in"] = "∈";
+utf82macro["∈"] = "in";
macro2utf8["Assign"] = "≔";
utf82macro["≔"] = "Assign";
macro2utf8["nsim"] = "≁";
utf82macro["≁"] = "nsim";
macro2utf8["boxdR"] = "╒";
utf82macro["╒"] = "boxdR";
-macro2utf8["o"] = "ο";
-utf82macro["ο"] = "o";
-macro2utf8["radic"] = "√";
-utf82macro["√"] = "radic";
+macro2utf8["o"] = "ο";
+utf82macro["ο"] = "o";
+macro2utf8["radic"] = "√";
+utf82macro["√"] = "radic";
macro2utf8["it"] = "⁢";
utf82macro["⁢"] = "it";
-macro2utf8["int"] = "∫";
-utf82macro["∫"] = "int";
+macro2utf8["int"] = "∫";
+utf82macro["∫"] = "int";
macro2utf8["cwint"] = "∱";
utf82macro["∱"] = "cwint";
-macro2utf8["ForAll"] = "∀";
-utf82macro["∀"] = "ForAll";
+macro2utf8["ForAll"] = "∀";
+utf82macro["∀"] = "ForAll";
macro2utf8["simplus"] = "⨤";
utf82macro["⨤"] = "simplus";
macro2utf8["isindot"] = "⋵";
utf82macro["⋵"] = "isindot";
macro2utf8["rightthreetimes"] = "⋌";
utf82macro["⋌"] = "rightthreetimes";
-macro2utf8["supseteqq"] = "⊇";
-utf82macro["⊇"] = "supseteqq";
+macro2utf8["supseteqq"] = "⊇";
+utf82macro["⊇"] = "supseteqq";
macro2utf8["bnot"] = "⌐";
utf82macro["⌐"] = "bnot";
macro2utf8["rppolint"] = "⨒";
utf82macro["⥑"] = "LeftUpDownVector";
macro2utf8["questeq"] = "≟";
utf82macro["≟"] = "questeq";
-macro2utf8["leftarrow"] = "←";
-utf82macro["←"] = "leftarrow";
+macro2utf8["leftarrow"] = "←";
+utf82macro["←"] = "leftarrow";
macro2utf8["Ycy"] = "Ы";
utf82macro["Ы"] = "Ycy";
macro2utf8["Coproduct"] = "∐";
utf82macro["┐"] = "boxdl";
macro2utf8["Aopf"] = "𝔸";
utf82macro["𝔸"] = "Aopf";
-macro2utf8["srarr"] = "→︀";
-utf82macro["→︀"] = "srarr";
+macro2utf8["srarr"] = "→︀";
+utf82macro["→︀"] = "srarr";
macro2utf8["lbrke"] = "⦋";
utf82macro["⦋"] = "lbrke";
macro2utf8["boxdr"] = "┌";
utf82macro["┌"] = "boxdr";
-macro2utf8["Ntilde"] = "Ñ";
-utf82macro["Ñ"] = "Ntilde";
+macro2utf8["Ntilde"] = "Ñ";
+utf82macro["Ñ"] = "Ntilde";
macro2utf8["gnap"] = "⪊";
utf82macro["⪊"] = "gnap";
macro2utf8["Cap"] = "⋒";
utf82macro["⤦"] = "swarhk";
macro2utf8["ogt"] = "⧁";
utf82macro["⧁"] = "ogt";
-macro2utf8["emptyset"] = "∅︀";
-utf82macro["∅︀"] = "emptyset";
+macro2utf8["emptyset"] = "∅︀";
+utf82macro["∅︀"] = "emptyset";
macro2utf8["harrw"] = "↭";
utf82macro["↭"] = "harrw";
macro2utf8["lbarr"] = "⤌";
utf82macro["⤌"] = "lbarr";
-macro2utf8["Tilde"] = "∼";
-utf82macro["∼"] = "Tilde";
-macro2utf8["delta"] = "δ";
-utf82macro["δ"] = "delta";
+macro2utf8["Tilde"] = "∼";
+utf82macro["∼"] = "Tilde";
+macro2utf8["delta"] = "δ";
+utf82macro["δ"] = "delta";
macro2utf8["Hopf"] = "ℍ";
utf82macro["ℍ"] = "Hopf";
macro2utf8["dfr"] = "𝔡";
utf82macro["𝔡"] = "dfr";
-macro2utf8["le"] = "≤";
-utf82macro["≤"] = "le";
+macro2utf8["le"] = "≤";
+utf82macro["≤"] = "le";
macro2utf8["lg"] = "lg";
utf82macro["lg"] = "lg";
macro2utf8["ohm"] = "Ω";
utf82macro[""] = "DoubleLongLeftArrow";
macro2utf8["Ncy"] = "Н";
utf82macro["Н"] = "Ncy";
-macro2utf8["nabla"] = "∇";
-utf82macro["∇"] = "nabla";
+macro2utf8["nabla"] = "∇";
+utf82macro["∇"] = "nabla";
macro2utf8["ltcir"] = "⩹";
utf82macro["⩹"] = "ltcir";
macro2utf8["ll"] = "≪";
utf82macro["⎱"] = "rmoust";
macro2utf8["Oopf"] = "𝕆";
utf82macro["𝕆"] = "Oopf";
-macro2utf8["nbsp"] = " ";
-utf82macro[" "] = "nbsp";
+macro2utf8["nbsp"] = " ";
+utf82macro[" "] = "nbsp";
macro2utf8["Kcedil"] = "Ķ";
utf82macro["Ķ"] = "Kcedil";
macro2utf8["vdots"] = "⋮";
utf82macro["⋮"] = "vdots";
macro2utf8["NotLessTilde"] = "≴";
utf82macro["≴"] = "NotLessTilde";
-macro2utf8["lt"] = "<";
-utf82macro["<"] = "lt";
+macro2utf8["lt"] = "<";
+utf82macro["<"] = "lt";
macro2utf8["djcy"] = "ђ";
utf82macro["ђ"] = "djcy";
macro2utf8["DownRightTeeVector"] = "⥟";
utf82macro["⥟"] = "DownRightTeeVector";
-macro2utf8["Ograve"] = "Ò";
-utf82macro["Ò"] = "Ograve";
+macro2utf8["Ograve"] = "Ò";
+utf82macro["Ò"] = "Ograve";
macro2utf8["boxhD"] = "╥";
utf82macro["╥"] = "boxhD";
macro2utf8["nsime"] = "≄";
utf82macro["↬"] = "looparrowright";
macro2utf8["yucy"] = "ю";
utf82macro["ю"] = "yucy";
-macro2utf8["trade"] = "™";
-utf82macro["™"] = "trade";
+macro2utf8["trade"] = "™";
+utf82macro["™"] = "trade";
macro2utf8["Yfr"] = "𝔜";
utf82macro["𝔜"] = "Yfr";
macro2utf8["kjcy"] = "ќ";
utf82macro["⩃"] = "ncap";
macro2utf8["Iogon"] = "Į";
utf82macro["Į"] = "Iogon";
-macro2utf8["NotSubset"] = "⊄";
-utf82macro["⊄"] = "NotSubset";
+macro2utf8["NotSubset"] = "⊄";
+utf82macro["⊄"] = "NotSubset";
macro2utf8["Bumpeq"] = "≎";
utf82macro["≎"] = "Bumpeq";
-macro2utf8["mu"] = "μ";
-utf82macro["μ"] = "mu";
+macro2utf8["mu"] = "μ";
+utf82macro["μ"] = "mu";
macro2utf8["FilledVerySmallSquare"] = "";
utf82macro[""] = "FilledVerySmallSquare";
macro2utf8["breve"] = "˘";
utf82macro["˘"] = "breve";
macro2utf8["boxhU"] = "╨";
utf82macro["╨"] = "boxhU";
-macro2utf8["Sigma"] = "Σ";
-utf82macro["Σ"] = "Sigma";
+macro2utf8["Sigma"] = "Σ";
+utf82macro["Σ"] = "Sigma";
macro2utf8["uharr"] = "↾";
utf82macro["↾"] = "uharr";
macro2utf8["xrArr"] = "";
utf82macro[""] = "xrArr";
-macro2utf8["ne"] = "≠";
-utf82macro["≠"] = "ne";
+macro2utf8["ne"] = "≠";
+utf82macro["≠"] = "ne";
macro2utf8["oS"] = "Ⓢ";
utf82macro["Ⓢ"] = "oS";
macro2utf8["xodot"] = "⊙";
utf82macro["⊙"] = "xodot";
-macro2utf8["ni"] = "∋";
-utf82macro["∋"] = "ni";
-macro2utf8["mdash"] = "—";
-utf82macro["—"] = "mdash";
+macro2utf8["ni"] = "∋";
+utf82macro["∋"] = "ni";
+macro2utf8["mdash"] = "—";
+utf82macro["—"] = "mdash";
macro2utf8["Verbar"] = "‖";
utf82macro["‖"] = "Verbar";
-macro2utf8["die"] = "¨";
-utf82macro["¨"] = "die";
+macro2utf8["die"] = "¨";
+utf82macro["¨"] = "die";
macro2utf8["veebar"] = "⊻";
utf82macro["⊻"] = "veebar";
macro2utf8["UpArrowBar"] = "⤒";
utf82macro["⇥"] = "RightArrowBar";
macro2utf8["LongLeftArrow"] = "";
utf82macro[""] = "LongLeftArrow";
-macro2utf8["rceil"] = "⌉";
-utf82macro["⌉"] = "rceil";
+macro2utf8["rceil"] = "⌉";
+utf82macro["⌉"] = "rceil";
macro2utf8["LeftDownVectorBar"] = "⥙";
utf82macro["⥙"] = "LeftDownVectorBar";
macro2utf8["umacr"] = "ū";
utf82macro["┬"] = "boxhd";
macro2utf8["dim"] = "dim";
utf82macro["dim"] = "dim";
-macro2utf8["vnsub"] = "⊄";
-utf82macro["⊄"] = "vnsub";
+macro2utf8["vnsub"] = "⊄";
+utf82macro["⊄"] = "vnsub";
macro2utf8["Bscr"] = "ℬ";
utf82macro["ℬ"] = "Bscr";
macro2utf8["plussim"] = "⨦";
utf82macro["⨦"] = "plussim";
macro2utf8["doublebarwedge"] = "⌆";
utf82macro["⌆"] = "doublebarwedge";
-macro2utf8["nu"] = "ν";
-utf82macro["ν"] = "nu";
+macro2utf8["nu"] = "ν";
+utf82macro["ν"] = "nu";
macro2utf8["eqcolon"] = "≕";
utf82macro["≕"] = "eqcolon";
macro2utf8["luruhar"] = "⥦";
utf82macro["⪯"] = "preceq";
macro2utf8["LeftTee"] = "⊣";
utf82macro["⊣"] = "LeftTee";
-macro2utf8["div"] = "÷";
-utf82macro["÷"] = "div";
+macro2utf8["div"] = "÷";
+utf82macro["÷"] = "div";
macro2utf8["nVDash"] = "⊯";
utf82macro["⊯"] = "nVDash";
macro2utf8["kopf"] = "𝕜";
utf82macro["┴"] = "boxhu";
macro2utf8["ominus"] = "⊖";
utf82macro["⊖"] = "ominus";
-macro2utf8["or"] = "∨";
-utf82macro["∨"] = "or";
+macro2utf8["or"] = "∨";
+utf82macro["∨"] = "or";
macro2utf8["lesdot"] = "⩿";
utf82macro["⩿"] = "lesdot";
macro2utf8["RightVectorBar"] = "⥓";
utf82macro["⋪"] = "nltri";
macro2utf8["Pscr"] = "𝒫";
utf82macro["𝒫"] = "Pscr";
-macro2utf8["vartheta"] = "ϑ";
-utf82macro["ϑ"] = "vartheta";
-macro2utf8["therefore"] = "∴";
-utf82macro["∴"] = "therefore";
-macro2utf8["pi"] = "π";
-utf82macro["π"] = "pi";
+macro2utf8["vartheta"] = "ϑ";
+utf82macro["ϑ"] = "vartheta";
+macro2utf8["therefore"] = "∴";
+utf82macro["∴"] = "therefore";
+macro2utf8["pi"] = "π";
+utf82macro["π"] = "pi";
macro2utf8["ntrianglelefteq"] = "⋬";
utf82macro["⋬"] = "ntrianglelefteq";
macro2utf8["nearrow"] = "↗";
utf82macro["↗"] = "nearrow";
-macro2utf8["pm"] = "±";
-utf82macro["±"] = "pm";
+macro2utf8["pm"] = "±";
+utf82macro["±"] = "pm";
macro2utf8["natural"] = "♮";
utf82macro["♮"] = "natural";
macro2utf8["ucy"] = "у";
utf82macro["ℭ"] = "Cfr";
macro2utf8["yopf"] = "𝕪";
utf82macro["𝕪"] = "yopf";
-macro2utf8["Otilde"] = "Õ";
-utf82macro["Õ"] = "Otilde";
+macro2utf8["Otilde"] = "Õ";
+utf82macro["Õ"] = "Otilde";
macro2utf8["ntriangleleft"] = "⋪";
utf82macro["⋪"] = "ntriangleleft";
macro2utf8["pr"] = "≺";
utf82macro["⫰"] = "midcir";
macro2utf8["Lacute"] = "Ĺ";
utf82macro["Ĺ"] = "Lacute";
-macro2utf8["DoubleDot"] = "¨";
-utf82macro["¨"] = "DoubleDot";
+macro2utf8["DoubleDot"] = "¨";
+utf82macro["¨"] = "DoubleDot";
macro2utf8["Tstrok"] = "Ŧ";
utf82macro["Ŧ"] = "Tstrok";
macro2utf8["nrarrw"] = "↝̸";
utf82macro["↝̸"] = "nrarrw";
-macro2utf8["uArr"] = "⇑";
-utf82macro["⇑"] = "uArr";
+macro2utf8["uArr"] = "⇑";
+utf82macro["⇑"] = "uArr";
macro2utf8["nLtv"] = "≪̸︀";
utf82macro["≪̸︀"] = "nLtv";
-macro2utf8["rangle"] = "⟩";
-utf82macro["⟩"] = "rangle";
+macro2utf8["rangle"] = "〉";
+utf82macro["〉"] = "rangle";
macro2utf8["olcir"] = "⦾";
utf82macro["⦾"] = "olcir";
-macro2utf8["Auml"] = "Ä";
-utf82macro["Ä"] = "Auml";
+macro2utf8["Auml"] = "Ä";
+utf82macro["Ä"] = "Auml";
macro2utf8["Succeeds"] = "≻";
utf82macro["≻"] = "Succeeds";
macro2utf8["DoubleLongLeftRightArrow"] = "";
utf82macro["Ϝ"] = "gammad";
macro2utf8["epsiv"] = "ɛ";
utf82macro["ɛ"] = "epsiv";
-macro2utf8["notinva"] = "∉̸";
-utf82macro["∉̸"] = "notinva";
+macro2utf8["notinva"] = "∉̸";
+utf82macro["∉̸"] = "notinva";
macro2utf8["notinvb"] = "⋷";
utf82macro["⋷"] = "notinvb";
macro2utf8["eqvparsl"] = "⧥";
utf82macro["⫁"] = "submult";
macro2utf8["iiota"] = "℩";
utf82macro["℩"] = "iiota";
-macro2utf8["lceil"] = "⌈";
-utf82macro["⌈"] = "lceil";
+macro2utf8["lceil"] = "⌈";
+utf82macro["⌈"] = "lceil";
macro2utf8["omacr"] = "ō";
utf82macro["ō"] = "omacr";
macro2utf8["gneqq"] = "≩";
utf82macro["□"] = "Square";
macro2utf8["RightDownTeeVector"] = "⥝";
utf82macro["⥝"] = "RightDownTeeVector";
-macro2utf8["Ouml"] = "Ö";
-utf82macro["Ö"] = "Ouml";
+macro2utf8["Ouml"] = "Ö";
+utf82macro["Ö"] = "Ouml";
macro2utf8["lurdshar"] = "⥊";
utf82macro["⥊"] = "lurdshar";
-macro2utf8["SuchThat"] = "∋";
-utf82macro["∋"] = "SuchThat";
+macro2utf8["SuchThat"] = "∋";
+utf82macro["∋"] = "SuchThat";
macro2utf8["setminus"] = "∖";
utf82macro["∖"] = "setminus";
macro2utf8["lscr"] = "ℓ";
utf82macro["≻"] = "sc";
macro2utf8["rx"] = "℞";
utf82macro["℞"] = "rx";
-macro2utf8["RightFloor"] = "⌋";
-utf82macro["⌋"] = "RightFloor";
+macro2utf8["RightFloor"] = "⌋";
+utf82macro["⌋"] = "RightFloor";
macro2utf8["blacksquare"] = "▪";
utf82macro["▪"] = "blacksquare";
macro2utf8["ufr"] = "𝔲";
utf82macro["𝔲"] = "ufr";
macro2utf8["block"] = "█";
utf82macro["█"] = "block";
-macro2utf8["dots"] = "…";
-utf82macro["…"] = "dots";
+macro2utf8["dots"] = "…";
+utf82macro["…"] = "dots";
macro2utf8["nvsim"] = "≁̸";
utf82macro["≁̸"] = "nvsim";
macro2utf8["caret"] = "⁁";
utf82macro["⁁"] = "caret";
macro2utf8["demptyv"] = "⦱";
utf82macro["⦱"] = "demptyv";
-macro2utf8["Sum"] = "∑";
-utf82macro["∑"] = "Sum";
+macro2utf8["Sum"] = "∑";
+utf82macro["∑"] = "Sum";
macro2utf8["sscr"] = "𝓈";
utf82macro["𝓈"] = "sscr";
macro2utf8["nsube"] = "⊈";
utf82macro["⩉"] = "capbrcup";
macro2utf8["RightUpVectorBar"] = "⥔";
utf82macro["⥔"] = "RightUpVectorBar";
-macro2utf8["caps"] = "∩︀";
-utf82macro["∩︀"] = "caps";
+macro2utf8["caps"] = "∩︀";
+utf82macro["∩︀"] = "caps";
macro2utf8["ohbar"] = "⦵";
utf82macro["⦵"] = "ohbar";
macro2utf8["laemptyv"] = "⦴";
utf82macro["⦴"] = "laemptyv";
-macro2utf8["uacute"] = "ú";
-utf82macro["ú"] = "uacute";
-macro2utf8["straightphi"] = "φ";
-utf82macro["φ"] = "straightphi";
+macro2utf8["uacute"] = "ú";
+utf82macro["ú"] = "uacute";
+macro2utf8["straightphi"] = "φ";
+utf82macro["φ"] = "straightphi";
macro2utf8["RightDoubleBracket"] = "〛";
utf82macro["〛"] = "RightDoubleBracket";
macro2utf8["zscr"] = "𝓏";
utf82macro["⤐"] = "RBarr";
macro2utf8["NotRightTriangleBar"] = "⧐̸";
utf82macro["⧐̸"] = "NotRightTriangleBar";
-macro2utf8["to"] = "→";
-utf82macro["→"] = "to";
+macro2utf8["to"] = "→";
+utf82macro["→"] = "to";
macro2utf8["rpar"] = ")";
utf82macro[")"] = "rpar";
macro2utf8["rdsh"] = "↳";
utf82macro["↳"] = "rdsh";
macro2utf8["jfr"] = "𝔧";
utf82macro["𝔧"] = "jfr";
-macro2utf8["ldquor"] = "„";
-utf82macro["„"] = "ldquor";
+macro2utf8["ldquor"] = "„";
+utf82macro["„"] = "ldquor";
macro2utf8["bsime"] = "⋍";
utf82macro["⋍"] = "bsime";
macro2utf8["lAtail"] = "⤛";
utf82macro["⤛"] = "lAtail";
macro2utf8["Hcirc"] = "Ĥ";
utf82macro["Ĥ"] = "Hcirc";
-macro2utf8["aacute"] = "á";
-utf82macro["á"] = "aacute";
+macro2utf8["aacute"] = "á";
+utf82macro["á"] = "aacute";
macro2utf8["dot"] = "˙";
utf82macro["˙"] = "dot";
macro2utf8["Tcy"] = "Т";
utf82macro["Т"] = "Tcy";
-macro2utf8["nsub"] = "⊄";
-utf82macro["⊄"] = "nsub";
-macro2utf8["kappa"] = "κ";
-utf82macro["κ"] = "kappa";
+macro2utf8["nsub"] = "⊄";
+utf82macro["⊄"] = "nsub";
+macro2utf8["kappa"] = "κ";
+utf82macro["κ"] = "kappa";
macro2utf8["ovbar"] = "⌽";
utf82macro["⌽"] = "ovbar";
macro2utf8["shcy"] = "ш";
utf82macro["⋨"] = "precnsim";
macro2utf8["ord"] = "⩝";
utf82macro["⩝"] = "ord";
-macro2utf8["real"] = "ℜ";
-utf82macro["ℜ"] = "real";
+macro2utf8["real"] = "ℜ";
+utf82macro["ℜ"] = "real";
macro2utf8["nexists"] = "∄";
utf82macro["∄"] = "nexists";
macro2utf8["nsup"] = "⊅";
utf82macro["ж"] = "zhcy";
macro2utf8["imacr"] = "ī";
utf82macro["ī"] = "imacr";
-macro2utf8["egrave"] = "è";
-utf82macro["è"] = "egrave";
-macro2utf8["acirc"] = "â";
-utf82macro["â"] = "acirc";
+macro2utf8["egrave"] = "è";
+utf82macro["è"] = "egrave";
+macro2utf8["acirc"] = "â";
+utf82macro["â"] = "acirc";
macro2utf8["grave"] = "`";
utf82macro["`"] = "grave";
macro2utf8["biguplus"] = "⊎";
utf82macro["⩾"] = "GreaterSlantEqual";
macro2utf8["capand"] = "⩄";
utf82macro["⩄"] = "capand";
-macro2utf8["yuml"] = "ÿ";
-utf82macro["ÿ"] = "yuml";
+macro2utf8["yuml"] = "ÿ";
+utf82macro["ÿ"] = "yuml";
macro2utf8["orv"] = "⩛";
utf82macro["⩛"] = "orv";
macro2utf8["Icy"] = "И";
utf82macro["И"] = "Icy";
macro2utf8["rightharpoondown"] = "⇁";
utf82macro["⇁"] = "rightharpoondown";
-macro2utf8["upsilon"] = "υ";
-utf82macro["υ"] = "upsilon";
+macro2utf8["upsilon"] = "υ";
+utf82macro["υ"] = "upsilon";
macro2utf8["preccurlyeq"] = "≼";
utf82macro["≼"] = "preccurlyeq";
macro2utf8["ShortUpArrow"] = "⌃︀";
utf82macro["⤥"] = "searhk";
macro2utf8["commat"] = "@";
utf82macro["@"] = "commat";
-macro2utf8["Sqrt"] = "√";
-utf82macro["√"] = "Sqrt";
-macro2utf8["wp"] = "℘";
-utf82macro["℘"] = "wp";
+macro2utf8["Sqrt"] = "√";
+utf82macro["√"] = "Sqrt";
+macro2utf8["wp"] = "℘";
+utf82macro["℘"] = "wp";
macro2utf8["succnapprox"] = "⋩";
utf82macro["⋩"] = "succnapprox";
macro2utf8["wr"] = "≀";
utf82macro["▭"] = "rect";
macro2utf8["Fouriertrf"] = "ℱ";
utf82macro["ℱ"] = "Fouriertrf";
-macro2utf8["xi"] = "ξ";
-utf82macro["ξ"] = "xi";
+macro2utf8["xi"] = "ξ";
+utf82macro["ξ"] = "xi";
macro2utf8["NotTilde"] = "≁";
utf82macro["≁"] = "NotTilde";
macro2utf8["gbreve"] = "ğ";
utf82macro["⇎"] = "nhArr";
macro2utf8["lsim"] = "≲";
utf82macro["≲"] = "lsim";
-macro2utf8["RightCeiling"] = "⌉";
-utf82macro["⌉"] = "RightCeiling";
-macro2utf8["nedot"] = "≠︀";
-utf82macro["≠︀"] = "nedot";
-macro2utf8["thksim"] = "∼︀";
-utf82macro["∼︀"] = "thksim";
+macro2utf8["RightCeiling"] = "⌉";
+utf82macro["⌉"] = "RightCeiling";
+macro2utf8["nedot"] = "≠︀";
+utf82macro["≠︀"] = "nedot";
+macro2utf8["thksim"] = "∼︀";
+utf82macro["∼︀"] = "thksim";
macro2utf8["lEg"] = "⋚";
utf82macro["⋚"] = "lEg";
-macro2utf8["Ifr"] = "ℑ";
-utf82macro["ℑ"] = "Ifr";
-macro2utf8["emsp"] = " ";
-utf82macro[" "] = "emsp";
+macro2utf8["Ifr"] = "ℑ";
+utf82macro["ℑ"] = "Ifr";
+macro2utf8["emsp"] = " ";
+utf82macro[" "] = "emsp";
macro2utf8["lopar"] = "〘";
utf82macro["〘"] = "lopar";
macro2utf8["iiiint"] = "⨌";
utf82macro["⨌"] = "iiiint";
-macro2utf8["straightepsilon"] = "ε";
-utf82macro["ε"] = "straightepsilon";
+macro2utf8["straightepsilon"] = "ε";
+utf82macro["ε"] = "straightepsilon";
macro2utf8["intlarhk"] = "⨗";
utf82macro["⨗"] = "intlarhk";
-macro2utf8["image"] = "ℑ";
-utf82macro["ℑ"] = "image";
+macro2utf8["image"] = "ℑ";
+utf82macro["ℑ"] = "image";
macro2utf8["sqsubseteq"] = "⊑";
utf82macro["⊑"] = "sqsubseteq";
macro2utf8["lnapprox"] = "⪉";
utf82macro["⪉"] = "lnapprox";
-macro2utf8["Leftrightarrow"] = "⇔";
-utf82macro["⇔"] = "Leftrightarrow";
+macro2utf8["Leftrightarrow"] = "⇔";
+utf82macro["⇔"] = "Leftrightarrow";
macro2utf8["cemptyv"] = "⦲";
utf82macro["⦲"] = "cemptyv";
-macro2utf8["alpha"] = "α";
-utf82macro["α"] = "alpha";
-macro2utf8["uml"] = "¨";
-utf82macro["¨"] = "uml";
+macro2utf8["alpha"] = "α";
+utf82macro["α"] = "alpha";
+macro2utf8["uml"] = "¨";
+utf82macro["¨"] = "uml";
macro2utf8["barwedge"] = "⊼";
utf82macro["⊼"] = "barwedge";
macro2utf8["KHcy"] = "Х";
utf82macro["Х"] = "KHcy";
-macro2utf8["tilde"] = "˜";
-utf82macro["˜"] = "tilde";
-macro2utf8["Superset"] = "⊃";
-utf82macro["⊃"] = "Superset";
+macro2utf8["tilde"] = "˜";
+utf82macro["˜"] = "tilde";
+macro2utf8["Superset"] = "⊃";
+utf82macro["⊃"] = "Superset";
macro2utf8["gesles"] = "⪔";
utf82macro["⪔"] = "gesles";
-macro2utf8["bigoplus"] = "⊕";
-utf82macro["⊕"] = "bigoplus";
+macro2utf8["bigoplus"] = "⊕";
+utf82macro["⊕"] = "bigoplus";
macro2utf8["boxuL"] = "╛";
utf82macro["╛"] = "boxuL";
macro2utf8["rbbrk"] = "〕";
utf82macro["⒢̸"] = "NotNestedGreaterGreater";
macro2utf8["smtes"] = "⪬︀";
utf82macro["⪬︀"] = "smtes";
-macro2utf8["LeftAngleBracket"] = "⟨";
-utf82macro["⟨"] = "LeftAngleBracket";
+macro2utf8["LeftAngleBracket"] = "〈";
+utf82macro["〈"] = "LeftAngleBracket";
macro2utf8["iogon"] = "į";
utf82macro["į"] = "iogon";
macro2utf8["ExponentialE"] = "ⅇ";
utf82macro["ⅇ"] = "ExponentialE";
macro2utf8["Topf"] = "𝕋";
utf82macro["𝕋"] = "Topf";
-macro2utf8["GreaterEqual"] = "≥";
-utf82macro["≥"] = "GreaterEqual";
+macro2utf8["GreaterEqual"] = "≥";
+utf82macro["≥"] = "GreaterEqual";
macro2utf8["DownTee"] = "⊤";
utf82macro["⊤"] = "DownTee";
macro2utf8["boxul"] = "┘";
utf82macro["┘"] = "boxul";
macro2utf8["wreath"] = "≀";
utf82macro["≀"] = "wreath";
-macro2utf8["sigma"] = "σ";
-utf82macro["σ"] = "sigma";
+macro2utf8["sigma"] = "σ";
+utf82macro["σ"] = "sigma";
macro2utf8["ENG"] = "Ŋ";
utf82macro["Ŋ"] = "ENG";
macro2utf8["Ncedil"] = "Ņ";
utf82macro["Ņ"] = "Ncedil";
macro2utf8["ecy"] = "э";
utf82macro["э"] = "ecy";
-macro2utf8["nsubset"] = "⊄";
-utf82macro["⊄"] = "nsubset";
+macro2utf8["nsubset"] = "⊄";
+utf82macro["⊄"] = "nsubset";
macro2utf8["LessFullEqual"] = "≦";
utf82macro["≦"] = "LessFullEqual";
macro2utf8["bsolb"] = "⧅";
utf82macro["⧅"] = "bsolb";
macro2utf8["boxur"] = "└";
utf82macro["└"] = "boxur";
-macro2utf8["ThinSpace"] = " ";
-utf82macro[" "] = "ThinSpace";
+macro2utf8["ThinSpace"] = " ";
+utf82macro[" "] = "ThinSpace";
macro2utf8["supdsub"] = "⫘";
utf82macro["⫘"] = "supdsub";
macro2utf8["colone"] = "≔";
utf82macro["≔"] = "colone";
-macro2utf8["curren"] = "¤";
-utf82macro["¤"] = "curren";
+macro2utf8["curren"] = "¤";
+utf82macro["¤"] = "curren";
macro2utf8["boxvh"] = "┼";
utf82macro["┼"] = "boxvh";
macro2utf8["ecaron"] = "ě";
utf82macro["⊭"] = "nvDash";
macro2utf8["NotGreaterFullEqual"] = "≰";
utf82macro["≰"] = "NotGreaterFullEqual";
-macro2utf8["uparrow"] = "↑";
-utf82macro["↑"] = "uparrow";
+macro2utf8["uparrow"] = "↑";
+utf82macro["↑"] = "uparrow";
macro2utf8["nsupset"] = "⊅";
utf82macro["⊅"] = "nsupset";
macro2utf8["simeq"] = "≃";
utf82macro["⊳"] = "RightTriangle";
macro2utf8["Lang"] = "《";
utf82macro["《"] = "Lang";
-macro2utf8["Ucirc"] = "Û";
-utf82macro["Û"] = "Ucirc";
+macro2utf8["Ucirc"] = "Û";
+utf82macro["Û"] = "Ucirc";
macro2utf8["iopf"] = "𝕚";
utf82macro["𝕚"] = "iopf";
macro2utf8["leftrightsquigarrow"] = "↭";
utf82macro["↭"] = "leftrightsquigarrow";
macro2utf8["Gscr"] = "𝒢";
utf82macro["𝒢"] = "Gscr";
-macro2utf8["lfloor"] = "⌊";
-utf82macro["⌊"] = "lfloor";
+macro2utf8["lfloor"] = "⌊";
+utf82macro["⌊"] = "lfloor";
macro2utf8["lbbrk"] = "〔";
utf82macro["〔"] = "lbbrk";
macro2utf8["bigvee"] = "⋁";
utf82macro["⋁"] = "bigvee";
-macro2utf8["ordf"] = "ª";
-utf82macro["ª"] = "ordf";
-macro2utf8["rsquo"] = "’";
-utf82macro["’"] = "rsquo";
+macro2utf8["ordf"] = "ª";
+utf82macro["ª"] = "ordf";
+macro2utf8["rsquo"] = "’";
+utf82macro["’"] = "rsquo";
macro2utf8["parallel"] = "∥";
utf82macro["∥"] = "parallel";
-macro2utf8["half"] = "½";
-utf82macro["½"] = "half";
-macro2utf8["supseteq"] = "⊇";
-utf82macro["⊇"] = "supseteq";
+macro2utf8["half"] = "½";
+utf82macro["½"] = "half";
+macro2utf8["supseteq"] = "⊇";
+utf82macro["⊇"] = "supseteq";
macro2utf8["ngeqq"] = "≱";
utf82macro["≱"] = "ngeqq";
macro2utf8["popf"] = "𝕡";
utf82macro["𝕡"] = "popf";
-macro2utf8["NonBreakingSpace"] = " ";
-utf82macro[" "] = "NonBreakingSpace";
+macro2utf8["NonBreakingSpace"] = " ";
+utf82macro[" "] = "NonBreakingSpace";
macro2utf8["softcy"] = "ь";
utf82macro["ь"] = "softcy";
-macro2utf8["ordm"] = "º";
-utf82macro["º"] = "ordm";
+macro2utf8["ordm"] = "º";
+utf82macro["º"] = "ordm";
macro2utf8["Nscr"] = "𝒩";
utf82macro["𝒩"] = "Nscr";
-macro2utf8["owns"] = "∋";
-utf82macro["∋"] = "owns";
+macro2utf8["owns"] = "∋";
+utf82macro["∋"] = "owns";
macro2utf8["phi"] = "ϕ";
utf82macro["ϕ"] = "phi";
macro2utf8["efr"] = "𝔢";
utf82macro["≨"] = "lneq";
macro2utf8["parallet"] = "????";
utf82macro["????"] = "parallet";
-macro2utf8["ndash"] = "–";
-utf82macro["–"] = "ndash";
+macro2utf8["ndash"] = "–";
+utf82macro["–"] = "ndash";
macro2utf8["DoubleLeftTee"] = "⫤";
utf82macro["⫤"] = "DoubleLeftTee";
-macro2utf8["lArr"] = "⇐";
-utf82macro["⇐"] = "lArr";
+macro2utf8["lArr"] = "⇐";
+utf82macro["⇐"] = "lArr";
macro2utf8["becaus"] = "∵";
utf82macro["∵"] = "becaus";
macro2utf8["RightTee"] = "⊢";
utf82macro["ℝ"] = "reals";
macro2utf8["CupCap"] = "≍";
utf82macro["≍"] = "CupCap";
-macro2utf8["Oacute"] = "Ó";
-utf82macro["Ó"] = "Oacute";
+macro2utf8["Oacute"] = "Ó";
+utf82macro["Ó"] = "Oacute";
macro2utf8["Zfr"] = "ℨ";
utf82macro["ℨ"] = "Zfr";
macro2utf8["ReverseEquilibrium"] = "⇋";
utf82macro["⇋"] = "ReverseEquilibrium";
-macro2utf8["ccedil"] = "ç";
-utf82macro["ç"] = "ccedil";
+macro2utf8["ccedil"] = "ç";
+utf82macro["ç"] = "ccedil";
macro2utf8["bigtriangleup"] = "△";
utf82macro["△"] = "bigtriangleup";
-macro2utf8["piv"] = "ϖ";
-utf82macro["ϖ"] = "piv";
+macro2utf8["piv"] = "ϖ";
+utf82macro["ϖ"] = "piv";
macro2utf8["cirscir"] = "⧂";
utf82macro["⧂"] = "cirscir";
-macro2utf8["exists"] = "∃";
-utf82macro["∃"] = "exists";
+macro2utf8["exists"] = "∃";
+utf82macro["∃"] = "exists";
macro2utf8["Uarrocir"] = "⥉";
utf82macro["⥉"] = "Uarrocir";
macro2utf8["Dcy"] = "Д";
utf82macro["⦪"] = "angmsdac";
macro2utf8["xdtri"] = "▽";
utf82macro["▽"] = "xdtri";
-macro2utf8["iota"] = "ι";
-utf82macro["ι"] = "iota";
+macro2utf8["iota"] = "ι";
+utf82macro["ι"] = "iota";
macro2utf8["angmsdad"] = "⦫";
utf82macro["⦫"] = "angmsdad";
macro2utf8["angmsdae"] = "⦬";
utf82macro["↣"] = "rightarrowtail";
macro2utf8["angmsdaf"] = "⦭";
utf82macro["⦭"] = "angmsdaf";
-macro2utf8["Ocirc"] = "Ô";
-utf82macro["Ô"] = "Ocirc";
+macro2utf8["Ocirc"] = "Ô";
+utf82macro["Ô"] = "Ocirc";
macro2utf8["angmsdag"] = "⦮";
utf82macro["⦮"] = "angmsdag";
macro2utf8["Ofr"] = "𝔒";
utf82macro["✠"] = "maltese";
macro2utf8["angmsdah"] = "⦯";
utf82macro["⦯"] = "angmsdah";
-macro2utf8["Del"] = "∇";
-utf82macro["∇"] = "Del";
+macro2utf8["Del"] = "∇";
+utf82macro["∇"] = "Del";
macro2utf8["Barwed"] = "⌆";
utf82macro["⌆"] = "Barwed";
macro2utf8["drbkarow"] = "⤐";
utf82macro["⤐"] = "drbkarow";
macro2utf8["qscr"] = "𝓆";
utf82macro["𝓆"] = "qscr";
-macro2utf8["ETH"] = "Ð";
-utf82macro["Ð"] = "ETH";
+macro2utf8["ETH"] = "Ð";
+utf82macro["Ð"] = "ETH";
macro2utf8["operp"] = "⦹";
utf82macro["⦹"] = "operp";
macro2utf8["daleth"] = "ℸ";
utf82macro["ℸ"] = "daleth";
-macro2utf8["bull"] = "•";
-utf82macro["•"] = "bull";
+macro2utf8["bull"] = "•";
+utf82macro["•"] = "bull";
macro2utf8["simlE"] = "⪟";
utf82macro["⪟"] = "simlE";
-macro2utf8["lsquo"] = "‘";
-utf82macro["‘"] = "lsquo";
+macro2utf8["lsquo"] = "‘";
+utf82macro["‘"] = "lsquo";
macro2utf8["Larr"] = "↞";
utf82macro["↞"] = "Larr";
macro2utf8["curarr"] = "↷";
utf82macro["↷"] = "curarr";
macro2utf8["blacktriangleleft"] = "◂";
utf82macro["◂"] = "blacktriangleleft";
-macro2utf8["hellip"] = "…";
-utf82macro["…"] = "hellip";
+macro2utf8["hellip"] = "…";
+utf82macro["…"] = "hellip";
macro2utf8["DoubleVerticalBar"] = "∥";
utf82macro["∥"] = "DoubleVerticalBar";
macro2utf8["rBarr"] = "⤏";
utf82macro["⤏"] = "rBarr";
macro2utf8["chcy"] = "ч";
utf82macro["ч"] = "chcy";
-macro2utf8["varpi"] = "ϖ";
-utf82macro["ϖ"] = "varpi";
+macro2utf8["varpi"] = "ϖ";
+utf82macro["ϖ"] = "varpi";
macro2utf8["Cconint"] = "∰";
utf82macro["∰"] = "Cconint";
macro2utf8["xlarr"] = "";
utf82macro["∳"] = "CounterClockwiseContourIntegral";
macro2utf8["urcrop"] = "⌎";
utf82macro["⌎"] = "urcrop";
-macro2utf8["RightAngleBracket"] = "⟩";
-utf82macro["⟩"] = "RightAngleBracket";
+macro2utf8["RightAngleBracket"] = "〉";
+utf82macro["〉"] = "RightAngleBracket";
macro2utf8["Rcaron"] = "Ř";
utf82macro["Ř"] = "Rcaron";
macro2utf8["latail"] = "⤙";
utf82macro["⋛"] = "gEl";
macro2utf8["bump"] = "≎";
utf82macro["≎"] = "bump";
-macro2utf8["aleph"] = "ℵ";
-utf82macro["ℵ"] = "aleph";
+macro2utf8["aleph"] = "ℵ";
+utf82macro["ℵ"] = "aleph";
macro2utf8["Ubreve"] = "Ŭ";
utf82macro["Ŭ"] = "Ubreve";
-macro2utf8["isinv"] = "∈";
-utf82macro["∈"] = "isinv";
+macro2utf8["isinv"] = "∈";
+utf82macro["∈"] = "isinv";
macro2utf8["smile"] = "⌣";
utf82macro["⌣"] = "smile";
macro2utf8["llcorner"] = "⌞";
utf82macro["═"] = "boxH";
macro2utf8["ecir"] = "≖";
utf82macro["≖"] = "ecir";
-macro2utf8["varnothing"] = "∅";
-utf82macro["∅"] = "varnothing";
-macro2utf8["iuml"] = "ï";
-utf82macro["ï"] = "iuml";
+macro2utf8["varnothing"] = "∅";
+utf82macro["∅"] = "varnothing";
+macro2utf8["iuml"] = "ï";
+utf82macro["ï"] = "iuml";
macro2utf8["mlcp"] = "⫛";
utf82macro["⫛"] = "mlcp";
macro2utf8["leftrightharpoons"] = "⇋";
utf82macro["≇"] = "ncong";
macro2utf8["Vert"] = "‖";
utf82macro["‖"] = "Vert";
-macro2utf8["vee"] = "∨";
-utf82macro["∨"] = "vee";
+macro2utf8["vee"] = "∨";
+utf82macro["∨"] = "vee";
macro2utf8["star"] = "⋆";
utf82macro["⋆"] = "star";
macro2utf8["boxV"] = "║";
utf82macro["║"] = "boxV";
-macro2utf8["LeftRightArrow"] = "↔";
-utf82macro["↔"] = "LeftRightArrow";
-macro2utf8["leftrightarrow"] = "↔";
-utf82macro["↔"] = "leftrightarrow";
+macro2utf8["LeftRightArrow"] = "↔";
+utf82macro["↔"] = "LeftRightArrow";
+macro2utf8["leftrightarrow"] = "↔";
+utf82macro["↔"] = "leftrightarrow";
macro2utf8["lstrok"] = "ł";
utf82macro["ł"] = "lstrok";
macro2utf8["ell"] = "ℓ";
utf82macro["≯"] = "NotGreater";
macro2utf8["Abreve"] = "Ă";
utf82macro["Ă"] = "Abreve";
-macro2utf8["TildeTilde"] = "≈";
-utf82macro["≈"] = "TildeTilde";
-macro2utf8["CircleTimes"] = "⊗";
-utf82macro["⊗"] = "CircleTimes";
+macro2utf8["TildeTilde"] = "≈";
+utf82macro["≈"] = "TildeTilde";
+macro2utf8["CircleTimes"] = "⊗";
+utf82macro["⊗"] = "CircleTimes";
macro2utf8["subsetneq"] = "⊊";
utf82macro["⊊"] = "subsetneq";
macro2utf8["ltcc"] = "⪦";
utf82macro["к"] = "kcy";
macro2utf8["nshortmid"] = "∤︀";
utf82macro["∤︀"] = "nshortmid";
-macro2utf8["mldr"] = "…";
-utf82macro["…"] = "mldr";
-macro2utf8["harr"] = "↔";
-utf82macro["↔"] = "harr";
+macro2utf8["mldr"] = "…";
+utf82macro["…"] = "mldr";
+macro2utf8["harr"] = "↔";
+utf82macro["↔"] = "harr";
macro2utf8["gimel"] = "ℷ";
utf82macro["ℷ"] = "gimel";
macro2utf8["Otimes"] = "⨷";
utf82macro["⋖"] = "ltdot";
macro2utf8["boxh"] = "─";
utf82macro["─"] = "boxh";
-macro2utf8["notin"] = "∉";
-utf82macro["∉"] = "notin";
+macro2utf8["notin"] = "∉";
+utf82macro["∉"] = "notin";
macro2utf8["RuleDelayed"] = "⧴";
utf82macro["⧴"] = "RuleDelayed";
macro2utf8["sqsube"] = "⊑";
utf82macro["⊑"] = "sqsube";
-macro2utf8["macr"] = "¯";
-utf82macro["¯"] = "macr";
-macro2utf8["Icirc"] = "Î";
-utf82macro["Î"] = "Icirc";
+macro2utf8["macr"] = "¯";
+utf82macro["¯"] = "macr";
+macro2utf8["Icirc"] = "Î";
+utf82macro["Î"] = "Icirc";
macro2utf8["comma"] = ",";
utf82macro[","] = "comma";
macro2utf8["Cayleys"] = "ℭ";
utf82macro["⊊︀"] = "vsubne";
macro2utf8["hbar"] = "ℏ︀";
utf82macro["ℏ︀"] = "hbar";
-macro2utf8["subset"] = "⊂";
-utf82macro["⊂"] = "subset";
+macro2utf8["subset"] = "⊂";
+utf82macro["⊂"] = "subset";
macro2utf8["UpTeeArrow"] = "↥";
utf82macro["↥"] = "UpTeeArrow";
-macro2utf8["LeftFloor"] = "⌊";
-utf82macro["⌊"] = "LeftFloor";
+macro2utf8["LeftFloor"] = "⌊";
+utf82macro["⌊"] = "LeftFloor";
macro2utf8["kfr"] = "𝔨";
utf82macro["𝔨"] = "kfr";
macro2utf8["nisd"] = "⋺";
utf82macro["⊀"] = "nprec";
macro2utf8["ltrPar"] = "⦖";
utf82macro["⦖"] = "ltrPar";
-macro2utf8["Scaron"] = "Š";
-utf82macro["Š"] = "Scaron";
+macro2utf8["Scaron"] = "Š";
+utf82macro["Š"] = "Scaron";
macro2utf8["InvisibleComma"] = "​";
utf82macro["​"] = "InvisibleComma";
macro2utf8["SquareUnion"] = "⊔";
utf82macro["ffl"] = "ffllig";
macro2utf8["approxeq"] = "≊";
utf82macro["≊"] = "approxeq";
-macro2utf8["yacute"] = "ý";
-utf82macro["ý"] = "yacute";
+macro2utf8["yacute"] = "ý";
+utf82macro["ý"] = "yacute";
macro2utf8["pre"] = "⪯";
utf82macro["⪯"] = "pre";
macro2utf8["nsqsupe"] = "⋣";
utf82macro["⋣"] = "nsqsupe";
-macro2utf8["supset"] = "⊃";
-utf82macro["⊃"] = "supset";
-macro2utf8["bsolhsub"] = "\\⊂";
-utf82macro["\\⊂"] = "bsolhsub";
+macro2utf8["supset"] = "⊃";
+utf82macro["⊃"] = "supset";
+macro2utf8["bsolhsub"] = "\\⊂";
+utf82macro["\\⊂"] = "bsolhsub";
macro2utf8["nshortparallel"] = "∦︀";
utf82macro["∦︀"] = "nshortparallel";
-macro2utf8["lozenge"] = "◊";
-utf82macro["◊"] = "lozenge";
-macro2utf8["lnot"] = "¬";
-utf82macro["¬"] = "lnot";
+macro2utf8["lozenge"] = "◊";
+utf82macro["◊"] = "lozenge";
+macro2utf8["lnot"] = "¬";
+utf82macro["¬"] = "lnot";
macro2utf8["Dopf"] = "𝔻";
utf82macro["𝔻"] = "Dopf";
macro2utf8["leftharpoonup"] = "↼";
utf82macro["↼"] = "leftharpoonup";
macro2utf8["Jcy"] = "Й";
utf82macro["Й"] = "Jcy";
-macro2utf8["rightarrow"] = "→";
-utf82macro["→"] = "rightarrow";
+macro2utf8["rightarrow"] = "→";
+utf82macro["→"] = "rightarrow";
macro2utf8["ntriangleright"] = "⋫";
utf82macro["⋫"] = "ntriangleright";
macro2utf8["Ccirc"] = "Ĉ";
utf82macro["Ĉ"] = "Ccirc";
-macro2utf8["eacute"] = "é";
-utf82macro["é"] = "eacute";
-macro2utf8["acute"] = "´";
-utf82macro["´"] = "acute";
+macro2utf8["eacute"] = "é";
+utf82macro["é"] = "eacute";
+macro2utf8["acute"] = "´";
+utf82macro["´"] = "acute";
macro2utf8["Precedes"] = "≺";
utf82macro["≺"] = "Precedes";
-macro2utf8["middot"] = "·";
-utf82macro["·"] = "middot";
+macro2utf8["middot"] = "·";
+utf82macro["·"] = "middot";
macro2utf8["lHar"] = "⥢";
utf82macro["⥢"] = "lHar";
macro2utf8["eparsl"] = "⧣";
utf82macro["⧣"] = "eparsl";
-macro2utf8["psi"] = "ψ";
-utf82macro["ψ"] = "psi";
+macro2utf8["psi"] = "ψ";
+utf82macro["ψ"] = "psi";
macro2utf8["parsl"] = "∥︀";
utf82macro["∥︀"] = "parsl";
macro2utf8["UpperLeftArrow"] = "↖";
utf82macro["︶"] = "UnderParenthesis";
macro2utf8["notni"] = "∌";
utf82macro["∌"] = "notni";
-macro2utf8["dagger"] = "†";
-utf82macro["†"] = "dagger";
+macro2utf8["dagger"] = "†";
+utf82macro["†"] = "dagger";
macro2utf8["dharr"] = "⇂";
utf82macro["⇂"] = "dharr";
macro2utf8["twoheadleftarrow"] = "↞";
utf82macro["↞"] = "twoheadleftarrow";
-macro2utf8["frac12"] = "½";
-utf82macro["½"] = "frac12";
+macro2utf8["frac12"] = "½";
+utf82macro["½"] = "frac12";
macro2utf8["varsubsetneqq"] = "⊊︀";
utf82macro["⊊︀"] = "varsubsetneqq";
macro2utf8["frac13"] = "⅓";
utf82macro["≪"] = "NestedLessLess";
macro2utf8["llarr"] = "⇇";
utf82macro["⇇"] = "llarr";
-macro2utf8["frac14"] = "¼";
-utf82macro["¼"] = "frac14";
+macro2utf8["frac14"] = "¼";
+utf82macro["¼"] = "frac14";
macro2utf8["frac15"] = "⅕";
utf82macro["⅕"] = "frac15";
macro2utf8["Ropf"] = "ℝ";
utf82macro["⊿"] = "lrtri";
macro2utf8["frac18"] = "⅛";
utf82macro["⅛"] = "frac18";
-macro2utf8["cedil"] = "¸";
-utf82macro["¸"] = "cedil";
+macro2utf8["cedil"] = "¸";
+utf82macro["¸"] = "cedil";
macro2utf8["subsim"] = "⫇";
utf82macro["⫇"] = "subsim";
macro2utf8["PrecedesTilde"] = "≾";
utf82macro["≾"] = "PrecedesTilde";
-macro2utf8["igrave"] = "ì";
-utf82macro["ì"] = "igrave";
+macro2utf8["igrave"] = "ì";
+utf82macro["ì"] = "igrave";
macro2utf8["gjcy"] = "ѓ";
utf82macro["ѓ"] = "gjcy";
macro2utf8["LeftVector"] = "↼";
utf82macro["⋽"] = "notnivc";
macro2utf8["Yopf"] = "𝕐";
utf82macro["𝕐"] = "Yopf";
-macro2utf8["there4"] = "∴";
-utf82macro["∴"] = "there4";
+macro2utf8["there4"] = "∴";
+utf82macro["∴"] = "there4";
macro2utf8["udarr"] = "⇅";
utf82macro["⇅"] = "udarr";
macro2utf8["bkarow"] = "⤍";
utf82macro["њ"] = "njcy";
macro2utf8["Dashv"] = "⫤";
utf82macro["⫤"] = "Dashv";
-macro2utf8["eta"] = "η";
-utf82macro["η"] = "eta";
+macro2utf8["eta"] = "η";
+utf82macro["η"] = "eta";
macro2utf8["bcong"] = "≌";
utf82macro["≌"] = "bcong";
-macro2utf8["Ugrave"] = "Ù";
-utf82macro["Ù"] = "Ugrave";
+macro2utf8["Ugrave"] = "Ù";
+utf82macro["Ù"] = "Ugrave";
macro2utf8["csube"] = "⫑";
utf82macro["⫑"] = "csube";
-macro2utf8["clubs"] = "♣";
-utf82macro["♣"] = "clubs";
+macro2utf8["clubs"] = "♣";
+utf82macro["♣"] = "clubs";
macro2utf8["supmult"] = "⫂";
utf82macro["⫂"] = "supmult";
macro2utf8["MinusPlus"] = "∓";
utf82macro["∓"] = "MinusPlus";
macro2utf8["Jfr"] = "𝔍";
utf82macro["𝔍"] = "Jfr";
-macro2utf8["ensp"] = " ";
-utf82macro[" "] = "ensp";
-macro2utf8["ucirc"] = "û";
-utf82macro["û"] = "ucirc";
+macro2utf8["ensp"] = " ";
+utf82macro[" "] = "ensp";
+macro2utf8["ucirc"] = "û";
+utf82macro["û"] = "ucirc";
macro2utf8["supsim"] = "⫈";
utf82macro["⫈"] = "supsim";
-macro2utf8["eth"] = "ð";
-utf82macro["ð"] = "eth";
+macro2utf8["eth"] = "ð";
+utf82macro["ð"] = "eth";
macro2utf8["OverBrace"] = "︷";
utf82macro["︷"] = "OverBrace";
-macro2utf8["Dot"] = "¨";
-utf82macro["¨"] = "Dot";
+macro2utf8["Dot"] = "¨";
+utf82macro["¨"] = "Dot";
macro2utf8["xcap"] = "⋂";
utf82macro["⋂"] = "xcap";
macro2utf8["vangrt"] = "⊾";
utf82macro["⊾"] = "vangrt";
macro2utf8["NotSubsetEqual"] = "⊈";
utf82macro["⊈"] = "NotSubsetEqual";
-macro2utf8["frac34"] = "¾";
-utf82macro["¾"] = "frac34";
+macro2utf8["frac34"] = "¾";
+utf82macro["¾"] = "frac34";
macro2utf8["frac35"] = "⅗";
utf82macro["⅗"] = "frac35";
macro2utf8["planck"] = "ℏ︀";
utf82macro["↥"] = "mapstoup";
macro2utf8["Escr"] = "ℰ";
utf82macro["ℰ"] = "Escr";
-macro2utf8["Integral"] = "∫";
-utf82macro["∫"] = "Integral";
-macro2utf8["Agrave"] = "À";
-utf82macro["À"] = "Agrave";
+macro2utf8["Integral"] = "∫";
+utf82macro["∫"] = "Integral";
+macro2utf8["Agrave"] = "À";
+utf82macro["À"] = "Agrave";
macro2utf8["longleftarrow"] = "????;";
utf82macro["????;"] = "longleftarrow";
macro2utf8["Tcaron"] = "Ť";
utf82macro["Ē"] = "Emacr";
macro2utf8["omid"] = "⦶";
utf82macro["⦶"] = "omid";
-macro2utf8["spades"] = "♠";
-utf82macro["♠"] = "spades";
+macro2utf8["spades"] = "♠";
+utf82macro["♠"] = "spades";
macro2utf8["naturals"] = "ℕ";
utf82macro["ℕ"] = "naturals";
macro2utf8["Lscr"] = "ℒ";
utf82macro["≿"] = "SucceedsTilde";
macro2utf8["frac45"] = "⅘";
utf82macro["⅘"] = "frac45";
-macro2utf8["clubsuit"] = "♣";
-utf82macro["♣"] = "clubsuit";
+macro2utf8["clubsuit"] = "♣";
+utf82macro["♣"] = "clubsuit";
macro2utf8["mumap"] = "⊸";
utf82macro["⊸"] = "mumap";
macro2utf8["vltri"] = "⊲";
utf82macro["⇤"] = "LeftArrowBar";
macro2utf8["zacute"] = "ź";
utf82macro["ź"] = "zacute";
-macro2utf8["szlig"] = "ß";
-utf82macro["ß"] = "szlig";
+macro2utf8["szlig"] = "ß";
+utf82macro["ß"] = "szlig";
macro2utf8["suplarr"] = "⥻";
utf82macro["⥻"] = "suplarr";
macro2utf8["RightDownVector"] = "⇂";
utf82macro["Ї"] = "YIcy";
macro2utf8["Sscr"] = "𝒮";
utf82macro["𝒮"] = "Sscr";
-macro2utf8["empty"] = "∅︀";
-utf82macro["∅︀"] = "empty";
+macro2utf8["empty"] = "∅︀";
+utf82macro["∅︀"] = "empty";
macro2utf8["Vdash"] = "⊩";
utf82macro["⊩"] = "Vdash";
macro2utf8["sqsubset"] = "⊏";
utf82macro["⊏"] = "sqsubset";
macro2utf8["efDot"] = "≒";
utf82macro["≒"] = "efDot";
-macro2utf8["times"] = "×";
-utf82macro["×"] = "times";
-macro2utf8["Oslash"] = "Ø";
-utf82macro["Ø"] = "Oslash";
+macro2utf8["times"] = "×";
+utf82macro["×"] = "times";
+macro2utf8["Oslash"] = "Ø";
+utf82macro["Ø"] = "Oslash";
macro2utf8["itilde"] = "ĩ";
utf82macro["ĩ"] = "itilde";
macro2utf8["frac56"] = "⅚";
utf82macro["№"] = "numero";
macro2utf8["malt"] = "✠";
utf82macro["✠"] = "malt";
-macro2utf8["npart"] = "∂̸";
-utf82macro["∂̸"] = "npart";
+macro2utf8["npart"] = "∂̸";
+utf82macro["∂̸"] = "npart";
macro2utf8["frac58"] = "⅝";
utf82macro["⅝"] = "frac58";
macro2utf8["Zscr"] = "𝒵";
utf82macro["𝒵"] = "Zscr";
macro2utf8["integers"] = "ℤ";
utf82macro["ℤ"] = "integers";
-macro2utf8["CloseCurlyQuote"] = "’";
-utf82macro["’"] = "CloseCurlyQuote";
+macro2utf8["CloseCurlyQuote"] = "’";
+utf82macro["’"] = "CloseCurlyQuote";
macro2utf8["NewLine"] = "\n";
utf82macro["\n"] = "NewLine";
macro2utf8["fcy"] = "ф";
utf82macro["ф"] = "fcy";
macro2utf8["nwarr"] = "↖";
utf82macro["↖"] = "nwarr";
-macro2utf8["thicksim"] = "∼︀";
-utf82macro["∼︀"] = "thicksim";
+macro2utf8["thicksim"] = "∼︀";
+utf82macro["∼︀"] = "thicksim";
macro2utf8["nprcue"] = "⋠";
utf82macro["⋠"] = "nprcue";
macro2utf8["lcub"] = "{";
utf82macro["{"] = "lcub";
-macro2utf8["forall"] = "∀";
-utf82macro["∀"] = "forall";
+macro2utf8["forall"] = "∀";
+utf82macro["∀"] = "forall";
macro2utf8["plusacir"] = "⨣";
utf82macro["⨣"] = "plusacir";
macro2utf8["ascr"] = "𝒶";
utf82macro["⨧"] = "plustwo";
macro2utf8["Utilde"] = "Ũ";
utf82macro["Ũ"] = "Utilde";
-macro2utf8["lambda"] = "λ";
-utf82macro["λ"] = "lambda";
+macro2utf8["lambda"] = "λ";
+utf82macro["λ"] = "lambda";
macro2utf8["odash"] = "⊝";
utf82macro["⊝"] = "odash";
macro2utf8["iukcy"] = "і";
utf82macro["????"] = "Longleftarrow";
macro2utf8["capcap"] = "⩋";
utf82macro["⩋"] = "capcap";
-macro2utf8["ocirc"] = "ô";
-utf82macro["ô"] = "ocirc";
+macro2utf8["ocirc"] = "ô";
+utf82macro["ô"] = "ocirc";
macro2utf8["nless"] = "≮";
utf82macro["≮"] = "nless";
macro2utf8["Wedge"] = "⋀";
utf82macro["tanh"] = "tanh";
macro2utf8["frac78"] = "⅞";
utf82macro["⅞"] = "frac78";
-macro2utf8["Atilde"] = "Ã";
-utf82macro["Ã"] = "Atilde";
+macro2utf8["Atilde"] = "Ã";
+utf82macro["Ã"] = "Atilde";
macro2utf8["arcsin"] = "arcsin";
utf82macro["arcsin"] = "arcsin";
macro2utf8["Rcedil"] = "Ŗ";
utf82macro["⪞"] = "simg";
macro2utf8["Conint"] = "∯";
utf82macro["∯"] = "Conint";
-macro2utf8["Yuml"] = "Ÿ";
-utf82macro["Ÿ"] = "Yuml";
+macro2utf8["Yuml"] = "Ÿ";
+utf82macro["Ÿ"] = "Yuml";
macro2utf8["rlhar"] = "⇌";
utf82macro["⇌"] = "rlhar";
macro2utf8["rarrbfs"] = "⤠";
utf82macro["⥗"] = "DownRightVectorBar";
macro2utf8["vscr"] = "𝓋";
utf82macro["𝓋"] = "vscr";
-macro2utf8["divide"] = "÷";
-utf82macro["÷"] = "divide";
-macro2utf8["PlusMinus"] = "±";
-utf82macro["±"] = "PlusMinus";
+macro2utf8["divide"] = "÷";
+utf82macro["÷"] = "divide";
+macro2utf8["PlusMinus"] = "±";
+utf82macro["±"] = "PlusMinus";
macro2utf8["ffr"] = "𝔣";
utf82macro["𝔣"] = "ffr";
macro2utf8["DownLeftTeeVector"] = "⥞";
utf82macro["Щ"] = "SHCHcy";
macro2utf8["cirmid"] = "⫯";
utf82macro["⫯"] = "cirmid";
-macro2utf8["sigmav"] = "ς";
-utf82macro["ς"] = "sigmav";
+macro2utf8["sigmav"] = "ς";
+utf82macro["ς"] = "sigmav";
macro2utf8["csub"] = "⫏";
utf82macro["⫏"] = "csub";
macro2utf8["npar"] = "∦";
utf82macro["⥪"] = "lharul";
macro2utf8["Jukcy"] = "Є";
utf82macro["Є"] = "Jukcy";
-macro2utf8["permil"] = "‰";
-utf82macro["‰"] = "permil";
+macro2utf8["permil"] = "‰";
+utf82macro["‰"] = "permil";
macro2utf8["ndivides"] = "∤";
utf82macro["∤"] = "ndivides";
-macro2utf8["Aring"] = "Å";
-utf82macro["Å"] = "Aring";
+macro2utf8["Aring"] = "Å";
+utf82macro["Å"] = "Aring";
macro2utf8["longmapsto"] = "????";
utf82macro["????"] = "longmapsto";
macro2utf8["Esim"] = "⩳";
utf82macro["̑"] = "DownBreve";
macro2utf8["Ecy"] = "Э";
utf82macro["Э"] = "Ecy";
-macro2utf8["rdquor"] = "”";
-utf82macro["”"] = "rdquor";
+macro2utf8["rdquor"] = "”";
+utf82macro["”"] = "rdquor";
macro2utf8["rAtail"] = "⤜";
utf82macro["⤜"] = "rAtail";
-macro2utf8["icirc"] = "î";
-utf82macro["î"] = "icirc";
+macro2utf8["icirc"] = "î";
+utf82macro["î"] = "icirc";
macro2utf8["gacute"] = "ǵ";
utf82macro["ǵ"] = "gacute";
macro2utf8["hyphen"] = "‐";
utf82macro["‐"] = "hyphen";
-macro2utf8["uuml"] = "ü";
-utf82macro["ü"] = "uuml";
-macro2utf8["thorn"] = "þ";
-utf82macro["þ"] = "thorn";
+macro2utf8["uuml"] = "ü";
+utf82macro["ü"] = "uuml";
+macro2utf8["thorn"] = "þ";
+utf82macro["þ"] = "thorn";
macro2utf8["ltri"] = "◃";
utf82macro["◃"] = "ltri";
macro2utf8["eqslantgtr"] = "⋝";
utf82macro["`"] = "DiacriticalGrave";
macro2utf8["NotPrecedesEqual"] = "⪯̸";
utf82macro["⪯̸"] = "NotPrecedesEqual";
-macro2utf8["RightArrow"] = "→";
-utf82macro["→"] = "RightArrow";
+macro2utf8["RightArrow"] = "→";
+utf82macro["→"] = "RightArrow";
macro2utf8["race"] = "⧚";
utf82macro["⧚"] = "race";
macro2utf8["topbot"] = "⌶";
utf82macro["Ś"] = "Sacute";
macro2utf8["cupor"] = "⩅";
utf82macro["⩅"] = "cupor";
-macro2utf8["OverBar"] = "¯";
-utf82macro["¯"] = "OverBar";
+macro2utf8["OverBar"] = "¯";
+utf82macro["¯"] = "OverBar";
macro2utf8["bepsi"] = "϶";
utf82macro["϶"] = "bepsi";
macro2utf8["plankv"] = "ℏ";
utf82macro["≲"] = "lap";
macro2utf8["orslope"] = "⩗";
utf82macro["⩗"] = "orslope";
-macro2utf8["beta"] = "β";
-utf82macro["β"] = "beta";
+macro2utf8["beta"] = "β";
+utf82macro["β"] = "beta";
macro2utf8["ShortDownArrow"] = "⌄︀";
utf82macro["⌄︀"] = "ShortDownArrow";
-macro2utf8["perp"] = "⊥";
-utf82macro["⊥"] = "perp";
+macro2utf8["perp"] = "⊥";
+utf82macro["⊥"] = "perp";
macro2utf8["lat"] = "⪫";
utf82macro["⪫"] = "lat";
-macro2utf8["CenterDot"] = "·";
-utf82macro["·"] = "CenterDot";
+macro2utf8["CenterDot"] = "·";
+utf82macro["·"] = "CenterDot";
macro2utf8["urcorner"] = "⌝";
utf82macro["⌝"] = "urcorner";
macro2utf8["models"] = "⊧";
utf82macro["⊧"] = "models";
macro2utf8["beth"] = "ℶ";
utf82macro["ℶ"] = "beth";
-macro2utf8["subE"] = "⊆";
-utf82macro["⊆"] = "subE";
+macro2utf8["subE"] = "⊆";
+utf82macro["⊆"] = "subE";
macro2utf8["subnE"] = "⊊";
utf82macro["⊊"] = "subnE";
-macro2utf8["ldots"] = "…";
-utf82macro["…"] = "ldots";
+macro2utf8["ldots"] = "…";
+utf82macro["…"] = "ldots";
macro2utf8["yacy"] = "я";
utf82macro["я"] = "yacy";
macro2utf8["udhar"] = "⥮";
utf82macro["⫕"] = "subsub";
macro2utf8["nvrtrie"] = "⋭̸";
utf82macro["⋭̸"] = "nvrtrie";
-macro2utf8["Phi"] = "Φ";
-utf82macro["Φ"] = "Phi";
+macro2utf8["Phi"] = "Φ";
+utf82macro["Φ"] = "Phi";
macro2utf8["Efr"] = "𝔈";
utf82macro["𝔈"] = "Efr";
macro2utf8["larrfs"] = "⤝";
utf82macro["⤝"] = "larrfs";
-macro2utf8["angle"] = "∠";
-utf82macro["∠"] = "angle";
-macro2utf8["TildeFullEqual"] = "≅";
-utf82macro["≅"] = "TildeFullEqual";
+macro2utf8["angle"] = "∠";
+utf82macro["∠"] = "angle";
+macro2utf8["TildeFullEqual"] = "≅";
+utf82macro["≅"] = "TildeFullEqual";
macro2utf8["Jcirc"] = "Ĵ";
utf82macro["Ĵ"] = "Jcirc";
-macro2utf8["THORN"] = "Þ";
-utf82macro["Þ"] = "THORN";
+macro2utf8["THORN"] = "Þ";
+utf82macro["Þ"] = "THORN";
macro2utf8["acE"] = "⧛";
utf82macro["⧛"] = "acE";
macro2utf8["Longleftrightarrow"] = "????";
utf82macro["Ъ"] = "HARDcy";
macro2utf8["jmath"] = "j︀";
utf82macro["j︀"] = "jmath";
-macro2utf8["aelig"] = "æ";
-utf82macro["æ"] = "aelig";
-macro2utf8["slarr"] = "←︀";
-utf82macro["←︀"] = "slarr";
+macro2utf8["aelig"] = "æ";
+utf82macro["æ"] = "aelig";
+macro2utf8["slarr"] = "←︀";
+utf82macro["←︀"] = "slarr";
macro2utf8["dlcrop"] = "⌍";
utf82macro["⌍"] = "dlcrop";
-macro2utf8["sube"] = "⊆";
-utf82macro["⊆"] = "sube";
+macro2utf8["sube"] = "⊆";
+utf82macro["⊆"] = "sube";
macro2utf8["cuepr"] = "⋞";
utf82macro["⋞"] = "cuepr";
macro2utf8["supsub"] = "⫔";
utf82macro["ĉ"] = "ccirc";
macro2utf8["larrhk"] = "↩";
utf82macro["↩"] = "larrhk";
-macro2utf8["DiacriticalTilde"] = "˜";
-utf82macro["˜"] = "DiacriticalTilde";
-macro2utf8["brvbar"] = "¦";
-utf82macro["¦"] = "brvbar";
+macro2utf8["DiacriticalTilde"] = "˜";
+utf82macro["˜"] = "DiacriticalTilde";
+macro2utf8["brvbar"] = "¦";
+utf82macro["¦"] = "brvbar";
macro2utf8["triangledown"] = "▿";
utf82macro["▿"] = "triangledown";
macro2utf8["dtrif"] = "▾";
utf82macro["⋜"] = "eqslantless";
macro2utf8["coprod"] = "∐";
utf82macro["∐"] = "coprod";
-macro2utf8["OpenCurlyDoubleQuote"] = "“";
-utf82macro["“"] = "OpenCurlyDoubleQuote";
+macro2utf8["OpenCurlyDoubleQuote"] = "“";
+utf82macro["“"] = "OpenCurlyDoubleQuote";
macro2utf8["NotGreaterSlantEqual"] = "≱";
utf82macro["≱"] = "NotGreaterSlantEqual";
macro2utf8["solb"] = "⧄";
utf82macro["⪊"] = "gnapprox";
macro2utf8["lgE"] = "⪑";
utf82macro["⪑"] = "lgE";
-macro2utf8["CloseCurlyDoubleQuote"] = "”";
-utf82macro["”"] = "CloseCurlyDoubleQuote";
+macro2utf8["CloseCurlyDoubleQuote"] = "”";
+utf82macro["”"] = "CloseCurlyDoubleQuote";
macro2utf8["NotNestedLessLess"] = "⒡̸";
utf82macro["⒡̸"] = "NotNestedLessLess";
macro2utf8["acy"] = "а";
utf82macro["а"] = "acy";
-macro2utf8["leq"] = "≤";
-utf82macro["≤"] = "leq";
+macro2utf8["leq"] = "≤";
+utf82macro["≤"] = "leq";
macro2utf8["Popf"] = "ℙ";
utf82macro["ℙ"] = "Popf";
macro2utf8["les"] = "⩽";
utf82macro["≉̸"] = "nvap";
macro2utf8["boxtimes"] = "⊠";
utf82macro["⊠"] = "boxtimes";
-macro2utf8["raquo"] = "»";
-utf82macro["»"] = "raquo";
+macro2utf8["raquo"] = "»";
+utf82macro["»"] = "raquo";
macro2utf8["CircleMinus"] = "⊖";
utf82macro["⊖"] = "CircleMinus";
-macro2utf8["centerdot"] = "·";
-utf82macro["·"] = "centerdot";
-macro2utf8["xoplus"] = "⊕";
-utf82macro["⊕"] = "xoplus";
+macro2utf8["centerdot"] = "·";
+utf82macro["·"] = "centerdot";
+macro2utf8["xoplus"] = "⊕";
+utf82macro["⊕"] = "xoplus";
macro2utf8["simdot"] = "⩪";
utf82macro["⩪"] = "simdot";
macro2utf8["Vcy"] = "В";
utf82macro["⪁"] = "lesdoto";
macro2utf8["NotSquareSubset"] = "⊏̸";
utf82macro["⊏̸"] = "NotSquareSubset";
-macro2utf8["bullet"] = "•";
-utf82macro["•"] = "bullet";
+macro2utf8["bullet"] = "•";
+utf82macro["•"] = "bullet";
macro2utf8["rarrsim"] = "⥴";
utf82macro["⥴"] = "rarrsim";
macro2utf8["Tcedil"] = "Ţ";
utf82macro["Ħ"] = "Hstrok";
macro2utf8["eopf"] = "𝕖";
utf82macro["𝕖"] = "eopf";
-macro2utf8["Theta"] = "Θ";
-utf82macro["Θ"] = "Theta";
+macro2utf8["Theta"] = "Θ";
+utf82macro["Θ"] = "Theta";
macro2utf8["Cscr"] = "𝒞";
utf82macro["𝒞"] = "Cscr";
macro2utf8["emacr"] = "ē";
utf82macro["arctan"] = "arctan";
macro2utf8["afr"] = "𝔞";
utf82macro["𝔞"] = "afr";
-macro2utf8["thinsp"] = " ";
-utf82macro[" "] = "thinsp";
-macro2utf8["bottom"] = "⊥";
-utf82macro["⊥"] = "bottom";
+macro2utf8["thinsp"] = " ";
+utf82macro[" "] = "thinsp";
+macro2utf8["bottom"] = "⊥";
+utf82macro["⊥"] = "bottom";
macro2utf8["lopf"] = "𝕝";
utf82macro["𝕝"] = "lopf";
macro2utf8["larrlp"] = "↫";
utf82macro["⊘"] = "osol";
macro2utf8["lbrack"] = "[";
utf82macro["["] = "lbrack";
-macro2utf8["hArr"] = "⇔";
-utf82macro["⇔"] = "hArr";
+macro2utf8["hArr"] = "⇔";
+utf82macro["⇔"] = "hArr";
macro2utf8["vdash"] = "⊢";
utf82macro["⊢"] = "vdash";
macro2utf8["UpDownArrow"] = "↕";
utf82macro["𝒬"] = "Qscr";
macro2utf8["Gammad"] = "Ϝ";
utf82macro["Ϝ"] = "Gammad";
-macro2utf8["SubsetEqual"] = "⊆";
-utf82macro["⊆"] = "SubsetEqual";
+macro2utf8["SubsetEqual"] = "⊆";
+utf82macro["⊆"] = "SubsetEqual";
macro2utf8["uplus"] = "⊎";
utf82macro["⊎"] = "uplus";
macro2utf8["LeftTriangle"] = "⊲";
utf82macro["▹"] = "triangleright";
macro2utf8["angrt"] = "∟";
utf82macro["∟"] = "angrt";
-macro2utf8["rfloor"] = "⌋";
-utf82macro["⌋"] = "rfloor";
+macro2utf8["rfloor"] = "⌋";
+utf82macro["⌋"] = "rfloor";
macro2utf8["bigtriangledown"] = "▽";
utf82macro["▽"] = "bigtriangledown";
macro2utf8["ofcir"] = "⦿";
utf82macro["⇂"] = "downharpoonright";
macro2utf8["Ccaron"] = "Č";
utf82macro["Č"] = "Ccaron";
-macro2utf8["sdot"] = "⋅";
-utf82macro["⋅"] = "sdot";
+macro2utf8["sdot"] = "⋅";
+utf82macro["⋅"] = "sdot";
macro2utf8["frown"] = "⌢";
utf82macro["⌢"] = "frown";
macro2utf8["angst"] = "Å";
utf82macro["Å"] = "angst";
macro2utf8["lesges"] = "⪓";
utf82macro["⪓"] = "lesges";
-macro2utf8["iacute"] = "í";
-utf82macro["í"] = "iacute";
-macro2utf8["wedge"] = "∧";
-utf82macro["∧"] = "wedge";
+macro2utf8["iacute"] = "í";
+utf82macro["í"] = "iacute";
+macro2utf8["wedge"] = "∧";
+utf82macro["∧"] = "wedge";
macro2utf8["ssetmn"] = "∖︀";
utf82macro["∖︀"] = "ssetmn";
macro2utf8["rotimes"] = "⨵";
utf82macro["⨵"] = "rotimes";
-macro2utf8["laquo"] = "«";
-utf82macro["«"] = "laquo";
+macro2utf8["laquo"] = "«";
+utf82macro["«"] = "laquo";
macro2utf8["bigstar"] = "★";
utf82macro["★"] = "bigstar";
macro2utf8["Rrightarrow"] = "⇛";
utf82macro["⇛"] = "Rrightarrow";
macro2utf8["erDot"] = "≓";
utf82macro["≓"] = "erDot";
-macro2utf8["subseteq"] = "⊆";
-utf82macro["⊆"] = "subseteq";
+macro2utf8["subseteq"] = "⊆";
+utf82macro["⊆"] = "subseteq";
macro2utf8["leftharpoondown"] = "↽";
utf82macro["↽"] = "leftharpoondown";
-macro2utf8["infin"] = "∞";
-utf82macro["∞"] = "infin";
+macro2utf8["infin"] = "∞";
+utf82macro["∞"] = "infin";
macro2utf8["zdot"] = "ż";
utf82macro["ż"] = "zdot";
macro2utf8["solbar"] = "⌿";
utf82macro["⌿"] = "solbar";
-macro2utf8["Iuml"] = "Ï";
-utf82macro["Ï"] = "Iuml";
+macro2utf8["Iuml"] = "Ï";
+utf82macro["Ï"] = "Iuml";
macro2utf8["Kfr"] = "𝔎";
utf82macro["𝔎"] = "Kfr";
macro2utf8["fscr"] = "𝒻";
utf82macro["≚"] = "veeeq";
macro2utf8["Star"] = "⋆";
utf82macro["⋆"] = "Star";
-macro2utf8["lsquor"] = "‚";
-utf82macro["‚"] = "lsquor";
-macro2utf8["Uacute"] = "Ú";
-utf82macro["Ú"] = "Uacute";
-macro2utf8["weierp"] = "℘";
-utf82macro["℘"] = "weierp";
-macro2utf8["rang"] = "⟩";
-utf82macro["⟩"] = "rang";
+macro2utf8["lsquor"] = "‚";
+utf82macro["‚"] = "lsquor";
+macro2utf8["Uacute"] = "Ú";
+utf82macro["Ú"] = "Uacute";
+macro2utf8["weierp"] = "℘";
+utf82macro["℘"] = "weierp";
+macro2utf8["rang"] = "〉";
+utf82macro["〉"] = "rang";
macro2utf8["hamilt"] = "ℋ";
utf82macro["ℋ"] = "hamilt";
macro2utf8["angsph"] = "∢";
utf82macro["⤹"] = "larrpl";
macro2utf8["nvge"] = "≱";
utf82macro["≱"] = "nvge";
-macro2utf8["approx"] = "≈";
-utf82macro["≈"] = "approx";
+macro2utf8["approx"] = "≈";
+utf82macro["≈"] = "approx";
macro2utf8["lnE"] = "≨";
utf82macro["≨"] = "lnE";
macro2utf8["NotGreaterLess"] = "≹";
utf82macro["≹"] = "NotGreaterLess";
macro2utf8["epar"] = "⋕";
utf82macro["⋕"] = "epar";
-macro2utf8["bigotimes"] = "⊗";
-utf82macro["⊗"] = "bigotimes";
+macro2utf8["bigotimes"] = "⊗";
+utf82macro["⊗"] = "bigotimes";
macro2utf8["xharr"] = "";
utf82macro[""] = "xharr";
macro2utf8["roang"] = "";
utf82macro["⋃"] = "xcup";
macro2utf8["tscr"] = "𝓉";
utf82macro["𝓉"] = "tscr";
-macro2utf8["thkap"] = "≈︀";
-utf82macro["≈︀"] = "thkap";
-macro2utf8["Aacute"] = "Á";
-utf82macro["Á"] = "Aacute";
+macro2utf8["thkap"] = "≈︀";
+utf82macro["≈︀"] = "thkap";
+macro2utf8["Aacute"] = "Á";
+utf82macro["Á"] = "Aacute";
macro2utf8["rcy"] = "р";
utf82macro["р"] = "rcy";
macro2utf8["jukcy"] = "є";
utf82macro["("] = "lpar";
macro2utf8["ldsh"] = "↲";
utf82macro["↲"] = "ldsh";
-macro2utf8["aring"] = "å";
-utf82macro["å"] = "aring";
+macro2utf8["aring"] = "å";
+utf82macro["å"] = "aring";
macro2utf8["nGg"] = "⋙̸";
utf82macro["⋙̸"] = "nGg";
macro2utf8["LessEqualGreater"] = "⋚";
utf82macro["⋚"] = "LessEqualGreater";
macro2utf8["gcd"] = "gcd";
utf82macro["gcd"] = "gcd";
-macro2utf8["oplus"] = "⊕";
-utf82macro["⊕"] = "oplus";
+macro2utf8["oplus"] = "⊕";
+utf82macro["⊕"] = "oplus";
macro2utf8["lcaron"] = "ľ";
utf82macro["ľ"] = "lcaron";
-macro2utf8["DownArrow"] = "↓";
-utf82macro["↓"] = "DownArrow";
+macro2utf8["DownArrow"] = "↓";
+utf82macro["↓"] = "DownArrow";
macro2utf8["xutri"] = "△";
utf82macro["△"] = "xutri";
-macro2utf8["Psi"] = "Ψ";
-utf82macro["Ψ"] = "Psi";
+macro2utf8["Psi"] = "Ψ";
+utf82macro["Ψ"] = "Psi";
macro2utf8["lesssim"] = "≲";
utf82macro["≲"] = "lesssim";
macro2utf8["topcir"] = "⫱";
utf82macro["⇚"] = "Lleftarrow";
macro2utf8["nGt"] = "≫̸";
utf82macro["≫̸"] = "nGt";
-macro2utf8["euml"] = "ë";
-utf82macro["ë"] = "euml";
-macro2utf8["reg"] = "®";
-utf82macro["®"] = "reg";
+macro2utf8["euml"] = "ë";
+utf82macro["ë"] = "euml";
+macro2utf8["reg"] = "®";
+utf82macro["®"] = "reg";
macro2utf8["exponentiale"] = "ⅇ";
utf82macro["ⅇ"] = "exponentiale";
macro2utf8["qint"] = "⨌";
utf82macro["≨"] = "lne";
macro2utf8["LessSlantEqual"] = "⩽";
utf82macro["⩽"] = "LessSlantEqual";
-macro2utf8["Egrave"] = "È";
-utf82macro["È"] = "Egrave";
+macro2utf8["Egrave"] = "È";
+utf82macro["È"] = "Egrave";
macro2utf8["orderof"] = "ℴ";
utf82macro["ℴ"] = "orderof";
macro2utf8["cirE"] = "⧃";
utf82macro[" "] = "VeryThinSpace";
macro2utf8["DownArrowBar"] = "⤓";
utf82macro["⤓"] = "DownArrowBar";
-macro2utf8["Rightarrow"] = "⇒";
-utf82macro["⇒"] = "Rightarrow";
+macro2utf8["Rightarrow"] = "⇒";
+utf82macro["⇒"] = "Rightarrow";
macro2utf8["ocir"] = "⊚";
utf82macro["⊚"] = "ocir";
macro2utf8["NotHumpDownHump"] = "≎̸";
utf82macro["≎̸"] = "NotHumpDownHump";
-macro2utf8["darr"] = "↓";
-utf82macro["↓"] = "darr";
+macro2utf8["darr"] = "↓";
+utf82macro["↓"] = "darr";
macro2utf8["geqq"] = "≧";
utf82macro["≧"] = "geqq";
-macro2utf8["sup1"] = "¹";
-utf82macro["¹"] = "sup1";
+macro2utf8["sup1"] = "¹";
+utf82macro["¹"] = "sup1";
macro2utf8["log"] = "log";
utf82macro["log"] = "log";
-macro2utf8["sup2"] = "²";
-utf82macro["²"] = "sup2";
-macro2utf8["micro"] = "µ";
-utf82macro["µ"] = "micro";
-macro2utf8["amp"] = "&";
-utf82macro["&"] = "amp";
+macro2utf8["sup2"] = "²";
+utf82macro["²"] = "sup2";
+macro2utf8["micro"] = "µ";
+utf82macro["µ"] = "micro";
+macro2utf8["amp"] = "&";
+utf82macro["&"] = "amp";
macro2utf8["arccos"] = "arccos";
utf82macro["arccos"] = "arccos";
-macro2utf8["sup3"] = "³";
-utf82macro["³"] = "sup3";
+macro2utf8["sup3"] = "³";
+utf82macro["³"] = "sup3";
macro2utf8["GreaterTilde"] = "≳";
utf82macro["≳"] = "GreaterTilde";
macro2utf8["circeq"] = "≗";
utf82macro["⦐"] = "rbrkslu";
macro2utf8["Dcaron"] = "Ď";
utf82macro["Ď"] = "Dcaron";
-macro2utf8["and"] = "∧";
-utf82macro["∧"] = "and";
+macro2utf8["and"] = "∧";
+utf82macro["∧"] = "and";
macro2utf8["Vbar"] = "⫫";
utf82macro["⫫"] = "Vbar";
macro2utf8["angzarr"] = "⍼";
utf82macro["⍼"] = "angzarr";
macro2utf8["gel"] = "⋛";
utf82macro["⋛"] = "gel";
-macro2utf8["ang"] = "∠";
-utf82macro["∠"] = "ang";
-macro2utf8["lor"] = "∨";
-utf82macro["∨"] = "lor";
+macro2utf8["ang"] = "∠";
+utf82macro["∠"] = "ang";
+macro2utf8["lor"] = "∨";
+utf82macro["∨"] = "lor";
macro2utf8["circ"] = "∘";
utf82macro["∘"] = "circ";
macro2utf8["upharpoonright"] = "↾";
utf82macro["≊"] = "apE";
macro2utf8["sung"] = "♪";
utf82macro["♪"] = "sung";
-macro2utf8["geq"] = "≥";
-utf82macro["≥"] = "geq";
+macro2utf8["geq"] = "≥";
+utf82macro["≥"] = "geq";
macro2utf8["succsim"] = "≿";
utf82macro["≿"] = "succsim";
macro2utf8["ges"] = "⩾";
utf82macro["Ğ"] = "Gbreve";
macro2utf8["intercal"] = "⊺";
utf82macro["⊺"] = "intercal";
-macro2utf8["supE"] = "⊇";
-utf82macro["⊇"] = "supE";
+macro2utf8["supE"] = "⊇";
+utf82macro["⊇"] = "supE";
macro2utf8["NotCupCap"] = "≭";
utf82macro["≭"] = "NotCupCap";
-macro2utf8["loz"] = "◊";
-utf82macro["◊"] = "loz";
+macro2utf8["loz"] = "◊";
+utf82macro["◊"] = "loz";
macro2utf8["capcup"] = "⩇";
utf82macro["⩇"] = "capcup";
macro2utf8["larrtl"] = "↢";
utf82macro["↢"] = "larrtl";
-macro2utf8["AElig"] = "Æ";
-utf82macro["Æ"] = "AElig";
-macro2utf8["rarr"] = "→";
-utf82macro["→"] = "rarr";
+macro2utf8["AElig"] = "Æ";
+utf82macro["Æ"] = "AElig";
+macro2utf8["rarr"] = "→";
+utf82macro["→"] = "rarr";
macro2utf8["varkappa"] = "ϰ";
utf82macro["ϰ"] = "varkappa";
-macro2utf8["upsi"] = "υ";
-utf82macro["υ"] = "upsi";
+macro2utf8["upsi"] = "υ";
+utf82macro["υ"] = "upsi";
macro2utf8["loang"] = "";
utf82macro[""] = "loang";
macro2utf8["looparrowleft"] = "↫";
utf82macro["⇀"] = "rharu";
macro2utf8["gesl"] = "⋛︀";
utf82macro["⋛︀"] = "gesl";
-macro2utf8["xotime"] = "⊗";
-utf82macro["⊗"] = "xotime";
-macro2utf8["minus"] = "−";
-utf82macro["−"] = "minus";
+macro2utf8["xotime"] = "⊗";
+utf82macro["⊗"] = "xotime";
+macro2utf8["minus"] = "−";
+utf82macro["−"] = "minus";
macro2utf8["gvnE"] = "≩︀";
utf82macro["≩︀"] = "gvnE";
macro2utf8["gfr"] = "𝔤";
utf82macro["ĵ"] = "jcirc";
macro2utf8["roarr"] = "⇾";
utf82macro["⇾"] = "roarr";
-macro2utf8["rho"] = "ρ";
-utf82macro["ρ"] = "rho";
+macro2utf8["rho"] = "ρ";
+utf82macro["ρ"] = "rho";
macro2utf8["nvle"] = "≰";
utf82macro["≰"] = "nvle";
-macro2utf8["sect"] = "§";
-utf82macro["§"] = "sect";
+macro2utf8["sect"] = "§";
+utf82macro["§"] = "sect";
macro2utf8["ggg"] = "⋙";
utf82macro["⋙"] = "ggg";
macro2utf8["plusb"] = "⊞";
utf82macro["$"] = "dollar";
macro2utf8["divonx"] = "⋇";
utf82macro["⋇"] = "divonx";
-macro2utf8["partial"] = "∂";
-utf82macro["∂"] = "partial";
-macro2utf8["DoubleLeftRightArrow"] = "⇔";
-utf82macro["⇔"] = "DoubleLeftRightArrow";
-macro2utf8["varepsilon"] = "ε";
-utf82macro["ε"] = "varepsilon";
-macro2utf8["supe"] = "⊇";
-utf82macro["⊇"] = "supe";
+macro2utf8["partial"] = "∂";
+utf82macro["∂"] = "partial";
+macro2utf8["DoubleLeftRightArrow"] = "⇔";
+utf82macro["⇔"] = "DoubleLeftRightArrow";
+macro2utf8["varepsilon"] = "ε";
+utf82macro["ε"] = "varepsilon";
+macro2utf8["supe"] = "⊇";
+utf82macro["⊇"] = "supe";
macro2utf8["nvlt"] = "≮";
utf82macro["≮"] = "nvlt";
macro2utf8["angrtvb"] = "⦝︀";
utf82macro["⦝︀"] = "angrtvb";
-macro2utf8["gets"] = "←";
-utf82macro["←"] = "gets";
+macro2utf8["gets"] = "←";
+utf82macro["←"] = "gets";
macro2utf8["nparallel"] = "∦";
utf82macro["∦"] = "nparallel";
-macro2utf8["varphi"] = "φ";
-utf82macro["φ"] = "varphi";
+macro2utf8["varphi"] = "φ";
+utf82macro["φ"] = "varphi";
macro2utf8["nsupseteq"] = "⊉";
utf82macro["⊉"] = "nsupseteq";
-macro2utf8["circledR"] = "®";
-utf82macro["®"] = "circledR";
+macro2utf8["circledR"] = "®";
+utf82macro["®"] = "circledR";
macro2utf8["circledS"] = "Ⓢ";
utf82macro["Ⓢ"] = "circledS";
macro2utf8["primes"] = "ℙ";
utf82macro["⋘̸"] = "nLl";
macro2utf8["lozf"] = "⧫";
utf82macro["⧫"] = "lozf";
-macro2utf8["ShortLeftArrow"] = "←︀";
-utf82macro["←︀"] = "ShortLeftArrow";
+macro2utf8["ShortLeftArrow"] = "←︀";
+utf82macro["←︀"] = "ShortLeftArrow";
macro2utf8["nLt"] = "≪̸";
utf82macro["≪̸"] = "nLt";
macro2utf8["lesdotor"] = "⪃";
utf82macro["⨼"] = "iprod";
macro2utf8["lsh"] = "↰";
utf82macro["↰"] = "lsh";
-macro2utf8["Congruent"] = "≡";
-utf82macro["≡"] = "Congruent";
+macro2utf8["Congruent"] = "≡";
+utf82macro["≡"] = "Congruent";
macro2utf8["NotLeftTriangle"] = "⋪";
utf82macro["⋪"] = "NotLeftTriangle";
macro2utf8["rdldhar"] = "⥩";
utf82macro["⥩"] = "rdldhar";
-macro2utf8["varpropto"] = "∝";
-utf82macro["∝"] = "varpropto";
+macro2utf8["varpropto"] = "∝";
+utf82macro["∝"] = "varpropto";
macro2utf8["nvlArr"] = "⇍";
utf82macro["⇍"] = "nvlArr";
macro2utf8["arg"] = "arg";
utf82macro["▵"] = "triangle";
macro2utf8["Qfr"] = "𝔔";
utf82macro["𝔔"] = "Qfr";
-macro2utf8["DiacriticalAcute"] = "´";
-utf82macro["´"] = "DiacriticalAcute";
+macro2utf8["DiacriticalAcute"] = "´";
+utf82macro["´"] = "DiacriticalAcute";
macro2utf8["tbrk"] = "⎴";
utf82macro["⎴"] = "tbrk";
-macro2utf8["Implies"] = "⇒";
-utf82macro["⇒"] = "Implies";
+macro2utf8["Implies"] = "⇒";
+utf82macro["⇒"] = "Implies";
macro2utf8["comp"] = "∁";
utf82macro["∁"] = "comp";
macro2utf8["ddarr"] = "⇊";
utf82macro["↼"] = "lharu";
macro2utf8["glE"] = "⪒";
utf82macro["⪒"] = "glE";
-macro2utf8["cong"] = "≅";
-utf82macro["≅"] = "cong";
+macro2utf8["cong"] = "≅";
+utf82macro["≅"] = "cong";
macro2utf8["Ecaron"] = "Ě";
utf82macro["Ě"] = "Ecaron";
macro2utf8["Uring"] = "Ů";
utf82macro["Ů"] = "Uring";
macro2utf8["blacktriangleright"] = "▸";
utf82macro["▸"] = "blacktriangleright";
-macro2utf8["ntilde"] = "ñ";
-utf82macro["ñ"] = "ntilde";
+macro2utf8["ntilde"] = "ñ";
+utf82macro["ñ"] = "ntilde";
macro2utf8["max"] = "max";
utf82macro["max"] = "max";
macro2utf8["loarr"] = "⇽";
utf82macro["⇽"] = "loarr";
-macro2utf8["LeftArrow"] = "←";
-utf82macro["←"] = "LeftArrow";
+macro2utf8["LeftArrow"] = "←";
+utf82macro["←"] = "LeftArrow";
macro2utf8["Gdot"] = "Ġ";
utf82macro["Ġ"] = "Gdot";
macro2utf8["Uopf"] = "𝕌";
utf82macro["⊫"] = "VDash";
macro2utf8["jsercy"] = "ј";
utf82macro["ј"] = "jsercy";
-macro2utf8["Proportional"] = "∝";
-utf82macro["∝"] = "Proportional";
+macro2utf8["Proportional"] = "∝";
+utf82macro["∝"] = "Proportional";
macro2utf8["OverBracket"] = "⎴";
utf82macro["⎴"] = "OverBracket";
macro2utf8["gla"] = "⪥";
utf82macro["⪥"] = "gla";
-macro2utf8["NotElement"] = "∉";
-utf82macro["∉"] = "NotElement";
-macro2utf8["theta"] = "θ";
-utf82macro["θ"] = "theta";
+macro2utf8["NotElement"] = "∉";
+utf82macro["∉"] = "NotElement";
+macro2utf8["theta"] = "θ";
+utf82macro["θ"] = "theta";
macro2utf8["kcedil"] = "ķ";
utf82macro["ķ"] = "kcedil";
macro2utf8["smeparsl"] = "⧤";
utf82macro["⇥"] = "rarrb";
macro2utf8["rarrc"] = "⤳";
utf82macro["⤳"] = "rarrc";
-macro2utf8["ograve"] = "ò";
-utf82macro["ò"] = "ograve";
+macro2utf8["ograve"] = "ò";
+utf82macro["ò"] = "ograve";
macro2utf8["glj"] = "⪤";
utf82macro["⪤"] = "glj";
-macro2utf8["infty"] = "∞";
-utf82macro["∞"] = "infty";
+macro2utf8["infty"] = "∞";
+utf82macro["∞"] = "infty";
macro2utf8["gnE"] = "≩";
utf82macro["≩"] = "gnE";
macro2utf8["copf"] = "𝕔";
utf82macro["∲"] = "cwconint";
macro2utf8["Ascr"] = "𝒜";
utf82macro["𝒜"] = "Ascr";
-macro2utf8["NegativeThinSpace"] = " ︀";
-utf82macro[" ︀"] = "NegativeThinSpace";
+macro2utf8["NegativeThinSpace"] = " ︀";
+utf82macro[" ︀"] = "NegativeThinSpace";
macro2utf8["varsubsetneq"] = "⊊︀";
utf82macro["⊊︀"] = "varsubsetneq";
macro2utf8["trisb"] = "⧍";
utf82macro["≐"] = "doteq";
macro2utf8["cudarrl"] = "⤸";
utf82macro["⤸"] = "cudarrl";
-macro2utf8["varsigma"] = "ς";
-utf82macro["ς"] = "varsigma";
+macro2utf8["varsigma"] = "ς";
+utf82macro["ς"] = "varsigma";
macro2utf8["Hscr"] = "ℋ";
utf82macro["ℋ"] = "Hscr";
macro2utf8["DownArrowUpArrow"] = "⇵";
utf82macro["⇵"] = "DownArrowUpArrow";
-macro2utf8["Ecirc"] = "Ê";
-utf82macro["Ê"] = "Ecirc";
+macro2utf8["Ecirc"] = "Ê";
+utf82macro["Ê"] = "Ecirc";
macro2utf8["DD"] = "ⅅ";
utf82macro["ⅅ"] = "DD";
-macro2utf8["copy"] = "©";
-utf82macro["©"] = "copy";
+macro2utf8["copy"] = "©";
+utf82macro["©"] = "copy";
macro2utf8["SquareIntersection"] = "⊓";
utf82macro["⊓"] = "SquareIntersection";
macro2utf8["RightUpVector"] = "↾";
utf82macro["𝔵"] = "xfr";
macro2utf8["gne"] = "≩";
utf82macro["≩"] = "gne";
-macro2utf8["Ccedil"] = "Ç";
-utf82macro["Ç"] = "Ccedil";
+macro2utf8["Ccedil"] = "Ç";
+utf82macro["Ç"] = "Ccedil";
macro2utf8["nlarr"] = "↚";
utf82macro["↚"] = "nlarr";
macro2utf8["inodot"] = "ı";
utf82macro["≺"] = "prec";
macro2utf8["percnt"] = "%";
utf82macro["%"] = "percnt";
-macro2utf8["Exists"] = "∃";
-utf82macro["∃"] = "Exists";
+macro2utf8["Exists"] = "∃";
+utf82macro["∃"] = "Exists";
macro2utf8["bcy"] = "б";
utf82macro["б"] = "bcy";
macro2utf8["xopf"] = "𝕩";
utf82macro["𝒱"] = "Vscr";
macro2utf8["Zcaron"] = "Ž";
utf82macro["Ž"] = "Zcaron";
-macro2utf8["ReverseElement"] = "∋";
-utf82macro["∋"] = "ReverseElement";
+macro2utf8["ReverseElement"] = "∋";
+utf82macro["∋"] = "ReverseElement";
macro2utf8["npolint"] = "⨔";
utf82macro["⨔"] = "npolint";
macro2utf8["NotGreaterTilde"] = "≵";
utf82macro["⤟"] = "larrbfs";
macro2utf8["HilbertSpace"] = "ℋ";
utf82macro["ℋ"] = "HilbertSpace";
-macro2utf8["otilde"] = "õ";
-utf82macro["õ"] = "otilde";
+macro2utf8["otilde"] = "õ";
+utf82macro["õ"] = "otilde";
macro2utf8["larrb"] = "⇤";
utf82macro["⇤"] = "larrb";
macro2utf8["wcirc"] = "ŵ";
utf82macro["↶"] = "cularr";
macro2utf8["blacklozenge"] = "⧫";
utf82macro["⧫"] = "blacklozenge";
-macro2utf8["realpart"] = "ℜ";
-utf82macro["ℜ"] = "realpart";
+macro2utf8["realpart"] = "ℜ";
+utf82macro["ℜ"] = "realpart";
macro2utf8["LeftTriangleEqual"] = "⊴";
utf82macro["⊴"] = "LeftTriangleEqual";
macro2utf8["bfr"] = "𝔟";
utf82macro["𝔟"] = "bfr";
-macro2utf8["Uuml"] = "Ü";
-utf82macro["Ü"] = "Uuml";
+macro2utf8["Uuml"] = "Ü";
+utf82macro["Ü"] = "Uuml";
macro2utf8["longleftrightarrow"] = "????";
utf82macro["????"] = "longleftrightarrow";
macro2utf8["lcedil"] = "ļ";
utf82macro["‴"] = "tprime";
macro2utf8["precneqq"] = "⪵";
utf82macro["⪵"] = "precneqq";
-macro2utf8["Downarrow"] = "⇓";
-utf82macro["⇓"] = "Downarrow";
+macro2utf8["Downarrow"] = "⇓";
+utf82macro["⇓"] = "Downarrow";
macro2utf8["rsh"] = "↱";
utf82macro["↱"] = "rsh";
macro2utf8["mid"] = "∣";
utf82macro["𝓎"] = "yscr";
macro2utf8["subdot"] = "⪽";
utf82macro["⪽"] = "subdot";
-macro2utf8["ShortRightArrow"] = "→︀";
-utf82macro["→︀"] = "ShortRightArrow";
+macro2utf8["ShortRightArrow"] = "→︀";
+utf82macro["→︀"] = "ShortRightArrow";
macro2utf8["NotCongruent"] = "≢";
utf82macro["≢"] = "NotCongruent";
macro2utf8["Gg"] = "⋙";
utf82macro["⥵"] = "rarrap";
macro2utf8["NotLessSlantEqual"] = "≰";
utf82macro["≰"] = "NotLessSlantEqual";
-macro2utf8["DoubleRightArrow"] = "⇒";
-utf82macro["⇒"] = "DoubleRightArrow";
+macro2utf8["DoubleRightArrow"] = "⇒";
+utf82macro["⇒"] = "DoubleRightArrow";
macro2utf8["Wfr"] = "𝔚";
utf82macro["𝔚"] = "Wfr";
macro2utf8["subrarr"] = "⥹";
utf82macro["х"] = "khcy";
macro2utf8["oint"] = "∮";
utf82macro["∮"] = "oint";
-macro2utf8["vprop"] = "∝";
-utf82macro["∝"] = "vprop";
+macro2utf8["vprop"] = "∝";
+utf82macro["∝"] = "vprop";
macro2utf8["hardcy"] = "ъ";
utf82macro["ъ"] = "hardcy";
macro2utf8["boxminus"] = "⊟";
utf82macro["⊟"] = "boxminus";
macro2utf8["GreaterLess"] = "≷";
utf82macro["≷"] = "GreaterLess";
-macro2utf8["thetav"] = "ϑ";
-utf82macro["ϑ"] = "thetav";
+macro2utf8["thetav"] = "ϑ";
+utf82macro["ϑ"] = "thetav";
macro2utf8["scE"] = "≾";
utf82macro["≾"] = "scE";
macro2utf8["Gt"] = "≫";
utf82macro["⩀"] = "capdot";
macro2utf8["supdot"] = "⪾";
utf82macro["⪾"] = "supdot";
-macro2utf8["oelig"] = "œ";
-utf82macro["œ"] = "oelig";
+macro2utf8["oelig"] = "œ";
+utf82macro["œ"] = "oelig";
macro2utf8["doteqdot"] = "≑";
utf82macro["≑"] = "doteqdot";
macro2utf8["rharul"] = "⥬";
utf82macro["⥬"] = "rharul";
macro2utf8["cylcty"] = "⌭";
utf82macro["⌭"] = "cylcty";
-macro2utf8["epsi"] = "ε";
-utf82macro["ε"] = "epsi";
+macro2utf8["epsi"] = "ε";
+utf82macro["ε"] = "epsi";
macro2utf8["eqcirc"] = "≖";
utf82macro["≖"] = "eqcirc";
macro2utf8["nLeftarrow"] = "⇍";
utf82macro["⇍"] = "nLeftarrow";
macro2utf8["rtrie"] = "⊵";
utf82macro["⊵"] = "rtrie";
-macro2utf8["para"] = "¶";
-utf82macro["¶"] = "para";
+macro2utf8["para"] = "¶";
+utf82macro["¶"] = "para";
macro2utf8["Lfr"] = "𝔏";
utf82macro["𝔏"] = "Lfr";
macro2utf8["rtrif"] = "▸";
utf82macro["▸"] = "rtrif";
macro2utf8["NotReverseElement"] = "∌";
utf82macro["∌"] = "NotReverseElement";
-macro2utf8["emptyv"] = "∅";
-utf82macro["∅"] = "emptyv";
+macro2utf8["emptyv"] = "∅";
+utf82macro["∅"] = "emptyv";
macro2utf8["nldr"] = "‥";
utf82macro["‥"] = "nldr";
macro2utf8["leqq"] = "≦";
utf82macro["⊋"] = "supsetneqq";
macro2utf8["boxDL"] = "╗";
utf82macro["╗"] = "boxDL";
-macro2utf8["Im"] = "ℑ";
-utf82macro["ℑ"] = "Im";
+macro2utf8["Im"] = "ℑ";
+utf82macro["ℑ"] = "Im";
macro2utf8["sce"] = "≽";
utf82macro["≽"] = "sce";
macro2utf8["prsim"] = "≾";
utf82macro["≾"] = "prsim";
-macro2utf8["diams"] = "♦";
-utf82macro["♦"] = "diams";
+macro2utf8["diams"] = "♦";
+utf82macro["♦"] = "diams";
macro2utf8["gtreqqless"] = "⋛";
utf82macro["⋛"] = "gtreqqless";
macro2utf8["boxDR"] = "╔";
utf82macro["╔"] = "boxDR";
macro2utf8["vartriangleleft"] = "⊲";
utf82macro["⊲"] = "vartriangleleft";
-macro2utf8["SupersetEqual"] = "⊇";
-utf82macro["⊇"] = "SupersetEqual";
-macro2utf8["Omega"] = "Ω";
-utf82macro["Ω"] = "Omega";
+macro2utf8["SupersetEqual"] = "⊇";
+utf82macro["⊇"] = "SupersetEqual";
+macro2utf8["Omega"] = "Ω";
+utf82macro["Ω"] = "Omega";
macro2utf8["nsubseteqq"] = "⊈";
utf82macro["⊈"] = "nsubseteqq";
macro2utf8["Subset"] = "⋐";
utf82macro["⋉"] = "ltimes";
macro2utf8["seswar"] = "⤩";
utf82macro["⤩"] = "seswar";
-macro2utf8["part"] = "∂";
-utf82macro["∂"] = "part";
+macro2utf8["part"] = "∂";
+utf82macro["∂"] = "part";
macro2utf8["bumpE"] = "⪮";
utf82macro["⪮"] = "bumpE";
macro2utf8["minusd"] = "∸";
utf82macro["⪵"] = "prnE";
macro2utf8["lesg"] = "⋚︀";
utf82macro["⋚︀"] = "lesg";
-macro2utf8["cups"] = "∪︀";
-utf82macro["∪︀"] = "cups";
-macro2utf8["thickapprox"] = "≈︀";
-utf82macro["≈︀"] = "thickapprox";
+macro2utf8["cups"] = "∪︀";
+utf82macro["∪︀"] = "cups";
+macro2utf8["thickapprox"] = "≈︀";
+utf82macro["≈︀"] = "thickapprox";
macro2utf8["RightTeeVector"] = "⥛";
utf82macro["⥛"] = "RightTeeVector";
macro2utf8["LowerLeftArrow"] = "↙";
utf82macro["⋩"] = "succnsim";
macro2utf8["boxDl"] = "╖";
utf82macro["╖"] = "boxDl";
-macro2utf8["quot"] = """;
-utf82macro["""] = "quot";
+macro2utf8["quot"] = """;
+utf82macro["""] = "quot";
macro2utf8["lvnE"] = "≨︀";
utf82macro["≨︀"] = "lvnE";
macro2utf8["CircleDot"] = "⊙";
utf82macro["⊙"] = "CircleDot";
macro2utf8["lsime"] = "⪍";
utf82macro["⪍"] = "lsime";
-macro2utf8["Yacute"] = "Ý";
-utf82macro["Ý"] = "Yacute";
+macro2utf8["Yacute"] = "Ý";
+utf82macro["Ý"] = "Yacute";
macro2utf8["esdot"] = "≐";
utf82macro["≐"] = "esdot";
macro2utf8["Supset"] = "⋑";
utf82macro["╓"] = "boxDr";
macro2utf8["plus"] = "+";
utf82macro["+"] = "plus";
-macro2utf8["ddagger"] = "‡";
-utf82macro["‡"] = "ddagger";
+macro2utf8["ddagger"] = "‡";
+utf82macro["‡"] = "ddagger";
macro2utf8["Vdashl"] = "⫦";
utf82macro["⫦"] = "Vdashl";
macro2utf8["equest"] = "≟";
utf82macro["⋇"] = "divideontimes";
macro2utf8["nsmid"] = "∤︀";
utf82macro["∤︀"] = "nsmid";
-macro2utf8["fnof"] = "ƒ";
-utf82macro["ƒ"] = "fnof";
+macro2utf8["fnof"] = "ƒ";
+utf82macro["ƒ"] = "fnof";
macro2utf8["bumpe"] = "≏";
utf82macro["≏"] = "bumpe";
macro2utf8["lhblk"] = "▄";
utf82macro["."] = "period";
macro2utf8["phone"] = "☎";
utf82macro["☎"] = "phone";
-macro2utf8["Eacute"] = "É";
-utf82macro["É"] = "Eacute";
+macro2utf8["Eacute"] = "É";
+utf82macro["É"] = "Eacute";
macro2utf8["dzigrarr"] = "";
utf82macro[""] = "dzigrarr";
macro2utf8["Ll"] = "⋘";
utf82macro["⤞"] = "rarrfs";
macro2utf8["dbkarow"] = "⤏";
utf82macro["⤏"] = "dbkarow";
-macro2utf8["zeta"] = "ζ";
-utf82macro["ζ"] = "zeta";
+macro2utf8["zeta"] = "ζ";
+utf82macro["ζ"] = "zeta";
macro2utf8["Lt"] = "≪";
utf82macro["≪"] = "Lt";
macro2utf8["triminus"] = "⨺";
utf82macro["⨸"] = "odiv";
macro2utf8["ltrie"] = "⊴";
utf82macro["⊴"] = "ltrie";
-macro2utf8["Dagger"] = "‡";
-utf82macro["‡"] = "Dagger";
+macro2utf8["Dagger"] = "‡";
+utf82macro["‡"] = "Dagger";
macro2utf8["ltrif"] = "◂";
utf82macro["◂"] = "ltrif";
macro2utf8["boxHD"] = "╦";
utf82macro["⥨"] = "ruluhar";
macro2utf8["bne"] = "=⃥";
utf82macro["=⃥"] = "bne";
-macro2utf8["prod"] = "∏";
-utf82macro["∏"] = "prod";
+macro2utf8["prod"] = "∏";
+utf82macro["∏"] = "prod";
macro2utf8["Eopf"] = "𝔼";
utf82macro["𝔼"] = "Eopf";
macro2utf8["scsim"] = "≿";
utf82macro["≿"] = "scsim";
macro2utf8["GreaterEqualLess"] = "⋛";
utf82macro["⋛"] = "GreaterEqualLess";
-macro2utf8["Igrave"] = "Ì";
-utf82macro["Ì"] = "Igrave";
-macro2utf8["Longrightarrow"] = "⇒";
-utf82macro["⇒"] = "Longrightarrow";
+macro2utf8["Igrave"] = "Ì";
+utf82macro["Ì"] = "Igrave";
+macro2utf8["Longrightarrow"] = "⇒";
+utf82macro["⇒"] = "Longrightarrow";
macro2utf8["bigcap"] = "⋂";
utf82macro["⋂"] = "bigcap";
macro2utf8["boxHU"] = "╩";
utf82macro["ů"] = "uring";
macro2utf8["equivDD"] = "⩸";
utf82macro["⩸"] = "equivDD";
-macro2utf8["prop"] = "∝";
-utf82macro["∝"] = "prop";
+macro2utf8["prop"] = "∝";
+utf82macro["∝"] = "prop";
macro2utf8["Lopf"] = "𝕃";
utf82macro["𝕃"] = "Lopf";
macro2utf8["ldrushar"] = "⥋";
utf82macro["⥋"] = "ldrushar";
macro2utf8["rarrhk"] = "↪";
utf82macro["↪"] = "rarrhk";
-macro2utf8["Leftarrow"] = "⇐";
-utf82macro["⇐"] = "Leftarrow";
+macro2utf8["Leftarrow"] = "⇐";
+utf82macro["⇐"] = "Leftarrow";
macro2utf8["lltri"] = "◺";
utf82macro["◺"] = "lltri";
macro2utf8["NestedGreaterGreater"] = "≫";
utf82macro[""] = "xhArr";
macro2utf8["triplus"] = "⨹";
utf82macro["⨹"] = "triplus";
-macro2utf8["bot"] = "⊥";
-utf82macro["⊥"] = "bot";
+macro2utf8["bot"] = "⊥";
+utf82macro["⊥"] = "bot";
macro2utf8["Rcy"] = "Р";
utf82macro["Р"] = "Rcy";
macro2utf8["eDDot"] = "⩷";
utf82macro["⩷"] = "eDDot";
-macro2utf8["subseteqq"] = "⊆";
-utf82macro["⊆"] = "subseteqq";
+macro2utf8["subseteqq"] = "⊆";
+utf82macro["⊆"] = "subseteqq";
macro2utf8["cirfnint"] = "⨐";
utf82macro["⨐"] = "cirfnint";
-macro2utf8["spadesuit"] = "♠";
-utf82macro["♠"] = "spadesuit";
+macro2utf8["spadesuit"] = "♠";
+utf82macro["♠"] = "spadesuit";
macro2utf8["nacute"] = "ń";
utf82macro["ń"] = "nacute";
macro2utf8["Zopf"] = "ℤ";
utf82macro["ℤ"] = "Zopf";
macro2utf8["upharpoonleft"] = "↿";
utf82macro["↿"] = "upharpoonleft";
-macro2utf8["shy"] = "­";
-utf82macro["­"] = "shy";
+macro2utf8["shy"] = "­";
+utf82macro["­"] = "shy";
macro2utf8["nparsl"] = "∥︀⃥";
utf82macro["∥︀⃥"] = "nparsl";
macro2utf8["boxHu"] = "╧";
utf82macro["╧"] = "boxHu";
-macro2utf8["ThickSpace"] = "   ";
-utf82macro["   "] = "ThickSpace";
+macro2utf8["ThickSpace"] = "   ";
+utf82macro["   "] = "ThickSpace";
macro2utf8["Or"] = "⩔";
utf82macro["⩔"] = "Or";
macro2utf8["raemptyv"] = "⦳";
utf82macro["Ą"] = "Aogon";
macro2utf8["IEcy"] = "Е";
utf82macro["Е"] = "IEcy";
-macro2utf8["sim"] = "∼";
-utf82macro["∼"] = "sim";
+macro2utf8["sim"] = "∼";
+utf82macro["∼"] = "sim";
macro2utf8["sin"] = "sin";
utf82macro["sin"] = "sin";
macro2utf8["copysr"] = "℗";
utf82macro["℗"] = "copysr";
macro2utf8["scnap"] = "⋩";
utf82macro["⋩"] = "scnap";
-macro2utf8["rdquo"] = "”";
-utf82macro["”"] = "rdquo";
+macro2utf8["rdquo"] = "”";
+utf82macro["”"] = "rdquo";
macro2utf8["aopf"] = "𝕒";
utf82macro["𝕒"] = "aopf";
-macro2utf8["Pi"] = "Π";
-utf82macro["Π"] = "Pi";
+macro2utf8["Pi"] = "Π";
+utf82macro["Π"] = "Pi";
macro2utf8["Udblac"] = "Ű";
utf82macro["Ű"] = "Udblac";
macro2utf8["expectation"] = "ℰ";
utf82macro["≄"] = "NotTildeEqual";
macro2utf8["ncedil"] = "ņ";
utf82macro["ņ"] = "ncedil";
-macro2utf8["Gamma"] = "Γ";
-utf82macro["Γ"] = "Gamma";
-macro2utf8["ecirc"] = "ê";
-utf82macro["ê"] = "ecirc";
+macro2utf8["Gamma"] = "Γ";
+utf82macro["Γ"] = "Gamma";
+macro2utf8["ecirc"] = "ê";
+utf82macro["ê"] = "ecirc";
macro2utf8["dsol"] = "⧶";
utf82macro["⧶"] = "dsol";
macro2utf8["Gcy"] = "Г";
utf82macro["𝕙"] = "hopf";
macro2utf8["blacktriangledown"] = "▾";
utf82macro["▾"] = "blacktriangledown";
-macro2utf8["LeftCeiling"] = "⌈";
-utf82macro["⌈"] = "LeftCeiling";
+macro2utf8["LeftCeiling"] = "⌈";
+utf82macro["⌈"] = "LeftCeiling";
macro2utf8["ulcorn"] = "⌜";
utf82macro["⌜"] = "ulcorn";
macro2utf8["searrow"] = "↘";
utf82macro["ℱ"] = "Fscr";
macro2utf8["cupcup"] = "⩊";
utf82macro["⩊"] = "cupcup";
-macro2utf8["NotEqual"] = "≠";
-utf82macro["≠"] = "NotEqual";
+macro2utf8["NotEqual"] = "≠";
+utf82macro["≠"] = "NotEqual";
macro2utf8["sext"] = "✶";
utf82macro["✶"] = "sext";
-macro2utf8["CirclePlus"] = "⊕";
-utf82macro["⊕"] = "CirclePlus";
+macro2utf8["CirclePlus"] = "⊕";
+utf82macro["⊕"] = "CirclePlus";
macro2utf8["erarr"] = "⥱";
utf82macro["⥱"] = "erarr";
-macro2utf8["dArr"] = "⇓";
-utf82macro["⇓"] = "dArr";
+macro2utf8["dArr"] = "⇓";
+utf82macro["⇓"] = "dArr";
macro2utf8["PrecedesSlantEqual"] = "≼";
utf82macro["≼"] = "PrecedesSlantEqual";
macro2utf8["Itilde"] = "Ĩ";
utf82macro["𝕠"] = "oopf";
macro2utf8["Mscr"] = "ℳ";
utf82macro["ℳ"] = "Mscr";
-macro2utf8["Rfr"] = "ℜ";
-utf82macro["ℜ"] = "Rfr";
-macro2utf8["langle"] = "⟨";
-utf82macro["⟨"] = "langle";
+macro2utf8["Rfr"] = "ℜ";
+utf82macro["ℜ"] = "Rfr";
+macro2utf8["langle"] = "〈";
+utf82macro["〈"] = "langle";
macro2utf8["And"] = "⩓";
utf82macro["⩓"] = "And";
macro2utf8["bprime"] = "‵";
utf82macro["‵"] = "bprime";
macro2utf8["nLeftrightarrow"] = "⇎";
utf82macro["⇎"] = "nLeftrightarrow";
-macro2utf8["Re"] = "ℜ";
-utf82macro["ℜ"] = "Re";
-macro2utf8["OpenCurlyQuote"] = "‘";
-utf82macro["‘"] = "OpenCurlyQuote";
+macro2utf8["Re"] = "ℜ";
+utf82macro["ℜ"] = "Re";
+macro2utf8["OpenCurlyQuote"] = "‘";
+utf82macro["‘"] = "OpenCurlyQuote";
macro2utf8["vopf"] = "𝕧";
utf82macro["𝕧"] = "vopf";
macro2utf8["ulcorner"] = "⌜";
utf82macro["⋛"] = "gtreqless";
macro2utf8["rarrlp"] = "↬";
utf82macro["↬"] = "rarrlp";
-macro2utf8["Lambda"] = "Λ";
-utf82macro["Λ"] = "Lambda";
+macro2utf8["Lambda"] = "Λ";
+utf82macro["Λ"] = "Lambda";
macro2utf8["lobrk"] = "〚";
utf82macro["〚"] = "lobrk";
macro2utf8["rbrace"] = "}";
utf82macro["}"] = "rbrace";
-macro2utf8["rArr"] = "⇒";
-utf82macro["⇒"] = "rArr";
+macro2utf8["rArr"] = "⇒";
+utf82macro["⇒"] = "rArr";
macro2utf8["coloneq"] = "≔";
utf82macro["≔"] = "coloneq";
-macro2utf8["UpArrow"] = "↑";
-utf82macro["↑"] = "UpArrow";
+macro2utf8["UpArrow"] = "↑";
+utf82macro["↑"] = "UpArrow";
macro2utf8["odot"] = "⊙";
utf82macro["⊙"] = "odot";
macro2utf8["LeftDownTeeVector"] = "⥡";
utf82macro["⪼"] = "Sc";
macro2utf8["ycy"] = "ы";
utf82macro["ы"] = "ycy";
-macro2utf8["Prime"] = "″";
-utf82macro["″"] = "Prime";
+macro2utf8["Prime"] = "″";
+utf82macro["″"] = "Prime";
macro2utf8["Gfr"] = "𝔊";
utf82macro["𝔊"] = "Gfr";
macro2utf8["trianglerighteq"] = "⊵";
utf82macro["⦥"] = "range";
macro2utf8["rsqb"] = "]";
utf82macro["]"] = "rsqb";
-macro2utf8["Euml"] = "Ë";
-utf82macro["Ë"] = "Euml";
-macro2utf8["Therefore"] = "∴";
-utf82macro["∴"] = "Therefore";
+macro2utf8["Euml"] = "Ë";
+utf82macro["Ë"] = "Euml";
+macro2utf8["Therefore"] = "∴";
+utf82macro["∴"] = "Therefore";
macro2utf8["nesim"] = "≂̸";
utf82macro["≂̸"] = "nesim";
macro2utf8["order"] = "ℴ";
utf82macro["𝒷"] = "bscr";
macro2utf8["lesseqqgtr"] = "⋚";
utf82macro["⋚"] = "lesseqqgtr";
-macro2utf8["cap"] = "∩";
-utf82macro["∩"] = "cap";
-macro2utf8["ldquo"] = "“";
-utf82macro["“"] = "ldquo";
+macro2utf8["cap"] = "∩";
+utf82macro["∩"] = "cap";
+macro2utf8["ldquo"] = "“";
+utf82macro["“"] = "ldquo";
macro2utf8["nsubseteq"] = "⊈";
utf82macro["⊈"] = "nsubseteq";
macro2utf8["rhov"] = "ϱ";
utf82macro["⋁"] = "xvee";
macro2utf8["olarr"] = "↺";
utf82macro["↺"] = "olarr";
-macro2utf8["nang"] = "∠̸";
-utf82macro["∠̸"] = "nang";
+macro2utf8["nang"] = "∠̸";
+utf82macro["∠̸"] = "nang";
macro2utf8["uwangle"] = "⦧";
utf82macro["⦧"] = "uwangle";
macro2utf8["nlsim"] = "≴";
utf82macro["Ѓ"] = "GJcy";
macro2utf8["nges"] = "≱";
utf82macro["≱"] = "nges";
-macro2utf8["exist"] = "∃";
-utf82macro["∃"] = "exist";
-macro2utf8["cent"] = "¢";
-utf82macro["¢"] = "cent";
-macro2utf8["oacute"] = "ó";
-utf82macro["ó"] = "oacute";
+macro2utf8["exist"] = "∃";
+utf82macro["∃"] = "exist";
+macro2utf8["cent"] = "¢";
+utf82macro["¢"] = "cent";
+macro2utf8["oacute"] = "ó";
+utf82macro["ó"] = "oacute";
macro2utf8["Darr"] = "↡";
utf82macro["↡"] = "Darr";
-macro2utf8["yen"] = "¥";
-utf82macro["¥"] = "yen";
+macro2utf8["yen"] = "¥";
+utf82macro["¥"] = "yen";
macro2utf8["bigcirc"] = "◯";
utf82macro["◯"] = "bigcirc";
macro2utf8["ncy"] = "н";
utf82macro["↗"] = "UpperRightArrow";
macro2utf8["precnapprox"] = "⋨";
utf82macro["⋨"] = "precnapprox";
-macro2utf8["OElig"] = "Œ";
-utf82macro["Œ"] = "OElig";
+macro2utf8["OElig"] = "Œ";
+utf82macro["Œ"] = "OElig";
macro2utf8["hybull"] = "⁃";
utf82macro["⁃"] = "hybull";
macro2utf8["cupbrcap"] = "⩈";
utf82macro["⇛"] = "rAarr";
macro2utf8["precapprox"] = "≾";
utf82macro["≾"] = "precapprox";
-macro2utf8["rsquor"] = "’";
-utf82macro["’"] = "rsquor";
-macro2utf8["pound"] = "£";
-utf82macro["£"] = "pound";
+macro2utf8["rsquor"] = "’";
+utf82macro["’"] = "rsquor";
+macro2utf8["pound"] = "£";
+utf82macro["£"] = "pound";
macro2utf8["lbrksld"] = "⦏";
utf82macro["⦏"] = "lbrksld";
macro2utf8["gesdot"] = "⪀";
utf82macro["⪀"] = "gesdot";
-macro2utf8["Element"] = "∈";
-utf82macro["∈"] = "Element";
+macro2utf8["Element"] = "∈";
+utf82macro["∈"] = "Element";
macro2utf8["xcirc"] = "◯";
utf82macro["◯"] = "xcirc";
macro2utf8["wscr"] = "𝓌";
utf82macro["⤨"] = "toea";
macro2utf8["setmn"] = "∖";
utf82macro["∖"] = "setmn";
-macro2utf8["neg"] = "¬";
-utf82macro["¬"] = "neg";
+macro2utf8["neg"] = "¬";
+utf82macro["¬"] = "neg";
macro2utf8["sol"] = "/";
utf82macro["/"] = "sol";
macro2utf8["yfr"] = "𝔶";
utf82macro["𝔶"] = "yfr";
-macro2utf8["DoubleDownArrow"] = "⇓";
-utf82macro["⇓"] = "DoubleDownArrow";
+macro2utf8["DoubleDownArrow"] = "⇓";
+utf82macro["⇓"] = "DoubleDownArrow";
macro2utf8["Rarr"] = "↠";
utf82macro["↠"] = "Rarr";
macro2utf8["ngE"] = "≱";
utf82macro["≱"] = "ngE";
-macro2utf8["Upsi"] = "ϒ";
-utf82macro["ϒ"] = "Upsi";
+macro2utf8["Upsi"] = "ϒ";
+utf82macro["ϒ"] = "Upsi";
macro2utf8["opar"] = "⦷";
utf82macro["⦷"] = "opar";
macro2utf8["rarrpl"] = "⥅";
utf82macro["⥅"] = "rarrpl";
-macro2utf8["auml"] = "ä";
-utf82macro["ä"] = "auml";
+macro2utf8["auml"] = "ä";
+utf82macro["ä"] = "auml";
macro2utf8["bmod"] = "mod";
utf82macro["mod"] = "bmod";
macro2utf8["SquareSuperset"] = "⊐";
utf82macro["⊐"] = "SquareSuperset";
-macro2utf8["neq"] = "≠";
-utf82macro["≠"] = "neq";
+macro2utf8["neq"] = "≠";
+utf82macro["≠"] = "neq";
macro2utf8["circleddash"] = "⊝";
utf82macro["⊝"] = "circleddash";
macro2utf8["xrarr"] = "";
utf82macro["⋍"] = "backsimeq";
macro2utf8["target"] = "⌖";
utf82macro["⌖"] = "target";
-macro2utf8["ouml"] = "ö";
-utf82macro["ö"] = "ouml";
+macro2utf8["ouml"] = "ö";
+utf82macro["ö"] = "ouml";
macro2utf8["nge"] = "≱⃥";
utf82macro["≱⃥"] = "nge";
macro2utf8["LeftTriangleBar"] = "⧏";
utf82macro["⫳"] = "parsim";
macro2utf8["Gcedil"] = "Ģ";
utf82macro["Ģ"] = "Gcedil";
-macro2utf8["bnequiv"] = "≡⃥";
-utf82macro["≡⃥"] = "bnequiv";
+macro2utf8["bnequiv"] = "≡⃥";
+utf82macro["≡⃥"] = "bnequiv";
macro2utf8["ubreve"] = "ŭ";
utf82macro["ŭ"] = "ubreve";
-macro2utf8["iexcl"] = "¡";
-utf82macro["¡"] = "iexcl";
-macro2utf8["Xi"] = "Ξ";
-utf82macro["Ξ"] = "Xi";
-macro2utf8["omega"] = "ω";
-utf82macro["ω"] = "omega";
+macro2utf8["iexcl"] = "¡";
+utf82macro["¡"] = "iexcl";
+macro2utf8["Xi"] = "Ξ";
+utf82macro["Ξ"] = "Xi";
+macro2utf8["omega"] = "ω";
+utf82macro["ω"] = "omega";
macro2utf8["elsdot"] = "⪗";
utf82macro["⪗"] = "elsdot";
-macro2utf8["propto"] = "∝";
-utf82macro["∝"] = "propto";
+macro2utf8["propto"] = "∝";
+utf82macro["∝"] = "propto";
macro2utf8["squ"] = "□";
utf82macro["□"] = "squ";
macro2utf8["Ycirc"] = "Ŷ";
utf82macro["𝔠"] = "cfr";
macro2utf8["abreve"] = "ă";
utf82macro["ă"] = "abreve";
-macro2utf8["suphsol"] = "⊃/";
-utf82macro["⊃/"] = "suphsol";
+macro2utf8["suphsol"] = "⊃/";
+utf82macro["⊃/"] = "suphsol";
macro2utf8["NegativeThickSpace"] = " ︀";
utf82macro[" ︀"] = "NegativeThickSpace";
macro2utf8["Mcy"] = "М";
utf82macro["М"] = "Mcy";
-macro2utf8["uarr"] = "↑";
-utf82macro["↑"] = "uarr";
+macro2utf8["uarr"] = "↑";
+utf82macro["↑"] = "uarr";
macro2utf8["LeftRightVector"] = "⥎";
utf82macro["⥎"] = "LeftRightVector";
macro2utf8["lAarr"] = "⇚";
utf82macro["∽"] = "bsim";
macro2utf8["simrarr"] = "⥲";
utf82macro["⥲"] = "simrarr";
-macro2utf8["otimes"] = "⊗";
-utf82macro["⊗"] = "otimes";
+macro2utf8["otimes"] = "⊗";
+utf82macro["⊗"] = "otimes";
macro2utf8["NotSucceeds"] = "⊁";
utf82macro["⊁"] = "NotSucceeds";
macro2utf8["Cross"] = "⨯";
utf82macro["⨯"] = "Cross";
-macro2utf8["downarrow"] = "↓";
-utf82macro["↓"] = "downarrow";
+macro2utf8["downarrow"] = "↓";
+utf82macro["↓"] = "downarrow";
macro2utf8["blacktriangle"] = "▴";
utf82macro["▴"] = "blacktriangle";
macro2utf8["TripleDot"] = "⃛";
utf82macro["⇗"] = "neArr";
macro2utf8["rarrtl"] = "↣";
utf82macro["↣"] = "rarrtl";
-macro2utf8["isin"] = "∈";
-utf82macro["∈"] = "isin";
+macro2utf8["isin"] = "∈";
+utf82macro["∈"] = "isin";
macro2utf8["rrarr"] = "⇉";
utf82macro["⇉"] = "rrarr";
-macro2utf8["Upsilon"] = "ϒ";
-utf82macro["ϒ"] = "Upsilon";
+macro2utf8["Upsilon"] = "ϒ";
+utf82macro["ϒ"] = "Upsilon";
macro2utf8["sqsub"] = "⊏";
utf82macro["⊏"] = "sqsub";
macro2utf8["boxUL"] = "╝";
utf82macro["𝔛"] = "Xfr";
macro2utf8["nis"] = "⋼";
utf82macro["⋼"] = "nis";
-macro2utf8["chi"] = "χ";
-utf82macro["χ"] = "chi";
+macro2utf8["chi"] = "χ";
+utf82macro["χ"] = "chi";
macro2utf8["DownRightVector"] = "⇁";
utf82macro["⇁"] = "DownRightVector";
-macro2utf8["niv"] = "∋";
-utf82macro["∋"] = "niv";
+macro2utf8["niv"] = "∋";
+utf82macro["∋"] = "niv";
macro2utf8["boxUR"] = "╚";
utf82macro["╚"] = "boxUR";
macro2utf8["nlArr"] = "⇍";
utf82macro["╬"] = "boxVH";
macro2utf8["bbrk"] = "⎵";
utf82macro["⎵"] = "bbrk";
-macro2utf8["tau"] = "τ";
-utf82macro["τ"] = "tau";
-macro2utf8["UpTee"] = "⊥";
-utf82macro["⊥"] = "UpTee";
+macro2utf8["tau"] = "τ";
+utf82macro["τ"] = "tau";
+macro2utf8["UpTee"] = "⊥";
+utf82macro["⊥"] = "UpTee";
macro2utf8["NotLeftTriangleBar"] = "⧏̸";
utf82macro["⧏̸"] = "NotLeftTriangleBar";
macro2utf8["boxVL"] = "╣";
utf82macro["╣"] = "boxVL";
macro2utf8["Proportion"] = "∷";
utf82macro["∷"] = "Proportion";
-macro2utf8["equiv"] = "≡";
-utf82macro["≡"] = "equiv";
+macro2utf8["equiv"] = "≡";
+utf82macro["≡"] = "equiv";
macro2utf8["blk12"] = "▒";
utf82macro["▒"] = "blk12";
macro2utf8["blk14"] = "░";
utf82macro["ij"] = "ijlig";
macro2utf8["yicy"] = "ї";
utf82macro["ї"] = "yicy";
-macro2utf8["sum"] = "∑";
-utf82macro["∑"] = "sum";
+macro2utf8["sum"] = "∑";
+utf82macro["∑"] = "sum";
macro2utf8["cir"] = "○";
utf82macro["○"] = "cir";
macro2utf8["telrec"] = "⌕";
utf82macro["⨭"] = "loplus";
macro2utf8["varsupsetneq"] = "⊋︀";
utf82macro["⊋︀"] = "varsupsetneq";
-macro2utf8["scaron"] = "š";
-utf82macro["š"] = "scaron";
+macro2utf8["scaron"] = "š";
+utf82macro["š"] = "scaron";
macro2utf8["Diamond"] = "⋄";
utf82macro["⋄"] = "Diamond";
-macro2utf8["lowast"] = "∗";
-utf82macro["∗"] = "lowast";
+macro2utf8["lowast"] = "∗";
+utf82macro["∗"] = "lowast";
macro2utf8["nle"] = "≰⃥";
utf82macro["≰⃥"] = "nle";
macro2utf8["phiv"] = "ϕ";
utf82macro["⋖"] = "lessdot";
macro2utf8["LeftDoubleBracket"] = "〚";
utf82macro["〚"] = "LeftDoubleBracket";
-macro2utf8["Delta"] = "Δ";
-utf82macro["Δ"] = "Delta";
+macro2utf8["Delta"] = "Δ";
+utf82macro["Δ"] = "Delta";
macro2utf8["limsup"] = "limsup";
utf82macro["limsup"] = "limsup";
macro2utf8["tcy"] = "т";
utf82macro["⫗"] = "suphsub";
macro2utf8["squf"] = "▪";
utf82macro["▪"] = "squf";
-macro2utf8["gamma"] = "γ";
-utf82macro["γ"] = "gamma";
+macro2utf8["gamma"] = "γ";
+utf82macro["γ"] = "gamma";
macro2utf8["lrhard"] = "⥭";
utf82macro["⥭"] = "lrhard";
macro2utf8["intprod"] = "⨼";
utf82macro["𝒟"] = "Dscr";
macro2utf8["gsime"] = "⪎";
utf82macro["⪎"] = "gsime";
-macro2utf8["PartialD"] = "∂";
-utf82macro["∂"] = "PartialD";
+macro2utf8["PartialD"] = "∂";
+utf82macro["∂"] = "PartialD";
macro2utf8["Umacr"] = "Ū";
utf82macro["Ū"] = "Umacr";
macro2utf8["tfr"] = "𝔱";
utf82macro["⤽"] = "cularrp";
macro2utf8["UnderBracket"] = "⎵";
utf82macro["⎵"] = "UnderBracket";
-macro2utf8["ugrave"] = "ù";
-utf82macro["ù"] = "ugrave";
+macro2utf8["ugrave"] = "ù";
+utf82macro["ù"] = "ugrave";
macro2utf8["mopf"] = "𝕞";
utf82macro["𝕞"] = "mopf";
macro2utf8["gsiml"] = "⪐";
utf82macro["⪐"] = "gsiml";
-macro2utf8["iquest"] = "¿";
-utf82macro["¿"] = "iquest";
+macro2utf8["iquest"] = "¿";
+utf82macro["¿"] = "iquest";
macro2utf8["nmid"] = "∤";
utf82macro["∤"] = "nmid";
macro2utf8["leftarrowtail"] = "↢";
utf82macro["↢"] = "leftarrowtail";
-macro2utf8["not"] = "¬";
-utf82macro["¬"] = "not";
+macro2utf8["not"] = "¬";
+utf82macro["¬"] = "not";
macro2utf8["Kscr"] = "𝒦";
utf82macro["𝒦"] = "Kscr";
macro2utf8["xsqcup"] = "⊔";
utf82macro["џ"] = "dzcy";
macro2utf8["topf"] = "𝕥";
utf82macro["𝕥"] = "topf";
-macro2utf8["iff"] = "⇔";
-utf82macro["⇔"] = "iff";
+macro2utf8["iff"] = "⇔";
+utf82macro["⇔"] = "iff";
macro2utf8["af"] = "⁡";
utf82macro["⁡"] = "af";
-macro2utf8["Uparrow"] = "⇑";
-utf82macro["⇑"] = "Uparrow";
-macro2utf8["Iacute"] = "Í";
-utf82macro["Í"] = "Iacute";
+macro2utf8["Uparrow"] = "⇑";
+utf82macro["⇑"] = "Uparrow";
+macro2utf8["Iacute"] = "Í";
+utf82macro["Í"] = "Iacute";
macro2utf8["Rscr"] = "ℛ";
utf82macro["ℛ"] = "Rscr";
macro2utf8["vrtri"] = "⊳";
utf82macro["⧎"] = "rtriltri";
macro2utf8["npr"] = "⊀";
utf82macro["⊀"] = "npr";
-macro2utf8["agrave"] = "à";
-utf82macro["à"] = "agrave";
+macro2utf8["agrave"] = "à";
+utf82macro["à"] = "agrave";
macro2utf8["UnderBar"] = "̲";
utf82macro["̲"] = "UnderBar";
-macro2utf8["prime"] = "′";
-utf82macro["′"] = "prime";
-macro2utf8["plusmn"] = "±";
-utf82macro["±"] = "plusmn";
+macro2utf8["prime"] = "′";
+utf82macro["′"] = "prime";
+macro2utf8["plusmn"] = "±";
+utf82macro["±"] = "plusmn";
macro2utf8["eplus"] = "⩱";
utf82macro["⩱"] = "eplus";
-macro2utf8["ap"] = "≈";
-utf82macro["≈"] = "ap";
+macro2utf8["ap"] = "≈";
+utf82macro["≈"] = "ap";
macro2utf8["dlcorn"] = "⌞";
utf82macro["⌞"] = "dlcorn";
macro2utf8["backsim"] = "∽";
utf82macro["⊬"] = "nvdash";
macro2utf8["NotSuperset"] = "⊅";
utf82macro["⊅"] = "NotSuperset";
-macro2utf8["DoubleUpArrow"] = "⇑";
-utf82macro["⇑"] = "DoubleUpArrow";
-macro2utf8["land"] = "∧";
-utf82macro["∧"] = "land";
+macro2utf8["DoubleUpArrow"] = "⇑";
+utf82macro["⇑"] = "DoubleUpArrow";
+macro2utf8["land"] = "∧";
+utf82macro["∧"] = "land";
macro2utf8["topfork"] = "⫚";
utf82macro["⫚"] = "topfork";
macro2utf8["llhard"] = "⥫";
utf82macro["⥫"] = "llhard";
macro2utf8["apos"] = "'";
utf82macro["'"] = "apos";
-macro2utf8["oslash"] = "ø";
-utf82macro["ø"] = "oslash";
-macro2utf8["lang"] = "⟨";
-utf82macro["⟨"] = "lang";
+macro2utf8["oslash"] = "ø";
+utf82macro["ø"] = "oslash";
+macro2utf8["lang"] = "〈";
+utf82macro["〈"] = "lang";
macro2utf8["bernou"] = "ℬ";
utf82macro["ℬ"] = "bernou";
macro2utf8["varrho"] = "ϱ";
utf82macro["ϱ"] = "varrho";
macro2utf8["rcub"] = "}";
utf82macro["}"] = "rcub";
-macro2utf8["Cedilla"] = "¸";
-utf82macro["¸"] = "Cedilla";
+macro2utf8["Cedilla"] = "¸";
+utf82macro["¸"] = "Cedilla";
macro2utf8["ApplyFunction"] = "⁡";
utf82macro["⁡"] = "ApplyFunction";
macro2utf8["nsce"] = "⪰̸";
utf82macro["⪰̸"] = "nsce";
macro2utf8["gscr"] = "ℊ";
utf82macro["ℊ"] = "gscr";
-macro2utf8["imagpart"] = "ℑ";
-utf82macro["ℑ"] = "imagpart";
+macro2utf8["imagpart"] = "ℑ";
+utf82macro["ℑ"] = "imagpart";
macro2utf8["ngtr"] = "≯";
utf82macro["≯"] = "ngtr";
macro2utf8["nsc"] = "⊁";