texlive[43966] trunk: context (Apr 20 22:20)

commits+karl at tug.org commits+karl at tug.org
Sat Apr 22 00:51:44 CEST 2017


Revision: 43966
          http://tug.org/svn/texlive?view=revision&revision=43966
Author:   karl
Date:     2017-04-22 00:51:43 +0200 (Sat, 22 Apr 2017)
Log Message:
-----------
context (Apr 20 22:20)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/context/stubs/unix/mtxrun
    trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
    trunk/Master/bin/win32/mtxrun.lua
    trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf
    trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.html
    trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.man
    trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.xml
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.html
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.xml
    trunk/Master/texmf-dist/doc/man/man1/context.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/luatools.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-babel.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-base.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-bibtex.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-cache.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-chars.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-check.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-colors.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-context.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-dvi.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-epub.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-fcd.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-flac.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-fonts.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-grep.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-interface.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-metapost.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-metatex.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-modules.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-package.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-patterns.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-pdf.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-plain.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-profile.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-rsync.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-scite.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-server.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-texworks.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-timing.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-tools.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-unicode.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-unzip.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-update.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-watch.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-youless.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtxrun.1
    trunk/Master/texmf-dist/doc/man/man1/mtxrun.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/texexec.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/texmfstart.1
    trunk/Master/texmf-dist/doc/man/man1/texmfstart.man1.pdf
    trunk/Master/texmf-dist/scripts/context/lua/mtx-unicode.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtxrun.lua
    trunk/Master/texmf-dist/scripts/context/stubs/mswin/mtxrun.lua
    trunk/Master/texmf-dist/scripts/context/stubs/unix/mtxrun
    trunk/Master/texmf-dist/scripts/context/stubs/win64/mtxrun.lua
    trunk/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
    trunk/Master/texmf-dist/tex/context/base/mkii/context.mkii
    trunk/Master/texmf-dist/tex/context/base/mkiv/char-def.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-map.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/l-table.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
    trunk/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
    trunk/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
    trunk/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.lua
    trunk/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv
    trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-core.lua
    trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua

Modified: trunk/Build/source/texk/texlive/linked_scripts/context/stubs/unix/mtxrun
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/context/stubs/unix/mtxrun	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Build/source/texk/texlive/linked_scripts/context/stubs/unix/mtxrun	2017-04-21 22:51:43 UTC (rev 43966)
@@ -1670,7 +1670,7 @@
 
 package.loaded["l-table"] = package.loaded["l-table"] or true
 
--- original size: 39197, stripped down to: 22960
+-- original size: 39587, stripped down to: 23144
 
 if not modules then modules={} end modules ['l-table']={
   version=1.001,
@@ -2020,7 +2020,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i]=v 
+          if hexify then
+            tt[i]=format("0x%X",v)
+          else
+            tt[i]=v 
+          end
         elseif tv=="string" then
           tt[i]=format("%q",v) 
         elseif tv=="boolean" then
@@ -2036,7 +2040,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i+1]=v 
+          if hexify then
+            tt[i+1]=format("0x%X",v)
+          else
+            tt[i+1]=v 
+          end
         elseif tv=="string" then
           tt[i+1]=format("%q",v) 
         elseif tv=="boolean" then
@@ -20422,8 +20430,8 @@
 
 -- used libraries    : l-lua.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
 -- skipped libraries : -
--- original bytes    : 841485
--- stripped bytes    : 305240
+-- original bytes    : 841875
+-- stripped bytes    : 305446
 
 -- end library merge
 

Modified: trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl	2017-04-21 22:51:43 UTC (rev 43966)
@@ -1,5 +1,5 @@
 #!/usr/bin/env perl
-# $Id: tlmgr.pl 43915 2017-04-18 23:55:09Z preining $
+# $Id: tlmgr.pl 43940 2017-04-20 14:47:49Z preining $
 #
 # Copyright 2008-2017 Norbert Preining
 # This file is licensed under the GNU General Public License version 2
@@ -6,8 +6,8 @@
 # or any later version.
 #
 
-my $svnrev = '$Revision: 43915 $';
-my $datrev = '$Date: 2017-04-19 01:55:09 +0200 (Wed, 19 Apr 2017) $';
+my $svnrev = '$Revision: 43940 $';
+my $datrev = '$Date: 2017-04-20 16:47:49 +0200 (Thu, 20 Apr 2017) $';
 my $tlmgrrevision;
 my $prg;
 if ($svnrev =~ m/: ([0-9]+) /) {
@@ -4037,9 +4037,9 @@
       return ($F_ERROR);
     }
     # check if it is either url or absolute path
-    if (($p !~ m!^(http|ftp)://!i) && 
+    if (($p !~ m!^(https?|ftp)://!i) && 
         !File::Spec->file_name_is_absolute($p)) {
-      tlwarn("$prg: neither http/ftp URL nor absolute path, no action: $p\n");
+      tlwarn("$prg: neither https?/ftp URL nor absolute path, no action: $p\n");
       return ($F_ERROR);
     }
     my $t = shift @ARGV;
@@ -5784,7 +5784,7 @@
   # we normalize the path only if it is
   # - a url starting with neither http or ftp
   # - if we are on Windows, it does not start with Drive:[\/]
-  if (! ( $location =~ m!^(http|ftp)://!i  ||
+  if (! ( $location =~ m!^(https?|ftp)://!i  ||
           (win32() && (!(-e $location) || ($location =~ m!^.:[\\/]!) ) ) ) ) {
     # seems to be a local path, try to normalize it
     my $testloc = abs_path($location);
@@ -6026,7 +6026,7 @@
   #   not work
 
   my $local_copy_tlpdb_used = 0;
-  if ($location =~ m;^(http|ftp)://;) {
+  if ($location =~ m;^(https?|ftp)://;) {
     # first check that the saved tlpdb is present at all
     my $loc_digest = TeXLive::TLCrypto::tl_short_digest($location);
     my $loc_copy_of_remote_tlpdb =
@@ -6167,7 +6167,7 @@
   # save remote database if it is a net location
   # make sure that the writeout of the tlpdb is done in UNIX mode
   # since otherwise the checksum will change.
-  if (!$local_copy_tlpdb_used && $location =~ m;^(http|ftp)://;) {
+  if (!$local_copy_tlpdb_used && $location =~ m;^(https?|ftp)://;) {
     my $loc_digest = TeXLive::TLCrypto::tl_short_digest($location);
     my $loc_copy_of_remote_tlpdb =
       "$Master/$InfraLocation/texlive.tlpdb.$loc_digest";

Modified: trunk/Master/bin/win32/mtxrun.lua
===================================================================
--- trunk/Master/bin/win32/mtxrun.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/bin/win32/mtxrun.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -1670,7 +1670,7 @@
 
 package.loaded["l-table"] = package.loaded["l-table"] or true
 
--- original size: 39197, stripped down to: 22960
+-- original size: 39587, stripped down to: 23144
 
 if not modules then modules={} end modules ['l-table']={
   version=1.001,
@@ -2020,7 +2020,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i]=v 
+          if hexify then
+            tt[i]=format("0x%X",v)
+          else
+            tt[i]=v 
+          end
         elseif tv=="string" then
           tt[i]=format("%q",v) 
         elseif tv=="boolean" then
@@ -2036,7 +2040,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i+1]=v 
+          if hexify then
+            tt[i+1]=format("0x%X",v)
+          else
+            tt[i+1]=v 
+          end
         elseif tv=="string" then
           tt[i+1]=format("%q",v) 
         elseif tv=="boolean" then
@@ -20422,8 +20430,8 @@
 
 -- used libraries    : l-lua.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
 -- skipped libraries : -
--- original bytes    : 841485
--- stripped bytes    : 305240
+-- original bytes    : 841875
+-- stripped bytes    : 305446
 
 -- end library merge
 

Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.html
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.html	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.html	2017-04-21 22:51:43 UTC (rev 43966)
@@ -86,6 +86,7 @@
         <tr><th>--experiments</th><td></td><td>show (known) experiments</td></tr>
         <tr><th/><td/><td/></tr>
         <tr><th>--expand-braces</th><td></td><td>expand complex variable</td></tr>
+        <tr><th>--resolve-path</th><td></td><td>expand variable (completely resolve paths)</td></tr>
         <tr><th>--expand-path</th><td></td><td>expand variable (resolve paths)</td></tr>
         <tr><th>--expand-var</th><td></td><td>expand variable (resolve references)</td></tr>
         <tr><th>--show-path</th><td></td><td>show path expansion of ...</td></tr>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.man	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.man	2017-04-21 22:51:43 UTC (rev 43966)
@@ -119,6 +119,9 @@
 .B --expand-braces
 expand complex variable
 .TP
+.B --resolve-path
+expand variable (completely resolve paths)
+.TP
 .B --expand-path
 expand variable (resolve paths)
 .TP

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.xml
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.xml	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkii/texmfstart.xml	2017-04-21 22:51:43 UTC (rev 43966)
@@ -65,6 +65,7 @@
    </subcategory>
    <subcategory>
     <flag name="expand-braces"><short>expand complex variable</short></flag>
+    <flag name="resolve-path"><short>expand variable (completely resolve paths)</short></flag>
     <flag name="expand-path"><short>expand variable (resolve paths)</short></flag>
     <flag name="expand-var"><short>expand variable (resolve references)</short></flag>
     <flag name="show-path"><short>show path expansion of ...</short></flag>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.html
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.html	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.html	2017-04-21 22:51:43 UTC (rev 43966)
@@ -86,6 +86,7 @@
         <tr><th>--experiments</th><td></td><td>show (known) experiments</td></tr>
         <tr><th/><td/><td/></tr>
         <tr><th>--expand-braces</th><td></td><td>expand complex variable</td></tr>
+        <tr><th>--resolve-path</th><td></td><td>expand variable (completely resolve paths)</td></tr>
         <tr><th>--expand-path</th><td></td><td>expand variable (resolve paths)</td></tr>
         <tr><th>--expand-var</th><td></td><td>expand variable (resolve references)</td></tr>
         <tr><th>--show-path</th><td></td><td>show path expansion of ...</td></tr>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.man	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.man	2017-04-21 22:51:43 UTC (rev 43966)
@@ -119,6 +119,9 @@
 .B --expand-braces
 expand complex variable
 .TP
+.B --resolve-path
+expand variable (completely resolve paths)
+.TP
 .B --expand-path
 expand variable (resolve paths)
 .TP

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.xml
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.xml	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.xml	2017-04-21 22:51:43 UTC (rev 43966)
@@ -66,6 +66,7 @@
    </subcategory>
    <subcategory>
     <flag name="expand-braces"><short>expand complex variable</short></flag>
+    <flag name="resolve-path"><short>expand variable (completely resolve paths)</short></flag>
     <flag name="expand-path"><short>expand variable (resolve paths)</short></flag>
     <flag name="expand-var"><short>expand variable (resolve references)</short></flag>
     <flag name="show-path"><short>show path expansion of ...</short></flag>

Modified: trunk/Master/texmf-dist/doc/man/man1/context.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/luatools.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-babel.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-base.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-bibtex.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-cache.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-chars.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-check.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-colors.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-context.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-dvi.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-epub.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-fcd.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-flac.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-fonts.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-grep.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-interface.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-metapost.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-metatex.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-modules.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-package.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-patterns.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-pdf.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-plain.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-profile.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-rsync.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-scite.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-server.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-texworks.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-timing.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-tools.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-unicode.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-unzip.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-update.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-watch.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtx-youless.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/mtxrun.1
===================================================================
--- trunk/Master/texmf-dist/doc/man/man1/mtxrun.1	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/doc/man/man1/mtxrun.1	2017-04-21 22:51:43 UTC (rev 43966)
@@ -119,6 +119,9 @@
 .B --expand-braces
 expand complex variable
 .TP
+.B --resolve-path
+expand variable (completely resolve paths)
+.TP
 .B --expand-path
 expand variable (resolve paths)
 .TP

Modified: trunk/Master/texmf-dist/doc/man/man1/mtxrun.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/texexec.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/texmfstart.1
===================================================================
--- trunk/Master/texmf-dist/doc/man/man1/texmfstart.1	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/doc/man/man1/texmfstart.1	2017-04-21 22:51:43 UTC (rev 43966)
@@ -119,6 +119,9 @@
 .B --expand-braces
 expand complex variable
 .TP
+.B --resolve-path
+expand variable (completely resolve paths)
+.TP
 .B --expand-path
 expand variable (resolve paths)
 .TP

Modified: trunk/Master/texmf-dist/doc/man/man1/texmfstart.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/scripts/context/lua/mtx-unicode.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/context/lua/mtx-unicode.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/scripts/context/lua/mtx-unicode.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -46,8 +46,8 @@
     helpinfo = helpinfo,
 }
 
-local gmatch, match, gsub, find, lower, format = string.gmatch, string.match, string.gsub, string.find, string.lower, string.format
-local concat = table.concat
+local gmatch, match, gsub, find, lower, upper, format = string.gmatch, string.match, string.gsub, string.find, string.lower, string.upper, string.format
+local concat, sort = table.concat, table.sort
 local split, splitlines, strip = string.split, string.splitlines, string.strip
 local are_equal = table.are_equal
 local tonumber, tostring, rawget = tonumber, tostring, rawget
@@ -90,6 +90,7 @@
     local eastasianwidth       = texttables.eastasianwidth
     local standardizedvariants = texttables.standardizedvariants
     local arabicshaping        = texttables.arabicshaping
+    local index                = texttables.index
     local characterdata        = characters.data
     --
     for unicode, ud in table.sortedpairs(unicodedata) do
@@ -400,6 +401,22 @@
     return t
 end
 
+local function splitindex(str)
+    -- ok, quick and dirty ... could be a nice lpeg instead
+    local l = splitlines(str)
+    local n = { }
+    for i=1,#l do
+        local a, b, c = match(l[i],"([^%,]+)%,?(.-)\t(.*)")
+        if a and b and c then
+            local name = b .. " " .. a
+            name = strip(name)
+            name = gsub(name,"%s+"," ")
+            n[name] = tonumber(c,16)
+        end
+    end
+    return n
+end
+
 function scripts.unicode.load()
     local fullname = resolvers.findfile("char-def.lua")
     report("using: %s",fullname)
@@ -428,6 +445,7 @@
             eastasianwidth       = resolvers.findfile("eastasianwidth.txt")       or "",
             standardizedvariants = resolvers.findfile("standardizedvariants.txt") or "",
             arabicshaping        = resolvers.findfile("arabicshaping.txt")        or "",
+            index                = resolvers.findfile("index.txt")                or "",
         }
         --
         textdata = {
@@ -437,6 +455,7 @@
             eastasianwidth       = textfiles.eastasianwidth       ~= "" and io.loaddata(textfiles.eastasianwidth)       or "",
             standardizedvariants = textfiles.standardizedvariants ~= "" and io.loaddata(textfiles.standardizedvariants) or "",
             arabicshaping        = textfiles.arabicshaping        ~= "" and io.loaddata(textfiles.arabicshaping)        or "",
+            index                = textfiles.index                ~= "" and io.loaddata(textfiles.index)                or "",
         }
         texttables = {
             unicodedata          = splitdefinition(textdata.unicodedata,true),
@@ -445,6 +464,7 @@
             eastasianwidth       = splitdefinition(textdata.eastasianwidth,true),
             standardizedvariants = splitdefinition(textdata.standardizedvariants,false),
             arabicshaping        = splitdefinition(textdata.arabicshaping,true),
+            index                = splitindex(textdata.index),
         }
         return true
     else
@@ -500,11 +520,11 @@
                 end
             end
         end
-        table.sort(result)
+        sort(result)
         for i=1,#result do
             report(result[i])
         end
-        table.sort(map)
+        sort(map)
         for i=1,#map do
             local m = map[i]
             if not blocks[m] then
@@ -512,6 +532,43 @@
             end
         end
     end
+    --
+    local index  = texttables.index
+    local blocks = characters.blocks
+    local data   = characters.data
+    for k, v in next, index do
+        if k ~= lower(k) then
+            index[k] = nil
+        end
+    end
+-- for k, v in next, data do
+--     v.synonym  = nil
+--     v.synonyms = nil
+-- end
+    for k, v in table.sortedhash(index) do
+        local d = data[v]
+        if d and d.description ~= upper(k) then
+            local synonyms = d.synonyms
+            if synonyms then
+                local n = #synonyms
+                local f = false
+                for i=1,n do
+                    if synonyms[i] == k then
+                        f = true
+                        break
+                    end
+                end
+                if not f then
+                    synonyms[n+1] = k
+                end
+             -- synonyms = table.unique(synonyms)
+             -- d.synonyms = synonyms
+                sort(synonyms)
+            else
+                d.synonyms = { k }
+            end
+        end
+    end
 end
 
 -- the action

Modified: trunk/Master/texmf-dist/scripts/context/lua/mtxrun.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/context/lua/mtxrun.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/scripts/context/lua/mtxrun.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -1670,7 +1670,7 @@
 
 package.loaded["l-table"] = package.loaded["l-table"] or true
 
--- original size: 39197, stripped down to: 22960
+-- original size: 39587, stripped down to: 23144
 
 if not modules then modules={} end modules ['l-table']={
   version=1.001,
@@ -2020,7 +2020,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i]=v 
+          if hexify then
+            tt[i]=format("0x%X",v)
+          else
+            tt[i]=v 
+          end
         elseif tv=="string" then
           tt[i]=format("%q",v) 
         elseif tv=="boolean" then
@@ -2036,7 +2040,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i+1]=v 
+          if hexify then
+            tt[i+1]=format("0x%X",v)
+          else
+            tt[i+1]=v 
+          end
         elseif tv=="string" then
           tt[i+1]=format("%q",v) 
         elseif tv=="boolean" then
@@ -20422,8 +20430,8 @@
 
 -- used libraries    : l-lua.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
 -- skipped libraries : -
--- original bytes    : 841485
--- stripped bytes    : 305240
+-- original bytes    : 841875
+-- stripped bytes    : 305446
 
 -- end library merge
 

Modified: trunk/Master/texmf-dist/scripts/context/stubs/mswin/mtxrun.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/context/stubs/mswin/mtxrun.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/scripts/context/stubs/mswin/mtxrun.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -1670,7 +1670,7 @@
 
 package.loaded["l-table"] = package.loaded["l-table"] or true
 
--- original size: 39197, stripped down to: 22960
+-- original size: 39587, stripped down to: 23144
 
 if not modules then modules={} end modules ['l-table']={
   version=1.001,
@@ -2020,7 +2020,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i]=v 
+          if hexify then
+            tt[i]=format("0x%X",v)
+          else
+            tt[i]=v 
+          end
         elseif tv=="string" then
           tt[i]=format("%q",v) 
         elseif tv=="boolean" then
@@ -2036,7 +2040,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i+1]=v 
+          if hexify then
+            tt[i+1]=format("0x%X",v)
+          else
+            tt[i+1]=v 
+          end
         elseif tv=="string" then
           tt[i+1]=format("%q",v) 
         elseif tv=="boolean" then
@@ -20422,8 +20430,8 @@
 
 -- used libraries    : l-lua.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
 -- skipped libraries : -
--- original bytes    : 841485
--- stripped bytes    : 305240
+-- original bytes    : 841875
+-- stripped bytes    : 305446
 
 -- end library merge
 

Modified: trunk/Master/texmf-dist/scripts/context/stubs/unix/mtxrun
===================================================================
--- trunk/Master/texmf-dist/scripts/context/stubs/unix/mtxrun	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/scripts/context/stubs/unix/mtxrun	2017-04-21 22:51:43 UTC (rev 43966)
@@ -1670,7 +1670,7 @@
 
 package.loaded["l-table"] = package.loaded["l-table"] or true
 
--- original size: 39197, stripped down to: 22960
+-- original size: 39587, stripped down to: 23144
 
 if not modules then modules={} end modules ['l-table']={
   version=1.001,
@@ -2020,7 +2020,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i]=v 
+          if hexify then
+            tt[i]=format("0x%X",v)
+          else
+            tt[i]=v 
+          end
         elseif tv=="string" then
           tt[i]=format("%q",v) 
         elseif tv=="boolean" then
@@ -2036,7 +2040,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i+1]=v 
+          if hexify then
+            tt[i+1]=format("0x%X",v)
+          else
+            tt[i+1]=v 
+          end
         elseif tv=="string" then
           tt[i+1]=format("%q",v) 
         elseif tv=="boolean" then
@@ -20422,8 +20430,8 @@
 
 -- used libraries    : l-lua.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
 -- skipped libraries : -
--- original bytes    : 841485
--- stripped bytes    : 305240
+-- original bytes    : 841875
+-- stripped bytes    : 305446
 
 -- end library merge
 

Modified: trunk/Master/texmf-dist/scripts/context/stubs/win64/mtxrun.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/context/stubs/win64/mtxrun.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/scripts/context/stubs/win64/mtxrun.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -1670,7 +1670,7 @@
 
 package.loaded["l-table"] = package.loaded["l-table"] or true
 
--- original size: 39197, stripped down to: 22960
+-- original size: 39587, stripped down to: 23144
 
 if not modules then modules={} end modules ['l-table']={
   version=1.001,
@@ -2020,7 +2020,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i]=v 
+          if hexify then
+            tt[i]=format("0x%X",v)
+          else
+            tt[i]=v 
+          end
         elseif tv=="string" then
           tt[i]=format("%q",v) 
         elseif tv=="boolean" then
@@ -2036,7 +2040,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i+1]=v 
+          if hexify then
+            tt[i+1]=format("0x%X",v)
+          else
+            tt[i+1]=v 
+          end
         elseif tv=="string" then
           tt[i+1]=format("%q",v) 
         elseif tv=="boolean" then
@@ -20422,8 +20430,8 @@
 
 -- used libraries    : l-lua.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
 -- skipped libraries : -
--- original bytes    : 841485
--- stripped bytes    : 305240
+-- original bytes    : 841875
+-- stripped bytes    : 305446
 
 -- end library merge
 

Modified: trunk/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii	2017-04-21 22:51:43 UTC (rev 43966)
@@ -11,7 +11,7 @@
 %C therefore copyrighted by \PRAGMA. See mreadme.pdf for
 %C details.
 
-\newcontextversion{2017.04.16 12:32}
+\newcontextversion{2017.04.20 21:31}
 
 %D This file is loaded at runtime, thereby providing an
 %D excellent place for hacks, patches, extensions and new

Modified: trunk/Master/texmf-dist/tex/context/base/mkii/context.mkii
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkii/context.mkii	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkii/context.mkii	2017-04-21 22:51:43 UTC (rev 43966)
@@ -20,7 +20,7 @@
 %D your styles an modules.
 
 \edef\contextformat {\jobname}
-\edef\contextversion{2017.04.16 12:32}
+\edef\contextversion{2017.04.20 21:31}
 
 %D For those who want to use this:
 

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/char-def.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/char-def.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/char-def.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -103,6 +103,7 @@
   description="CHARACTER TABULATION",
   direction="s",
   linebreak="ba",
+  synonyms={ "horizontal tabulation", "ht", "tab" },
   unicodeslot=0x9,
  },
  {
@@ -111,6 +112,7 @@
   description="LINE FEED (LF)",
   direction="b",
   linebreak="lf",
+  synonyms={ "end of line", "eol", "lf", "new line", "nl" },
   unicodeslot=0xA,
  },
  {
@@ -119,6 +121,7 @@
   description="LINE TABULATION",
   direction="s",
   linebreak="bk",
+  synonyms={ "vertical tabulation", "vt" },
   unicodeslot=0xB,
  },
  {
@@ -127,6 +130,7 @@
   description="FORM FEED (FF)",
   direction="ws",
   linebreak="bk",
+  synonyms={ "ff" },
   unicodeslot=0xC,
  },
  {
@@ -135,6 +139,7 @@
   description="CARRIAGE RETURN (CR)",
   direction="b",
   linebreak="cr",
+  synonyms={ "cr" },
   unicodeslot=0xD,
  },
  {
@@ -255,6 +260,7 @@
   description="INFORMATION SEPARATOR FOUR",
   direction="b",
   linebreak="cm",
+  synonyms={ "file separator" },
   unicodeslot=0x1C,
  },
  {
@@ -263,6 +269,7 @@
   description="INFORMATION SEPARATOR THREE",
   direction="b",
   linebreak="cm",
+  synonyms={ "group separator" },
   unicodeslot=0x1D,
  },
  {
@@ -271,6 +278,7 @@
   description="INFORMATION SEPARATOR TWO",
   direction="b",
   linebreak="cm",
+  synonyms={ "record separator" },
   unicodeslot=0x1E,
  },
  {
@@ -279,6 +287,7 @@
   description="INFORMATION SEPARATOR ONE",
   direction="s",
   linebreak="cm",
+  synonyms={ "unit separator" },
   unicodeslot=0x1F,
  },
  {
@@ -298,6 +307,7 @@
   direction="on",
   linebreak="ex",
   mathclass="close",
+  synonyms={ "bang", "factorial" },
   unicodeslot=0x21,
  },
  {
@@ -309,6 +319,7 @@
   direction="on",
   linebreak="qu",
   mathclass="default",
+  synonyms={ "neutral quotation mark" },
   unicodeslot=0x22,
  },
  {
@@ -321,11 +332,9 @@
   linebreak="al",
   mathclass="binary",
   mathname="mathhash",
+  synonyms={ "crosshatch", "hash", "octothorpe", "pound sign" },
   unicodeslot=0x23,
-  variants={
-   [0xFE0E]="text style",
-   [0xFE0F]="emoji style",
-  },
+  variants=variants_emoji,
  },
  {
   adobename="dollar",
@@ -337,6 +346,7 @@
   linebreak="pr",
   mathclass="binary",
   mathname="mathdollar",
+  synonyms={ "escudo", "milreis" },
   unicodeslot=0x24,
  },
  {
@@ -372,6 +382,7 @@
   direction="on",
   linebreak="qu",
   mathclass="default",
+  synonyms={ "apl quote", "apostrophe-quote", "neutral single quotation mark" },
   unicodeslot=0x27,
  },
  {
@@ -384,6 +395,7 @@
   mathclass="open",
   mathname="lparent",
   mirror=0x29,
+  synonyms={ "opening parenthesis" },
   textclass="open",
   unicodeslot=0x28,
  },
@@ -397,6 +409,7 @@
   mathclass="close",
   mathname="rparent",
   mirror=0x28,
+  synonyms={ "closing parenthesis" },
   textclass="close",
   unicodeslot=0x29,
  },
@@ -410,6 +423,7 @@
   mathclass="binary",
   mathname="ast",
   mathsymbol=0x2217,
+  synonyms={ "star" },
   unicodeslot=0x2A,
   variants=variants_emoji,
  },
@@ -432,6 +446,7 @@
   direction="cs",
   linebreak="is",
   mathclass="punctuation",
+  synonyms={ "decimal separator" },
   unicodeslot=0x2C,
  },
  {
@@ -447,6 +462,7 @@
   mathfiller="relfill",
   mathname="mathhyphen",
   mathsymbol=0x2212,
+  synonyms={ "hyphen or minus sign", "hyphus" },
   unicodeslot=0x2D,
  },
  {
@@ -465,6 +481,7 @@
     name="ldotp",
    },
   },
+  synonyms={ "decimal point", "dot", "period" },
   unicodeslot=0x2E,
  },
  {
@@ -483,6 +500,7 @@
     class="ordinary",
    },
   },
+  synonyms={ "slash", "virgule" },
   unicodeslot=0x2F,
  },
  {
@@ -618,6 +636,7 @@
   direction="on",
   linebreak="is",
   mathclass="punctuation",
+  synonyms={ "greek question mark" },
   unicodeslot=0x3B,
  },
  {
@@ -686,6 +705,7 @@
   description="COMMERCIAL AT",
   direction="on",
   linebreak="al",
+  synonyms={ "at sign" },
   unicodeslot=0x40,
  },
  {
@@ -986,6 +1006,7 @@
   mathclass="open",
   mathname="lbracket",
   mirror=0x5D,
+  synonyms={ "opening square bracket" },
   textclass="open",
   unicodeslot=0x5B,
  },
@@ -999,6 +1020,7 @@
   linebreak="pr",
   mathclass="nothing",
   mathname="backslash",
+  synonyms={ "backslash" },
   unicodeslot=0x5C,
  },
  {
@@ -1011,6 +1033,7 @@
   mathclass="close",
   mathname="rbracket",
   mirror=0x5B,
+  synonyms={ "closing square bracket" },
   textclass="close",
   unicodeslot=0x5D,
  },
@@ -1024,6 +1047,7 @@
   linebreak="al",
   mathclass="topaccent",
   mathname="Hat",
+  synonyms={ "spacing circumflex accent" },
   unicodeslot=0x5E,
  },
  {
@@ -1034,6 +1058,7 @@
   description="LOW LINE",
   direction="on",
   linebreak="al",
+  synonyms={ "spacing underscore" },
   unicodeslot=0x5F,
  },
  {
@@ -1046,6 +1071,7 @@
   linebreak="al",
   mathclass="topaccent",
   mathname="grave",
+  synonyms={ "spacing grave accent" },
   unicodeslot=0x60,
  },
  {
@@ -1346,6 +1372,7 @@
   mathclass="open",
   mathname="lbrace",
   mirror=0x7D,
+  synonyms={ "opening brace", "opening curly bracket" },
   textclass="open",
   unicodeslot=0x7B,
  },
@@ -1384,6 +1411,7 @@
     name="singleverticalbar",
    },
   },
+  synonyms={ "absolute value", "vertical bar" },
   unicodeslot=0x7C,
  },
  {
@@ -1397,6 +1425,7 @@
   mathclass="close",
   mathname="rbrace",
   mirror=0x7B,
+  synonyms={ "closing brace", "closing curly bracket" },
   textclass="close",
   unicodeslot=0x7D,
  },
@@ -1408,6 +1437,7 @@
   description="TILDE",
   direction="on",
   linebreak="al",
+  synonyms={ "spacing tilde" },
   unicodeslot=0x7E,
  },
  {
@@ -1458,6 +1488,7 @@
   description="NEXT LINE (NEL)",
   direction="b",
   linebreak="nl",
+  synonyms={ "nel" },
   unicodeslot=0x85,
  },
  {
@@ -1650,6 +1681,7 @@
   direction="cs",
   linebreak="gl",
   specials={ "nobreak", 0x20 },
+  synonyms={ "nbsp", "non-breaking space" },
   unicodeslot=0xA0,
  },
  {
@@ -1680,6 +1712,7 @@
   description="POUND SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "irish punt", "italian lira", "pound sterling" },
   unicodeslot=0xA3,
  },
  {
@@ -1702,6 +1735,7 @@
   linebreak="pr",
   mathclass="nothing",
   mathname="yen",
+  synonyms={ "yuan sign" },
   unicodeslot=0xA5,
  },
  {
@@ -1712,6 +1746,7 @@
   description="BROKEN BAR",
   direction="on",
   linebreak="al",
+  synonyms={ "broken vertical bar", "parted rule" },
   unicodeslot=0xA6,
  },
  {
@@ -1724,6 +1759,7 @@
   linebreak="ai",
   mathclass="box",
   mathname="S",
+  synonyms={ "european paragraph sign" },
   unicodeslot=0xA7,
  },
  {
@@ -1737,6 +1773,7 @@
   mathclass="topaccent",
   mathname="ddot",
   specials={ "compat", 0x20, 0x308 },
+  synonyms={ "spacing diaeresis" },
   unicodeslot=0xA8,
  },
  {
@@ -1768,6 +1805,7 @@
   direction="on",
   linebreak="qu",
   mirror=0xBB,
+  synonyms={ "chevrons", "left pointing guillemet" },
   textclass="open",
   unicodeslot=0xAB,
  },
@@ -1789,6 +1827,7 @@
     name="neg",
    },
   },
+  synonyms={ "angled dash" },
   unicodeslot=0xAC,
  },
  {
@@ -1799,6 +1838,7 @@
   description="SOFT HYPHEN",
   direction="bn",
   linebreak="ba",
+  synonyms={ "discretionary hyphen", "shy" },
   unicodeslot=0xAD,
  },
  {
@@ -1809,6 +1849,7 @@
   description="REGISTERED SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "registered trade mark sign" },
   unicodeslot=0xAE,
   variants=variants_emoji,
  },
@@ -1825,6 +1866,7 @@
   mathmleq=0x203E,
   mathname="bar",
   specials={ "compat", 0x20, 0x304 },
+  synonyms={ "apl overbar", "overline", "spacing macron" },
   unicodeslot=0xAF,
  },
  {
@@ -1858,6 +1900,7 @@
   direction="en",
   linebreak="ai",
   specials={ "super", 0x32 },
+  synonyms={ "squared" },
   unicodeslot=0xB2,
  },
  {
@@ -1869,6 +1912,7 @@
   direction="en",
   linebreak="ai",
   specials={ "super", 0x33 },
+  synonyms={ "cubed" },
   unicodeslot=0xB3,
  },
  {
@@ -1882,6 +1926,7 @@
   mathclass="topaccent",
   mathname="acute",
   specials={ "compat", 0x20, 0x301 },
+  synonyms={ "spacing acute accent" },
   unicodeslot=0xB4,
  },
  {
@@ -1905,6 +1950,7 @@
   linebreak="ai",
   mathclass="box",
   mathname="P",
+  synonyms={ "european section sign", "paragraph sign" },
   unicodeslot=0xB6,
  },
  {
@@ -1917,6 +1963,7 @@
   linebreak="ai",
   mathclass="binary",
   mathname="centerdot",
+  synonyms={ "georgian comma", "greek ano teleia", "greek middle dot", "midpoint" },
   unicodeslot=0xB7,
  },
  {
@@ -1928,6 +1975,7 @@
   direction="on",
   linebreak="ai",
   specials={ "compat", 0x20, 0x327 },
+  synonyms={ "spacing cedilla" },
   unicodeslot=0xB8,
  },
  {
@@ -1960,6 +2008,7 @@
   direction="on",
   linebreak="qu",
   mirror=0xAB,
+  synonyms={ "right pointing guillemet" },
   textclass="close",
   unicodeslot=0xBB,
  },
@@ -2004,6 +2053,7 @@
   description="INVERTED QUESTION MARK",
   direction="on",
   linebreak="op",
+  synonyms={ "turned question mark" },
   unicodeslot=0xBF,
  },
  {
@@ -2088,6 +2138,7 @@
   lccode=0xE6,
   linebreak="al",
   shcode={ 0x41, 0x45 },
+  synonyms={ "latin capital ligature ae" },
   unicodeslot=0xC6,
  },
  {
@@ -2291,6 +2342,7 @@
   linebreak="ai",
   mathclass="binary",
   mathname="times",
+  synonyms={ "cartesian product" },
   unicodeslot=0xD7,
  },
  {
@@ -2303,6 +2355,7 @@
   lccode=0xF8,
   linebreak="al",
   shcode=0x4F,
+  synonyms={ "latin capital letter o slash" },
   unicodeslot=0xD8,
  },
  {
@@ -2386,6 +2439,7 @@
   direction="l",
   linebreak="al",
   shcode={ 0x73, 0x73 },
+  synonyms={ "eszett" },
   uccode={ 0x53, 0x53 },
   unicodeslot=0xDF,
  },
@@ -2472,6 +2526,7 @@
   direction="l",
   linebreak="al",
   shcode={ 0x61, 0x65 },
+  synonyms={ "ash", "latin small ligature ae" },
   uccode=0xC6,
   unicodeslot=0xE6,
  },
@@ -2685,6 +2740,7 @@
   linebreak="ai",
   mathclass="binary",
   mathname="div",
+  synonyms={ "obelus" },
   unicodeslot=0xF7,
  },
  {
@@ -2696,6 +2752,7 @@
   direction="l",
   linebreak="al",
   shcode=0x6F,
+  synonyms={ "latin small letter o slash" },
   uccode=0xD8,
   unicodeslot=0xF8,
  },
@@ -3374,6 +3431,7 @@
   linebreak="al",
   shcode=0x49,
   specials={ "char", 0x49, 0x307 },
+  synonyms={ "latin capital letter i dot" },
   unicodeslot=0x130,
  },
  {
@@ -3794,6 +3852,7 @@
   direction="l",
   linebreak="al",
   shcode={ 0x6F, 0x65 },
+  synonyms={ "ethel", "latin small letter o e" },
   uccode=0x152,
   unicodeslot=0x153,
  },
@@ -4472,6 +4531,7 @@
   direction="l",
   lccode=0x1DD,
   linebreak="al",
+  synonyms={ "latin capital letter turned e" },
   unicodeslot=0x18E,
  },
  {
@@ -4491,6 +4551,7 @@
   direction="l",
   lccode=0x25B,
   linebreak="al",
+  synonyms={ "latin capital letter epsilon" },
   unicodeslot=0x190,
  },
  {
@@ -4512,6 +4573,7 @@
   direction="l",
   linebreak="al",
   shcode=0x66,
+  synonyms={ "florin currency symbol", "folder", "function symbol", "latin small letter script f" },
   uccode=0x191,
   unicodeslot=0x192,
  },
@@ -4562,6 +4624,7 @@
   lccode=0x268,
   linebreak="al",
   shcode=0x49,
+  synonyms={ "latin capital letter i bar" },
   unicodeslot=0x197,
  },
  {
@@ -4605,6 +4668,7 @@
   linebreak="al",
   mathclass="variable",
   mathname="lambdabar",
+  synonyms={ "latin letter lambda bar" },
   unicodeslot=0x19B,
  },
  {
@@ -4644,6 +4708,7 @@
   lccode=0x275,
   linebreak="al",
   shcode=0x4F,
+  synonyms={ "latin capital letter barred o", "latin capital letter o bar" },
   unicodeslot=0x19F,
  },
  {
@@ -4837,6 +4902,7 @@
   lccode=0x28B,
   linebreak="al",
   shcode=0x56,
+  synonyms={ "latin capital letter script v" },
   unicodeslot=0x1B2,
  },
  {
@@ -4880,6 +4946,7 @@
   direction="l",
   linebreak="al",
   shcode=0x7A,
+  synonyms={ "latin small letter z bar" },
   uccode=0x1B5,
   unicodeslot=0x1B6,
  },
@@ -4968,6 +5035,7 @@
   description="LATIN LETTER DENTAL CLICK",
   direction="l",
   linebreak="al",
+  synonyms={ "pipe" },
   unicodeslot=0x1C0,
  },
  {
@@ -4976,6 +5044,7 @@
   description="LATIN LETTER LATERAL CLICK",
   direction="l",
   linebreak="al",
+  synonyms={ "double pipe" },
   unicodeslot=0x1C1,
  },
  {
@@ -4984,6 +5053,7 @@
   description="LATIN LETTER ALVEOLAR CLICK",
   direction="l",
   linebreak="al",
+  synonyms={ "double-barred pipe" },
   unicodeslot=0x1C2,
  },
  {
@@ -4992,6 +5062,7 @@
   description="LATIN LETTER RETROFLEX CLICK",
   direction="l",
   linebreak="al",
+  synonyms={ "latin letter exclamation mark" },
   unicodeslot=0x1C3,
  },
  {
@@ -6549,6 +6620,7 @@
   description="LATIN SMALL LETTER ALPHA",
   direction="l",
   linebreak="al",
+  synonyms={ "latin small letter script a" },
   unicodeslot=0x251,
  },
  {
@@ -6597,6 +6669,7 @@
   direction="l",
   linebreak="al",
   shcode=0x64,
+  synonyms={ "latin small letter d retroflex hook" },
   uccode=0x189,
   unicodeslot=0x256,
  },
@@ -6645,6 +6718,7 @@
   description="LATIN SMALL LETTER OPEN E",
   direction="l",
   linebreak="al",
+  synonyms={ "latin small letter epsilon" },
   uccode=0x190,
   unicodeslot=0x25B,
  },
@@ -6670,6 +6744,7 @@
   description="LATIN SMALL LETTER CLOSED REVERSED OPEN E",
   direction="l",
   linebreak="al",
+  synonyms={ "latin small letter closed reversed epsilon" },
   unicodeslot=0x25E,
  },
  {
@@ -6722,6 +6797,7 @@
   description="LATIN SMALL LETTER RAMS HORN",
   direction="l",
   linebreak="al",
+  synonyms={ "latin small letter baby gamma" },
   unicodeslot=0x264,
  },
  {
@@ -6869,6 +6945,7 @@
   description="LATIN SMALL LETTER BARRED O",
   direction="l",
   linebreak="al",
+  synonyms={ "latin small letter o bar" },
   uccode=0x19F,
   unicodeslot=0x275,
  },
@@ -7057,6 +7134,7 @@
   direction="l",
   linebreak="al",
   shcode=0x76,
+  synonyms={ "latin small letter script v" },
   uccode=0x1B2,
   unicodeslot=0x28B,
  },
@@ -7066,6 +7144,7 @@
   description="LATIN SMALL LETTER TURNED V",
   direction="l",
   linebreak="al",
+  synonyms={ "caret" },
   uccode=0x245,
   unicodeslot=0x28C,
  },
@@ -7116,6 +7195,7 @@
   description="LATIN SMALL LETTER EZH",
   direction="l",
   linebreak="al",
+  synonyms={ "dram" },
   uccode=0x1B7,
   unicodeslot=0x292,
  },
@@ -7142,6 +7222,7 @@
   description="LATIN LETTER PHARYNGEAL VOICED FRICATIVE",
   direction="l",
   linebreak="al",
+  synonyms={ "latin letter reversed glottal stop" },
   unicodeslot=0x295,
  },
  {
@@ -7166,6 +7247,7 @@
   description="LATIN LETTER BILABIAL CLICK",
   direction="l",
   linebreak="al",
+  synonyms={ "latin letter bullseye" },
   unicodeslot=0x298,
  },
  {
@@ -7181,6 +7263,7 @@
   description="LATIN SMALL LETTER CLOSED OPEN E",
   direction="l",
   linebreak="al",
+  synonyms={ "latin small letter closed epsilon" },
   unicodeslot=0x29A,
  },
  {
@@ -7454,6 +7537,7 @@
   description="MODIFIER LETTER APOSTROPHE",
   direction="l",
   linebreak="al",
+  synonyms={ "glottal stop", "neutral apostrophe" },
   unicodeslot=0x2BC,
  },
  {
@@ -7554,6 +7638,7 @@
   mathclass="topaccent",
   mathname="check",
   specials={ "compat", 0x20, 0x30C },
+  synonyms={ "mandarin chinese third tone", "modifier letter hacek" },
   unicodeslot=0x2C7,
  },
  {
@@ -7571,6 +7656,7 @@
   description="MODIFIER LETTER MACRON",
   direction="on",
   linebreak="ai",
+  synonyms={ "mandarin chinese first tone" },
   unicodeslot=0x2C9,
  },
  {
@@ -7580,6 +7666,7 @@
   description="MODIFIER LETTER ACUTE ACCENT",
   direction="on",
   linebreak="ai",
+  synonyms={ "mandarin chinese second tone" },
   unicodeslot=0x2CA,
  },
  {
@@ -7589,6 +7676,7 @@
   description="MODIFIER LETTER GRAVE ACCENT",
   direction="on",
   linebreak="ai",
+  synonyms={ "mandarin chinese fourth tone" },
   unicodeslot=0x2CB,
  },
  {
@@ -7713,6 +7801,7 @@
   mathclass="topaccent",
   mathname="dot",
   specials={ "compat", 0x20, 0x307 },
+  synonyms={ "mandarin chinese fifth or neutral tone" },
   unicodeslot=0x2D9,
  },
  {
@@ -7776,6 +7865,7 @@
   description="MODIFIER LETTER CROSS ACCENT",
   direction="on",
   linebreak="bb",
+  synonyms={ "swedish grave accent" },
   unicodeslot=0x2DF,
  },
  {
@@ -8023,6 +8113,7 @@
   description="COMBINING GRAVE ACCENT",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "greek varia" },
   unicodeslot=0x300,
  },
  {
@@ -8033,6 +8124,7 @@
   description="COMBINING ACUTE ACCENT",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "greek oxia", "greek tonos", "stress mark" },
   unicodeslot=0x301,
  },
  {
@@ -8069,6 +8161,7 @@
   description="COMBINING MACRON",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "long" },
   unicodeslot=0x304,
  },
  {
@@ -8079,6 +8172,7 @@
   description="COMBINING OVERLINE",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "overscore", "vinculum" },
   unicodeslot=0x305,
  },
  {
@@ -8089,6 +8183,7 @@
   description="COMBINING BREVE",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "greek vrachy", "short" },
   unicodeslot=0x306,
  },
  {
@@ -8099,6 +8194,7 @@
   description="COMBINING DOT ABOVE",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "derivative" },
   unicodeslot=0x307,
  },
  {
@@ -8109,6 +8205,7 @@
   description="COMBINING DIAERESIS",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "double derivative", "double dot above", "greek dialytika", "umlaut" },
   unicodeslot=0x308,
  },
  {
@@ -8149,6 +8246,7 @@
   description="COMBINING CARON",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "combining hacek", "v above" },
   unicodeslot=0x30C,
  },
  {
@@ -8209,6 +8307,7 @@
   description="COMBINING TURNED COMMA ABOVE",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "cedilla above" },
   unicodeslot=0x312,
  },
  {
@@ -8219,6 +8318,7 @@
   description="COMBINING COMMA ABOVE",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "greek psili", "greek smooth breathing mark" },
   unicodeslot=0x313,
  },
  {
@@ -8229,6 +8329,7 @@
   description="COMBINING REVERSED COMMA ABOVE",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "greek dasia", "greek rough breathing mark" },
   unicodeslot=0x314,
  },
  {
@@ -8430,6 +8531,7 @@
   description="COMBINING OGONEK",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "nasal hook" },
   unicodeslot=0x328,
  },
  {
@@ -8530,6 +8632,7 @@
   description="COMBINING LOW LINE",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "underline", "underscore" },
   unicodeslot=0x332,
  },
  {
@@ -8540,6 +8643,7 @@
   description="COMBINING DOUBLE LOW LINE",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "double underline", "double underscore" },
   unicodeslot=0x333,
  },
  {
@@ -8580,6 +8684,7 @@
   description="COMBINING SHORT SOLIDUS OVERLAY",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "short slash overlay" },
   unicodeslot=0x337,
  },
  {
@@ -8592,6 +8697,7 @@
   linebreak="cm",
   mathclass="relation",
   mathname="not",
+  synonyms={ "long slash overlay" },
   unicodeslot=0x338,
  },
  {
@@ -8726,6 +8832,7 @@
   description="COMBINING GREEK YPOGEGRAMMENI",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "greek iota subscript", "greek non-spacing iota below" },
   uccode=0x399,
   unicodeslot=0x345,
  },
@@ -8816,6 +8923,7 @@
   description="COMBINING GRAPHEME JOINER",
   direction="nsm",
   linebreak="gl",
+  synonyms={ "cgj" },
   unicodeslot=0x34F,
  },
  {
@@ -8933,6 +9041,7 @@
   description="COMBINING DOUBLE BREVE BELOW",
   direction="nsm",
   linebreak="gl",
+  synonyms={ "ligature tie below", "papyrological hyphen" },
   unicodeslot=0x35C,
  },
  {
@@ -8980,6 +9089,7 @@
   description="COMBINING DOUBLE INVERTED BREVE",
   direction="nsm",
   linebreak="gl",
+  synonyms={ "ligature tie" },
   unicodeslot=0x361,
  },
  {
@@ -9377,6 +9487,7 @@
   linebreak="al",
   mathclass="variable",
   mathname="Gamma",
+  synonyms={ "gamma function" },
   unicodeslot=0x393,
  },
  [0x394]={
@@ -9940,6 +10051,7 @@
   linebreak="al",
   mathclass="variable",
   mathname="pi",
+  synonyms={ "mathematical constant 3.141592... pi", "mathematical constant pi" },
   uccode=0x3A0,
   unicodeslot=0x3C0,
  },
@@ -10133,6 +10245,7 @@
   direction="l",
   linebreak="al",
   specials={ "compat", 0x3B2 },
+  synonyms={ "curled beta" },
   uccode=0x392,
   unicodeslot=0x3D0,
  },
@@ -10146,6 +10259,7 @@
   mathclass="variable",
   mathname="varTheta",
   specials={ "compat", 0x3B8 },
+  synonyms={ "script theta" },
   uccode=0x398,
   unicodeslot=0x3D1,
  },
@@ -10199,6 +10313,7 @@
   mathclass="variable",
   mathname="varpi",
   specials={ "compat", 0x3C0 },
+  synonyms={ "omega pi" },
   uccode=0x3A0,
   unicodeslot=0x3D6,
  },
@@ -10457,6 +10572,7 @@
   direction="l",
   linebreak="al",
   specials={ "compat", 0x3C2 },
+  synonyms={ "greek small letter lunate sigma" },
   uccode=0x3F9,
   unicodeslot=0x3F2,
  },
@@ -10486,6 +10602,7 @@
   mathclass="variable",
   mathname="epsilon",
   specials={ "compat", 0x3B5 },
+  synonyms={ "straight epsilon" },
   uccode=0x395,
   unicodeslot=0x3F5,
  },
@@ -10496,6 +10613,7 @@
   linebreak="al",
   mathclass="variable",
   mathname="backepsilon",
+  synonyms={ "reversed straight epsilon" },
   unicodeslot=0x3F6,
  },
  [0x3F7]={
@@ -14007,6 +14125,7 @@
   description="ARMENIAN APOSTROPHE",
   direction="l",
   linebreak="al",
+  synonyms={ "armenian modifier letter right half ring" },
   unicodeslot=0x55A,
  },
  [0x55B]={
@@ -14015,6 +14134,7 @@
   description="ARMENIAN EMPHASIS MARK",
   direction="l",
   linebreak="al",
+  synonyms={ "armenian shesht" },
   unicodeslot=0x55B,
  },
  [0x55C]={
@@ -14023,6 +14143,7 @@
   description="ARMENIAN EXCLAMATION MARK",
   direction="l",
   linebreak="al",
+  synonyms={ "armenian batsaganchakan nshan" },
   unicodeslot=0x55C,
  },
  [0x55D]={
@@ -14031,6 +14152,7 @@
   description="ARMENIAN COMMA",
   direction="l",
   linebreak="al",
+  synonyms={ "armenian bowt" },
   unicodeslot=0x55D,
  },
  [0x55E]={
@@ -14039,6 +14161,7 @@
   description="ARMENIAN QUESTION MARK",
   direction="l",
   linebreak="al",
+  synonyms={ "armenian hartsakan nshan" },
   unicodeslot=0x55E,
  },
  [0x55F]={
@@ -14047,6 +14170,7 @@
   description="ARMENIAN ABBREVIATION MARK",
   direction="l",
   linebreak="al",
+  synonyms={ "armenian patiw" },
   unicodeslot=0x55F,
  },
  [0x561]={
@@ -14406,6 +14530,7 @@
   description="ARMENIAN FULL STOP",
   direction="l",
   linebreak="is",
+  synonyms={ "armenian vertsaket", "georgian full stop" },
   unicodeslot=0x589,
  },
  [0x58A]={
@@ -14413,6 +14538,7 @@
   description="ARMENIAN HYPHEN",
   direction="on",
   linebreak="ba",
+  synonyms={ "armenian yentamna" },
   unicodeslot=0x58A,
  },
  [0x58D]={
@@ -14434,6 +14560,7 @@
   description="ARMENIAN DRAM SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "armenian currency" },
   unicodeslot=0x58F,
  },
  [0x591]={
@@ -15747,6 +15874,7 @@
   description="ARABIC TATWEEL",
   direction="al",
   linebreak="al",
+  synonyms={ "arabic kashida" },
   unicodeslot=0x640,
  },
  [0x641]={
@@ -16117,6 +16245,7 @@
   description="ARABIC THOUSANDS SEPARATOR",
   direction="an",
   linebreak="nu",
+  synonyms={ "arabic phrase separator" },
   unicodeslot=0x66C,
  },
  [0x66D]={
@@ -16850,6 +16979,7 @@
   linebreak="al",
   shcode=0x647,
   specials={ "char", 0x6D5, 0x654 },
+  synonyms={ "arabic letter hamzah on ha", "izafet" },
   unicodeslot=0x6C0,
  },
  [0x6C1]={
@@ -17471,6 +17601,7 @@
   description="SYRIAC ABBREVIATION MARK",
   direction="al",
   linebreak="al",
+  synonyms={ "syriac sam" },
   unicodeslot=0x70F,
   visible="yes",
  },
@@ -20466,6 +20597,7 @@
   description="DEVANAGARI SIGN CANDRABINDU",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "devanagari anunasika" },
   unicodeslot=0x901,
  },
  [0x902]={
@@ -20474,6 +20606,7 @@
   description="DEVANAGARI SIGN ANUSVARA",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "devanagari bindu" },
   unicodeslot=0x902,
  },
  [0x903]={
@@ -21076,6 +21209,7 @@
   description="DEVANAGARI SIGN VIRAMA",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "halant" },
   unicodeslot=0x94D,
  },
  [0x94E]={
@@ -21267,6 +21401,7 @@
   description="DEVANAGARI DANDA",
   direction="l",
   linebreak="ba",
+  synonyms={ "devanagari phrase separator", "devanagari purna viram" },
   unicodeslot=0x964,
  },
  [0x965]={
@@ -21275,6 +21410,7 @@
   description="DEVANAGARI DOUBLE DANDA",
   direction="l",
   linebreak="ba",
+  synonyms={ "devanagari deergh viram" },
   unicodeslot=0x965,
  },
  [0x966]={
@@ -21966,6 +22102,7 @@
   description="BENGALI SIGN VIRAMA",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "bengali hasant" },
   unicodeslot=0x9CD,
  },
  [0x9CE]={
@@ -24177,6 +24314,7 @@
   description="TAMIL SIGN VISARGA",
   direction="l",
   linebreak="al",
+  synonyms={ "tamil aytham" },
   unicodeslot=0xB83,
  },
  [0xB85]={
@@ -24623,6 +24761,7 @@
   description="TAMIL DAY SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "tamil naal" },
   unicodeslot=0xBF3,
  },
  [0xBF4]={
@@ -24630,6 +24769,7 @@
   description="TAMIL MONTH SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "tamil maatham" },
   unicodeslot=0xBF4,
  },
  [0xBF5]={
@@ -24637,6 +24777,7 @@
   description="TAMIL YEAR SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "tamil varudam" },
   unicodeslot=0xBF5,
  },
  [0xBF6]={
@@ -24644,6 +24785,7 @@
   description="TAMIL DEBIT SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "tamil patru" },
   unicodeslot=0xBF6,
  },
  [0xBF7]={
@@ -24651,6 +24793,7 @@
   description="TAMIL CREDIT SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "tamil varavu" },
   unicodeslot=0xBF7,
  },
  [0xBF8]={
@@ -24658,6 +24801,7 @@
   description="TAMIL AS ABOVE SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "tamil merpadi" },
   unicodeslot=0xBF8,
  },
  [0xBF9]={
@@ -24665,6 +24809,7 @@
   description="TAMIL RUPEE SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "tamil rupai" },
   unicodeslot=0xBF9,
  },
  [0xBFA]={
@@ -24672,6 +24817,7 @@
   description="TAMIL NUMBER SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "tamil enn" },
   unicodeslot=0xBFA,
  },
  [0xC00]={
@@ -24693,6 +24839,7 @@
   description="TELUGU SIGN ANUSVARA",
   direction="l",
   linebreak="cm",
+  synonyms={ "telugu sunna" },
   unicodeslot=0xC02,
  },
  [0xC03]={
@@ -26465,6 +26612,7 @@
   description="MALAYALAM SIGN VIRAMA",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "malayalam chandrakkala", "malayalam vowel half-u" },
   unicodeslot=0xD4D,
  },
  [0xD4E]={
@@ -27208,6 +27356,7 @@
   description="SINHALA SIGN AL-LAKUNA",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "sinhala virama" },
   unicodeslot=0xDCA,
  },
  [0xDCF]={
@@ -29473,6 +29622,7 @@
   description="TIBETAN SIGN RJES SU NGA RO",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "tibetan anusvara" },
   unicodeslot=0xF7E,
  },
  [0xF7F]={
@@ -29480,6 +29630,7 @@
   description="TIBETAN SIGN RNAM BCAD",
   direction="l",
   linebreak="ba",
+  synonyms={ "tibetan visarga" },
   unicodeslot=0xF7F,
  },
  [0xF80]={
@@ -29520,6 +29671,7 @@
   description="TIBETAN MARK HALANTA",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "tibetan srog med" },
   unicodeslot=0xF84,
  },
  [0xF85]={
@@ -30555,6 +30707,7 @@
   description="MYANMAR SIGN VIRAMA",
   direction="nsm",
   linebreak="sa",
+  synonyms={ "myanmar killer" },
   unicodeslot=0x1039,
  },
  [0x103A]={
@@ -43535,6 +43688,7 @@
   description="KHMER SIGN NIKAHIT",
   direction="nsm",
   linebreak="sa",
+  synonyms={ "khmer anusvara", "khmer srak am" },
   unicodeslot=0x17C6,
  },
  [0x17C7]={
@@ -43542,6 +43696,7 @@
   description="KHMER SIGN REAHMUK",
   direction="l",
   linebreak="sa",
+  synonyms={ "khmer srak ah", "khmer visarga" },
   unicodeslot=0x17C7,
  },
  [0x17C8]={
@@ -43925,6 +44080,7 @@
   description="MONGOLIAN FREE VARIATION SELECTOR ONE",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "fvs1" },
   unicodeslot=0x180B,
  },
  [0x180C]={
@@ -58794,6 +58950,7 @@
   direction="ws",
   linebreak="ba",
   specials={ "char", 0x2003 },
+  synonyms={ "mutton quad" },
   unicodeslot=0x2001,
  },
  [0x2002]={
@@ -58804,6 +58961,7 @@
   direction="ws",
   linebreak="ba",
   specials={ "compat", 0x20 },
+  synonyms={ "nut" },
   unicodeslot=0x2002,
  },
  [0x2003]={
@@ -58813,6 +58971,7 @@
   direction="ws",
   linebreak="ba",
   specials={ "compat", 0x20 },
+  synonyms={ "mutton" },
   unicodeslot=0x2003,
  },
  [0x2004]={
@@ -58822,6 +58981,7 @@
   direction="ws",
   linebreak="ba",
   specials={ "compat", 0x20 },
+  synonyms={ "thick space" },
   unicodeslot=0x2004,
  },
  [0x2005]={
@@ -58831,6 +58991,7 @@
   direction="ws",
   linebreak="ba",
   specials={ "compat", 0x20 },
+  synonyms={ "mid space" },
   unicodeslot=0x2005,
  },
  [0x2006]={
@@ -58885,6 +59046,7 @@
   description="ZERO WIDTH SPACE",
   direction="bn",
   linebreak="zw",
+  synonyms={ "zwsp" },
   unicodeslot=0x200B,
  },
  [0x200C]={
@@ -58895,6 +59057,7 @@
   description="ZERO WIDTH NON-JOINER",
   direction="bn",
   linebreak="cm",
+  synonyms={ "zwnj" },
   unicodeslot=0x200C,
  },
  [0x200D]={
@@ -58905,6 +59068,7 @@
   description="ZERO WIDTH JOINER",
   direction="bn",
   linebreak="zwj",
+  synonyms={ "zwj" },
   unicodeslot=0x200D,
  },
  [0x200E]={
@@ -58913,6 +59077,7 @@
   description="LEFT-TO-RIGHT MARK",
   direction="l",
   linebreak="cm",
+  synonyms={ "lrm" },
   unicodeslot=0x200E,
  },
  [0x200F]={
@@ -58921,6 +59086,7 @@
   description="RIGHT-TO-LEFT MARK",
   direction="r",
   linebreak="cm",
+  synonyms={ "rlm" },
   unicodeslot=0x200F,
  },
  [0x2010]={
@@ -58977,6 +59143,7 @@
   description="HORIZONTAL BAR",
   direction="on",
   linebreak="ai",
+  synonyms={ "quotation dash" },
   unicodeslot=0x2015,
  },
  [0x2016]={
@@ -59017,6 +59184,7 @@
   direction="on",
   linebreak="al",
   specials={ "compat", 0x20, 0x333 },
+  synonyms={ "spacing double underscore" },
   unicodeslot=0x2017,
  },
  [0x2018]={
@@ -59027,6 +59195,7 @@
   description="LEFT SINGLE QUOTATION MARK",
   direction="on",
   linebreak="qu",
+  synonyms={ "single turned comma quotation mark" },
   unicodeslot=0x2018,
  },
  [0x2019]={
@@ -59037,6 +59206,7 @@
   description="RIGHT SINGLE QUOTATION MARK",
   direction="on",
   linebreak="qu",
+  synonyms={ "apostrophe", "single comma quotation mark" },
   unicodeslot=0x2019,
  },
  [0x201A]={
@@ -59046,6 +59216,7 @@
   description="SINGLE LOW-0x0009 QUOTATION MARK",
   direction="on",
   linebreak="op",
+  synonyms={ "low single comma quotation mark" },
   unicodeslot=0x201A,
  },
  [0x201B]={
@@ -59054,6 +59225,7 @@
   description="SINGLE HIGH-REVERSED-0x0009 QUOTATION MARK",
   direction="on",
   linebreak="qu",
+  synonyms={ "single reversed comma quotation mark" },
   unicodeslot=0x201B,
  },
  [0x201C]={
@@ -59064,6 +59236,7 @@
   description="LEFT DOUBLE QUOTATION MARK",
   direction="on",
   linebreak="qu",
+  synonyms={ "double turned comma quotation mark" },
   unicodeslot=0x201C,
  },
  [0x201D]={
@@ -59074,6 +59247,7 @@
   description="RIGHT DOUBLE QUOTATION MARK",
   direction="on",
   linebreak="qu",
+  synonyms={ "double comma quotation mark" },
   unicodeslot=0x201D,
  },
  [0x201E]={
@@ -59083,6 +59257,7 @@
   description="DOUBLE LOW-0x0009 QUOTATION MARK",
   direction="on",
   linebreak="op",
+  synonyms={ "low double comma quotation mark" },
   unicodeslot=0x201E,
  },
  [0x201F]={
@@ -59090,6 +59265,7 @@
   description="DOUBLE HIGH-REVERSED-0x0009 QUOTATION MARK",
   direction="on",
   linebreak="qu",
+  synonyms={ "double reversed comma quotation mark" },
   unicodeslot=0x201F,
  },
  [0x2020]={
@@ -59110,6 +59286,7 @@
     name="dag",
    },
   },
+  synonyms={ "long cross" },
   unicodeslot=0x2020,
  },
  [0x2021]={
@@ -59130,6 +59307,7 @@
     name="ddag",
    },
   },
+  synonyms={ "diesis" },
   unicodeslot=0x2021,
  },
  [0x2022]={
@@ -59142,6 +59320,7 @@
   linebreak="al",
   mathclass="binary",
   mathname="bullet",
+  synonyms={ "black small circle" },
   unicodeslot=0x2022,
  },
  [0x2023]={
@@ -59190,6 +59369,7 @@
    },
   },
   specials={ "compat", 0x2E, 0x2E, 0x2E },
+  synonyms={ "three dot leader" },
   unicodeslot=0x2026,
  },
  [0x2027]={
@@ -59219,6 +59399,7 @@
   description="LEFT-TO-RIGHT EMBEDDING",
   direction="lre",
   linebreak="cm",
+  synonyms={ "lre" },
   unicodeslot=0x202A,
  },
  [0x202B]={
@@ -59226,6 +59407,7 @@
   description="RIGHT-TO-LEFT EMBEDDING",
   direction="rle",
   linebreak="cm",
+  synonyms={ "rle" },
   unicodeslot=0x202B,
  },
  [0x202C]={
@@ -59234,6 +59416,7 @@
   description="POP DIRECTIONAL FORMATTING",
   direction="pdf",
   linebreak="cm",
+  synonyms={ "pdf" },
   unicodeslot=0x202C,
  },
  [0x202D]={
@@ -59242,6 +59425,7 @@
   description="LEFT-TO-RIGHT OVERRIDE",
   direction="lro",
   linebreak="cm",
+  synonyms={ "lro" },
   unicodeslot=0x202D,
  },
  [0x202E]={
@@ -59250,6 +59434,7 @@
   description="RIGHT-TO-LEFT OVERRIDE",
   direction="rlo",
   linebreak="cm",
+  synonyms={ "rlo" },
   unicodeslot=0x202E,
  },
  [0x202F]={
@@ -59260,6 +59445,7 @@
   direction="cs",
   linebreak="gl",
   specials={ "nobreak", 0x20 },
+  synonyms={ "nnbsp" },
   unicodeslot=0x202F,
  },
  [0x2030]={
@@ -59270,6 +59456,7 @@
   description="PER MILLE SIGN",
   direction="et",
   linebreak="po",
+  synonyms={ "per thousand" },
   unicodeslot=0x2030,
  },
  [0x2031]={
@@ -59288,6 +59475,7 @@
   linebreak="po",
   mathclass="nothing",
   mathname="prime",
+  synonyms={ "feet", "minutes" },
   unicodeslot=0x2032,
  },
  [0x2033]={
@@ -59300,6 +59488,7 @@
   mathclass="nothing",
   mathname="doubleprime",
   specials={ "compat", 0x2032, 0x2032 },
+  synonyms={ "inches", "seconds" },
   unicodeslot=0x2033,
  },
  [0x2034]={
@@ -59358,6 +59547,7 @@
   direction="on",
   linebreak="qu",
   mirror=0x203A,
+  synonyms={ "left pointing single guillemet" },
   textclass="open",
   unicodeslot=0x2039,
  },
@@ -59369,6 +59559,7 @@
   direction="on",
   linebreak="qu",
   mirror=0x2039,
+  synonyms={ "right pointing single guillemet" },
   textclass="close",
   unicodeslot=0x203A,
  },
@@ -59379,6 +59570,7 @@
   description="REFERENCE MARK",
   direction="on",
   linebreak="ai",
+  synonyms={ "japanese kome", "urdu paragraph separator" },
   unicodeslot=0x203B,
  },
  [0x203C]={
@@ -59420,6 +59612,7 @@
   },
   mathstretch="h",
   specials={ "compat", 0x20, 0x305 },
+  synonyms={ "spacing overscore" },
   unicodeslot=0x203E,
  },
  [0x203F]={
@@ -59427,6 +59620,7 @@
   description="UNDERTIE",
   direction="on",
   linebreak="al",
+  synonyms={ "greek enotikon" },
   unicodeslot=0x203F,
  },
  [0x2040]={
@@ -59434,6 +59628,7 @@
   description="CHARACTER TIE",
   direction="on",
   linebreak="al",
+  synonyms={ "sequence concatenation" },
   unicodeslot=0x2040,
  },
  [0x2041]={
@@ -59475,6 +59670,7 @@
     name="solidus",
    },
   },
+  synonyms={ "solidus" },
   unicodeslot=0x2044,
  },
  [0x2045]={
@@ -59579,6 +59775,7 @@
   description="COMMERCIAL MINUS SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "med avdrag av", "piska" },
   unicodeslot=0x2052,
  },
  [0x2053]={
@@ -59600,6 +59797,7 @@
   description="FLOWER PUNCTUATION MARK",
   direction="on",
   linebreak="al",
+  synonyms={ "phul", "puspika" },
   unicodeslot=0x2055,
  },
  [0x2056]={
@@ -59631,6 +59829,7 @@
   description="FIVE DOT PUNCTUATION",
   direction="on",
   linebreak="ba",
+  synonyms={ "greek pentonkion" },
   unicodeslot=0x2059,
  },
  [0x205A]={
@@ -59659,6 +59858,7 @@
   description="TRICOLON",
   direction="on",
   linebreak="ba",
+  synonyms={ "epidaurean acrophonic symbol three" },
   unicodeslot=0x205D,
  },
  [0x205E]={
@@ -59675,6 +59875,7 @@
   direction="ws",
   linebreak="ba",
   specials={ "compat", 0x20 },
+  synonyms={ "mmsp" },
   unicodeslot=0x205F,
  },
  [0x2060]={
@@ -59682,6 +59883,7 @@
   description="WORD JOINER",
   direction="bn",
   linebreak="wj",
+  synonyms={ "wj" },
   unicodeslot=0x2060,
  },
  [0x2061]={
@@ -59706,6 +59908,7 @@
   linebreak="al",
   mathclass="binary",
   mathname="invisibletimes",
+  synonyms={ "invisible comma" },
   unicodeslot=0x2063,
  },
  [0x2064]={
@@ -60180,6 +60383,7 @@
   description="COLON SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "costa rican currency", "el salvadorian currency" },
   unicodeslot=0x20A1,
  },
  [0x20A2]={
@@ -60188,6 +60392,7 @@
   description="CRUZEIRO SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "brazilian currency" },
   unicodeslot=0x20A2,
  },
  [0x20A3]={
@@ -60196,6 +60401,7 @@
   description="FRENCH FRANC SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "french currency" },
   unicodeslot=0x20A3,
  },
  [0x20A4]={
@@ -60204,6 +60410,7 @@
   description="LIRA SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "italian currency", "turkish currency" },
   unicodeslot=0x20A4,
  },
  [0x20A5]={
@@ -60218,6 +60425,7 @@
   description="NAIRA SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "nigerian currency" },
   unicodeslot=0x20A6,
  },
  [0x20A7]={
@@ -60226,6 +60434,7 @@
   description="PESETA SIGN",
   direction="et",
   linebreak="po",
+  synonyms={ "spanish currency" },
   unicodeslot=0x20A7,
  },
  [0x20A8]={
@@ -60234,6 +60443,7 @@
   direction="et",
   linebreak="pr",
   specials={ "compat", 0x52, 0x73 },
+  synonyms={ "indian currency" },
   unicodeslot=0x20A8,
  },
  [0x20A9]={
@@ -60243,6 +60453,7 @@
   description="WON SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "korean currency" },
   unicodeslot=0x20A9,
  },
  [0x20AA]={
@@ -60251,6 +60462,7 @@
   description="NEW SHEQEL SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "israeli currency" },
   unicodeslot=0x20AA,
  },
  [0x20AB]={
@@ -60260,6 +60472,7 @@
   description="DONG SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "vietnamese currency" },
   unicodeslot=0x20AB,
  },
  [0x20AC]={
@@ -60270,6 +60483,7 @@
   description="EURO SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "euro european currency" },
   unicodeslot=0x20AC,
  },
  [0x20AD]={
@@ -60277,6 +60491,7 @@
   description="KIP SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "laotian currency" },
   unicodeslot=0x20AD,
  },
  [0x20AE]={
@@ -60284,6 +60499,7 @@
   description="TUGRIK SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "mongolian currency" },
   unicodeslot=0x20AE,
  },
  [0x20AF]={
@@ -60291,6 +60507,7 @@
   description="DRACHMA SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "greek currency" },
   unicodeslot=0x20AF,
  },
  [0x20B0]={
@@ -60305,6 +60522,7 @@
   description="PESO SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "phillipine currency" },
   unicodeslot=0x20B1,
  },
  [0x20B2]={
@@ -60312,6 +60530,7 @@
   description="GUARANI SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "paraguayan currency" },
   unicodeslot=0x20B2,
  },
  [0x20B3]={
@@ -60319,6 +60538,7 @@
   description="AUSTRAL SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "argentinian former currency" },
   unicodeslot=0x20B3,
  },
  [0x20B4]={
@@ -60326,6 +60546,7 @@
   description="HRYVNIA SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "ukrainian currency" },
   unicodeslot=0x20B4,
  },
  [0x20B5]={
@@ -60333,6 +60554,7 @@
   description="CEDI SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "ghana currency" },
   unicodeslot=0x20B5,
  },
  [0x20B6]={
@@ -60382,6 +60604,7 @@
   description="MANAT SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "azerbaijani currency" },
   unicodeslot=0x20BC,
  },
  [0x20BD]={
@@ -60389,6 +60612,7 @@
   description="RUBLE SIGN",
   direction="et",
   linebreak="pr",
+  synonyms={ "russian currency" },
   unicodeslot=0x20BD,
  },
  [0x20BE]={
@@ -60396,6 +60620,7 @@
   description="LARI SIGN",
   direction="et",
   linebreak="po",
+  synonyms={ "georgian currency" },
   unicodeslot=0x20BE,
  },
  [0x20D0]={
@@ -60436,6 +60661,7 @@
   description="COMBINING ANTICLOCKWISE ARROW ABOVE",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "combining counterclockwise arrow above" },
   unicodeslot=0x20D4,
  },
  [0x20D5]={
@@ -60462,6 +60688,7 @@
   linebreak="cm",
   mathclass="topaccent",
   mathname="vec",
+  synonyms={ "vector" },
   unicodeslot=0x20D7,
  },
  [0x20D8]={
@@ -60486,6 +60713,7 @@
   description="COMBINING ANTICLOCKWISE RING OVERLAY",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "combining counterclockwise ring overlay" },
   unicodeslot=0x20DA,
  },
  [0x20DB]={
@@ -60496,6 +60724,7 @@
   linebreak="cm",
   mathclass="topaccent",
   mathname="dddot",
+  synonyms={ "third derivative" },
   unicodeslot=0x20DB,
  },
  [0x20DC]={
@@ -60504,6 +60733,7 @@
   description="COMBINING FOUR DOTS ABOVE",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "fourth derivative" },
   unicodeslot=0x20DC,
  },
  [0x20DD]={
@@ -60521,6 +60751,7 @@
     name="bigcircle",
    },
   },
+  synonyms={ "jis composition circle" },
   unicodeslot=0x20DD,
  },
  [0x20DE]={
@@ -60546,6 +60777,7 @@
   description="COMBINING ENCLOSING CIRCLE BACKSLASH",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "no", "prohibition" },
   unicodeslot=0x20E0,
  },
  [0x20E1]={
@@ -60591,6 +60823,7 @@
   description="COMBINING DOUBLE VERTICAL STROKE OVERLAY",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "finite function diacritic" },
   unicodeslot=0x20E6,
  },
  [0x20E7]={
@@ -60601,6 +60834,7 @@
   linebreak="cm",
   mathclass="topaccent",
   mathname="actuarial",
+  synonyms={ "actuarial bend" },
   unicodeslot=0x20E7,
  },
  [0x20E8]={
@@ -60618,6 +60852,7 @@
   direction="nsm",
   linebreak="cm",
   mathclass="topaccent",
+  synonyms={ "contraction operator" },
   unicodeslot=0x20E9,
  },
  [0x20EA]={
@@ -60634,6 +60869,7 @@
   description="COMBINING LONG DOUBLE SOLIDUS OVERLAY",
   direction="nsm",
   linebreak="cm",
+  synonyms={ "long double slash overlay" },
   unicodeslot=0x20EB,
  },
  [0x20EC]={
@@ -60700,6 +60936,7 @@
   mathclass="variable",
   mathname="complexes",
   specials={ "font", 0x43 },
+  synonyms={ "complex numbers", "the set of complex numbers" },
   unicodeslot=0x2102,
  },
  [0x2103]={
@@ -60711,6 +60948,7 @@
   direction="on",
   linebreak="po",
   specials={ "compat", 0xB0, 0x43 },
+  synonyms={ "degrees centigrade" },
   unicodeslot=0x2103,
  },
  [0x2104]={
@@ -60718,6 +60956,7 @@
   description="CENTRE LINE SYMBOL",
   direction="on",
   linebreak="al",
+  synonyms={ "clone" },
   unicodeslot=0x2104,
  },
  [0x2105]={
@@ -60771,6 +61010,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x67 },
+  synonyms={ "real number symbol" },
   unicodeslot=0x210A,
  },
  [0x210B]={
@@ -60787,6 +61027,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x48 },
+  synonyms={ "hilbert space" },
   unicodeslot=0x210C,
  },
  [0x210D]={
@@ -60842,6 +61083,7 @@
   mathclass="default",
   mathname="Im",
   specials={ "font", 0x49 },
+  synonyms={ "imaginary part" },
   unicodeslot=0x2111,
  },
  [0x2112]={
@@ -60850,6 +61092,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x4C },
+  synonyms={ "laplace transform" },
   unicodeslot=0x2112,
  },
  [0x2113]={
@@ -60862,6 +61105,7 @@
   mathclass="default",
   mathname="ell",
   specials={ "font", 0x6C },
+  synonyms={ "liter" },
   unicodeslot=0x2113,
  },
  [0x2114]={
@@ -60869,6 +61113,7 @@
   description="L B BAR SYMBOL",
   direction="on",
   linebreak="al",
+  synonyms={ "pounds" },
   unicodeslot=0x2114,
  },
  [0x2115]={
@@ -60879,6 +61124,7 @@
   mathclass="variable",
   mathname="naturalnumbers",
   specials={ "font", 0x4E },
+  synonyms={ "natural number" },
   unicodeslot=0x2115,
  },
  [0x2116]={
@@ -60898,6 +61144,7 @@
   description="SOUND RECORDING COPYRIGHT",
   direction="on",
   linebreak="al",
+  synonyms={ "phonorecord sign", "published" },
   unicodeslot=0x2117,
  },
  [0x2118]={
@@ -60908,6 +61155,7 @@
   linebreak="al",
   mathclass="default",
   mathname="wp",
+  synonyms={ "weierstrass elliptic function" },
   unicodeslot=0x2118,
  },
  [0x2119]={
@@ -60928,6 +61176,7 @@
   mathclass="variable",
   mathname="rationals",
   specials={ "font", 0x51 },
+  synonyms={ "rational numbers", "the set of rational numbers" },
   unicodeslot=0x211A,
  },
  [0x211B]={
@@ -60936,6 +61185,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x52 },
+  synonyms={ "riemann integral" },
   unicodeslot=0x211B,
  },
  [0x211C]={
@@ -60947,6 +61197,7 @@
   mathclass="default",
   mathname="Re",
   specials={ "font", 0x52 },
+  synonyms={ "real part" },
   unicodeslot=0x211C,
  },
  [0x211D]={
@@ -60957,6 +61208,7 @@
   mathclass="variable",
   mathname="reals",
   specials={ "font", 0x52 },
+  synonyms={ "real numbers", "the set of real numbers" },
   unicodeslot=0x211D,
  },
  [0x211E]={
@@ -60965,6 +61217,7 @@
   description="PRESCRIPTION TAKE",
   direction="on",
   linebreak="al",
+  synonyms={ "cross ratio", "recipe" },
   unicodeslot=0x211E,
  },
  [0x211F]={
@@ -61019,6 +61272,7 @@
   mathclass="variable",
   mathname="integers",
   specials={ "font", 0x5A },
+  synonyms={ "integers", "the set of integers" },
   unicodeslot=0x2124,
  },
  [0x2125]={
@@ -61051,6 +61305,7 @@
   linebreak="al",
   mathclass="variable",
   mathname="mho",
+  synonyms={ "mho" },
   unicodeslot=0x2127,
  },
  [0x2128]={
@@ -61068,6 +61323,7 @@
   linebreak="al",
   mathclass="variable",
   mathname="turnediota",
+  synonyms={ "unique element" },
   unicodeslot=0x2129,
  },
  [0x212A]={
@@ -61100,6 +61356,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x42 },
+  synonyms={ "bernoulli function" },
   unicodeslot=0x212C,
  },
  [0x212D]={
@@ -61124,6 +61381,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x65 },
+  synonyms={ "error", "natural exponent" },
   unicodeslot=0x212F,
  },
  [0x2130]={
@@ -61132,6 +61390,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x45 },
+  synonyms={ "electromotive force", "emf" },
   unicodeslot=0x2130,
  },
  [0x2131]={
@@ -61140,6 +61399,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x46 },
+  synonyms={ "fourier transform" },
   unicodeslot=0x2131,
  },
  [0x2132]={
@@ -61150,6 +61410,7 @@
   linebreak="al",
   mathclass="ordinary",
   mathname="Finv",
+  synonyms={ "claudian digamma inversum" },
   unicodeslot=0x2132,
  },
  [0x2133]={
@@ -61158,6 +61419,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x4D },
+  synonyms={ "german mark pre-wwii", "m-matrix" },
   unicodeslot=0x2133,
  },
  [0x2134]={
@@ -61166,6 +61428,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x6F },
+  synonyms={ "order" },
   unicodeslot=0x2134,
  },
  [0x2135]={
@@ -61177,6 +61440,7 @@
   mathclass="default",
   mathname="aleph",
   specials={ "compat", 0x5D0 },
+  synonyms={ "first transfinite cardinal", "first transfinite cardinal countable" },
   unicodeslot=0x2135,
  },
  [0x2136]={
@@ -61187,6 +61451,7 @@
   mathclass="default",
   mathname="beth",
   specials={ "compat", 0x5D1 },
+  synonyms={ "second transfinite cardinal", "second transfinite cardinal continuum" },
   unicodeslot=0x2136,
  },
  [0x2137]={
@@ -61197,6 +61462,7 @@
   mathclass="default",
   mathname="gimel",
   specials={ "compat", 0x5D2 },
+  synonyms={ "third transfinite cardinal" },
   unicodeslot=0x2137,
  },
  [0x2138]={
@@ -61207,6 +61473,7 @@
   mathclass="default",
   mathname="daleth",
   specials={ "compat", 0x5D3 },
+  synonyms={ "fourth transfinite cardinal" },
   unicodeslot=0x2138,
  },
  [0x2139]={
@@ -61280,6 +61547,7 @@
   linebreak="al",
   mathclass="ordinary",
   mathname="Game",
+  synonyms={ "game" },
   unicodeslot=0x2141,
  },
  [0x2142]={
@@ -61951,6 +62219,7 @@
   direction="l",
   lccode=0x2184,
   linebreak="al",
+  synonyms={ "apostrophic c", "claudian antisigma" },
   unicodeslot=0x2183,
  },
  [0x2184]={
@@ -62052,6 +62321,7 @@
   mathclass="relation",
   mathextensible="u",
   mathname="uparrow",
+  synonyms={ "egressive airflow" },
   unicodeslot=0x2191,
  },
  [0x2192]={
@@ -62082,6 +62352,7 @@
    },
   },
   mathstretch="h",
+  synonyms={ "total function" },
   unicodeslot=0x2192,
  },
  [0x2193]={
@@ -62094,6 +62365,7 @@
   mathclass="relation",
   mathextensible="d",
   mathname="downarrow",
+  synonyms={ "ingressive airflow" },
   unicodeslot=0x2193,
  },
  [0x2194]={
@@ -62106,6 +62378,7 @@
   mathclass="relation",
   mathextensible="h",
   mathname="leftrightarrow",
+  synonyms={ "relation" },
   unicodeslot=0x2194,
   variants=variants_emoji,
  },
@@ -62221,6 +62494,7 @@
   mathextensible="l",
   mathfiller="twoheadleftarrowfill",
   mathname="twoheadleftarrow",
+  synonyms={ "fast cursor left" },
   unicodeslot=0x219E,
  },
  [0x219F]={
@@ -62231,6 +62505,7 @@
   mathclass="relation",
   mathextensible="u",
   mathname="twoheaduparrow",
+  synonyms={ "fast cursor up" },
   unicodeslot=0x219F,
  },
  [0x21A0]={
@@ -62242,6 +62517,7 @@
   mathextensible="r",
   mathfiller="twoheadrightarrowfill",
   mathname="twoheadrightarrow",
+  synonyms={ "fast cursor right", "total surjection" },
   unicodeslot=0x21A0,
  },
  [0x21A1]={
@@ -62252,6 +62528,7 @@
   mathclass="relation",
   mathextensible="d",
   mathname="twoheaddownarrow",
+  synonyms={ "fast cursor down", "form feed" },
   unicodeslot=0x21A1,
  },
  [0x21A2]={
@@ -62272,6 +62549,7 @@
   mathclass="relation",
   mathextensible="r",
   mathname="rightarrowtail",
+  synonyms={ "total injection" },
   unicodeslot=0x21A3,
  },
  [0x21A4]={
@@ -62303,6 +62581,7 @@
   mathextensible="r",
   mathfiller="mapstofill",
   mathname="mapsto",
+  synonyms={ "maplet" },
   unicodeslot=0x21A6,
  },
  [0x21A7]={
@@ -62313,6 +62592,7 @@
   mathclass="relation",
   mathextensible="d",
   mathname="mapsdown",
+  synonyms={ "depth symbol" },
   unicodeslot=0x21A7,
  },
  [0x21A8]={
@@ -62399,6 +62679,7 @@
   mathclass="relation",
   mathextensible="d",
   mathname="downzigzagarrow",
+  synonyms={ "electrolysis" },
   unicodeslot=0x21AF,
  },
  [0x21B0]={
@@ -62449,6 +62730,7 @@
   mathclass="ordinary",
   mathextensible="m",
   mathname="linefeed",
+  synonyms={ "line feed" },
   unicodeslot=0x21B4,
  },
  [0x21B5]={
@@ -62500,6 +62782,7 @@
   mathclass="relation",
   mathextensible="h",
   mathname="barleftarrowrightarrowbar",
+  synonyms={ "tab with shift tab" },
   unicodeslot=0x21B9,
  },
  [0x21BA]={
@@ -62925,6 +63208,7 @@
   mathclass="relation",
   mathextensible="u",
   mathname="nHuparrow",
+  synonyms={ "page up" },
   unicodeslot=0x21DE,
  },
  [0x21DF]={
@@ -62998,6 +63282,7 @@
   mathclass="relation",
   mathextensible="l",
   mathname="barleftarrow",
+  synonyms={ "leftward tab" },
   unicodeslot=0x21E4,
  },
  [0x21E5]={
@@ -63009,6 +63294,7 @@
   mathclass="relation",
   mathextensible="r",
   mathname="rightarrowbar",
+  synonyms={ "rightward tab" },
   unicodeslot=0x21E5,
  },
  [0x21E6]={
@@ -63032,6 +63318,7 @@
   mathclass="ordinary",
   mathextensible="u",
   mathname="upwhitearrow",
+  synonyms={ "shift" },
   unicodeslot=0x21E7,
  },
  [0x21E8]={
@@ -63072,6 +63359,7 @@
   mathclass="ordinary",
   mathextensible="u",
   mathname="whitearrowupfrombar",
+  synonyms={ "level 2 lock" },
   unicodeslot=0x21EB,
  },
  [0x21EC]={
@@ -63079,6 +63367,7 @@
   description="UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR",
   direction="on",
   linebreak="al",
+  synonyms={ "caps lock" },
   unicodeslot=0x21EC,
  },
  [0x21ED]={
@@ -63086,6 +63375,7 @@
   description="UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR",
   direction="on",
   linebreak="al",
+  synonyms={ "numerics lock" },
   unicodeslot=0x21ED,
  },
  [0x21EE]={
@@ -63093,6 +63383,7 @@
   description="UPWARDS WHITE DOUBLE ARROW",
   direction="on",
   linebreak="al",
+  synonyms={ "level 3 select" },
   unicodeslot=0x21EE,
  },
  [0x21EF]={
@@ -63100,6 +63391,7 @@
   description="UPWARDS WHITE DOUBLE ARROW ON PEDESTAL",
   direction="on",
   linebreak="al",
+  synonyms={ "level 3 lock" },
   unicodeslot=0x21EF,
  },
  [0x21F0]={
@@ -63107,6 +63399,7 @@
   description="RIGHTWARDS WHITE ARROW FROM WALL",
   direction="on",
   linebreak="al",
+  synonyms={ "group lock" },
   unicodeslot=0x21F0,
  },
  [0x21F1]={
@@ -63114,6 +63407,7 @@
   description="NORTH WEST ARROW TO CORNER",
   direction="on",
   linebreak="al",
+  synonyms={ "home" },
   unicodeslot=0x21F1,
  },
  [0x21F2]={
@@ -63121,6 +63415,7 @@
   description="SOUTH EAST ARROW TO CORNER",
   direction="on",
   linebreak="al",
+  synonyms={ "end" },
   unicodeslot=0x21F2,
  },
  [0x21F3]={
@@ -63128,6 +63423,7 @@
   description="UP DOWN WHITE ARROW",
   direction="on",
   linebreak="al",
+  synonyms={ "scrolling" },
   unicodeslot=0x21F3,
  },
  [0x21F4]={
@@ -63178,6 +63474,7 @@
   mathclass="relation",
   mathextensible="r",
   mathname="nvrightarrow",
+  synonyms={ "partial function" },
   unicodeslot=0x21F8,
  },
  [0x21F9]={
@@ -63188,6 +63485,7 @@
   mathclass="relation",
   mathextensible="h",
   mathname="nvleftrightarrow",
+  synonyms={ "partial relation" },
   unicodeslot=0x21F9,
  },
  [0x21FA]={
@@ -63208,6 +63506,7 @@
   mathclass="relation",
   mathextensible="r",
   mathname="nVrightarrow",
+  synonyms={ "finite function" },
   unicodeslot=0x21FB,
  },
  [0x21FC]={
@@ -63218,6 +63517,7 @@
   mathclass="relation",
   mathextensible="h",
   mathname="nVleftrightarrow",
+  synonyms={ "finite relation" },
   unicodeslot=0x21FC,
  },
  [0x21FD]={
@@ -63259,6 +63559,7 @@
   linebreak="ai",
   mathclass="ordinary",
   mathname="forall",
+  synonyms={ "universal quantifier" },
   unicodeslot=0x2200,
  },
  [0x2201]={
@@ -63290,6 +63591,7 @@
   linebreak="ai",
   mathclass="ordinary",
   mathname="exists",
+  synonyms={ "existential quantifier" },
   unicodeslot=0x2203,
  },
  [0x2204]={
@@ -63310,6 +63612,7 @@
   linebreak="al",
   mathclass="default",
   mathname="emptyset",
+  synonyms={ "null set" },
   unicodeslot=0x2205,
   variants={
    [0xFE00]="zero with long diagonal stroke overlay form",
@@ -63321,6 +63624,7 @@
   description="INCREMENT",
   direction="on",
   linebreak="al",
+  synonyms={ "forward difference", "laplace operator" },
   unicodeslot=0x2206,
  },
  [0x2207]={
@@ -63332,6 +63636,7 @@
   linebreak="ai",
   mathclass="default",
   mathname="nabla",
+  synonyms={ "backward difference", "del" },
   unicodeslot=0x2207,
  },
  [0x2208]={
@@ -63427,6 +63732,7 @@
   description="END OF PROOF",
   direction="on",
   linebreak="al",
+  synonyms={ "q.e.d." },
   unicodeslot=0x220E,
  },
  [0x220F]={
@@ -63438,6 +63744,7 @@
   linebreak="ai",
   mathclass="limop",
   mathname="prod",
+  synonyms={ "product sign" },
   unicodeslot=0x220F,
  },
  [0x2210]={
@@ -63447,6 +63754,7 @@
   linebreak="al",
   mathclass="limop",
   mathname="coprod",
+  synonyms={ "coproduct sign" },
   unicodeslot=0x2210,
  },
  [0x2211]={
@@ -63458,6 +63766,7 @@
   linebreak="ai",
   mathclass="limop",
   mathname="sum",
+  synonyms={ "summation sign" },
   unicodeslot=0x2211,
  },
  [0x2212]={
@@ -63539,6 +63848,7 @@
   linebreak="al",
   mathclass="binary",
   mathname="circ",
+  synonyms={ "apl jot", "composite function" },
   unicodeslot=0x2218,
  },
  [0x2219]={
@@ -63572,6 +63882,7 @@
     name="surd",
    },
   },
+  synonyms={ "radical sign" },
   unicodeslot=0x221A,
  },
  [0x221B]={
@@ -63648,6 +63959,7 @@
   linebreak="al",
   mathclass="ordinary",
   mathname="sphericalangle",
+  synonyms={ "angle arc" },
   unicodeslot=0x2222,
  },
  [0x2223]={
@@ -63659,6 +63971,7 @@
   linebreak="ai",
   mathclass="binary",
   mathname="divides",
+  synonyms={ "apl stile", "such that" },
   unicodeslot=0x2223,
  },
  [0x2224]={
@@ -63722,6 +64035,7 @@
     name="land",
    },
   },
+  synonyms={ "conjunction", "wedge" },
   unicodeslot=0x2227,
  },
  [0x2228]={
@@ -63741,6 +64055,7 @@
     name="lor",
    },
   },
+  synonyms={ "disjunction", "vee" },
   unicodeslot=0x2228,
  },
  [0x2229]={
@@ -63752,6 +64067,7 @@
   linebreak="ai",
   mathclass="binary",
   mathname="cap",
+  synonyms={ "cap", "hat" },
   unicodeslot=0x2229,
   variants={
    [0xFE00]="with serifs",
@@ -63766,6 +64082,7 @@
   linebreak="ai",
   mathclass="binary",
   mathname="cup",
+  synonyms={ "cup" },
   unicodeslot=0x222A,
   variants={
    [0xFE00]="with serifs",
@@ -63887,6 +64204,7 @@
   linebreak="al",
   mathclass="limop",
   mathname="ointctrclockwise",
+  synonyms={ "counterclockwise contour integral" },
   unicodeslot=0x2233,
  },
  [0x2234]={
@@ -63940,6 +64258,7 @@
   linebreak="al",
   mathclass="binary",
   mathname="dotminus",
+  synonyms={ "saturating subtraction" },
   unicodeslot=0x2238,
  },
  [0x2239]={
@@ -63975,6 +64294,7 @@
   mathclass="relation",
   mathname="sim",
   mirror=0x223D,
+  synonyms={ "apl tilde", "cycle", "difference between", "not", "proportional to", "similar to", "varies with" },
   unicodeslot=0x223C,
  },
  [0x223D]={
@@ -63987,6 +64307,7 @@
   mathclass="relation",
   mathname="backsim",
   mirror=0x223C,
+  synonyms={ "lazy s" },
   unicodeslot=0x223D,
  },
  [0x223E]={
@@ -63994,6 +64315,7 @@
   description="INVERTED LAZY S",
   direction="on",
   linebreak="al",
+  synonyms={ "most positive" },
   unicodeslot=0x223E,
  },
  [0x223F]={
@@ -64001,6 +64323,7 @@
   description="SINE WAVE",
   direction="on",
   linebreak="al",
+  synonyms={ "alternating current" },
   unicodeslot=0x223F,
  },
  [0x2240]={
@@ -64106,6 +64429,7 @@
   linebreak="ai",
   mathclass="relation",
   mathname="approx",
+  synonyms={ "asymptotic to" },
   unicodeslot=0x2248,
  },
  [0x2249]={
@@ -64207,6 +64531,7 @@
   mathclass="relation",
   mathname="fallingdotseq",
   mirror=0x2253,
+  synonyms={ "nearly equals" },
   unicodeslot=0x2252,
  },
  [0x2253]={
@@ -64258,6 +64583,7 @@
   linebreak="al",
   mathclass="relation",
   mathname="circeq",
+  synonyms={ "approximately equal to" },
   unicodeslot=0x2257,
  },
  [0x2258]={
@@ -64274,6 +64600,7 @@
   linebreak="al",
   mathclass="relation",
   mathname="wedgeeq",
+  synonyms={ "corresponds to" },
   unicodeslot=0x2259,
  },
  [0x225A]={
@@ -64301,6 +64628,7 @@
   linebreak="al",
   mathclass="relation",
   mathname="triangleq",
+  synonyms={ "equal to by definition", "equiangular" },
   unicodeslot=0x225C,
  },
  [0x225D]={
@@ -64507,6 +64835,7 @@
   linebreak="al",
   mathclass="relation",
   mathname="between",
+  synonyms={ "plaintiff", "quantic" },
   unicodeslot=0x226C,
  },
  [0x226D]={
@@ -64673,6 +65002,7 @@
   mathclass="relation",
   mathname="prec",
   mirror=0x227B,
+  synonyms={ "lower rank than" },
   unicodeslot=0x227A,
  },
  [0x227B]={
@@ -64684,6 +65014,7 @@
   mathclass="relation",
   mathname="succ",
   mirror=0x227A,
+  synonyms={ "higher rank than" },
   unicodeslot=0x227B,
  },
  [0x227C]={
@@ -64760,6 +65091,7 @@
   mathclass="relation",
   mathname="subset",
   mirror=0x2283,
+  synonyms={ "included in set" },
   unicodeslot=0x2282,
  },
  [0x2283]={
@@ -64772,6 +65104,7 @@
   mathclass="relation",
   mathname="supset",
   mirror=0x2282,
+  synonyms={ "includes in set" },
   unicodeslot=0x2283,
  },
  [0x2284]={
@@ -64893,6 +65226,7 @@
   linebreak="al",
   mathclass="binary",
   mathname="uplus",
+  synonyms={ "bag addition" },
   unicodeslot=0x228E,
  },
  [0x228F]={
@@ -64968,6 +65302,7 @@
   linebreak="ai",
   mathclass="binary",
   mathname="oplus",
+  synonyms={ "direct sum" },
   unicodeslot=0x2295,
   variants={
    [0xFE00]="with white rim",
@@ -64981,6 +65316,7 @@
   linebreak="al",
   mathclass="binary",
   mathname="ominus",
+  synonyms={ "symmetric difference" },
   unicodeslot=0x2296,
  },
  [0x2297]={
@@ -64991,6 +65327,7 @@
   linebreak="al",
   mathclass="binary",
   mathname="otimes",
+  synonyms={ "tensor product", "vector pointing into page" },
   unicodeslot=0x2297,
   variants={
    [0xFE00]="with white rim",
@@ -65015,6 +65352,7 @@
   linebreak="ai",
   mathclass="binary",
   mathname="odot",
+  synonyms={ "direct product", "vector pointing out of page" },
   unicodeslot=0x2299,
  },
  [0x229A]={
@@ -65100,6 +65438,7 @@
   mathclass="relation",
   mathname="vdash",
   mirror=0x22A3,
+  synonyms={ "implies", "proves", "reducible", "turnstile", "yields" },
   unicodeslot=0x22A2,
  },
  [0x22A3]={
@@ -65111,6 +65450,7 @@
   mathclass="relation",
   mathname="dashv",
   mirror=0x22A2,
+  synonyms={ "does not yield", "non-theorem", "reverse turnstile" },
   unicodeslot=0x22A3,
  },
  [0x22A4]={
@@ -65121,6 +65461,7 @@
   linebreak="al",
   mathclass="default",
   mathname="top",
+  synonyms={ "top" },
   unicodeslot=0x22A4,
  },
  [0x22A5]={
@@ -65140,6 +65481,7 @@
     name="perp",
    },
   },
+  synonyms={ "base", "bottom", "orthogonal to", "perpendicular" },
   unicodeslot=0x22A5,
  },
  [0x22A6]={
@@ -65148,6 +65490,7 @@
   direction="on",
   linebreak="al",
   mirror=0x2ADE,
+  synonyms={ "reduces to" },
   unicodeslot=0x22A6,
  },
  [0x22A7]={
@@ -65167,6 +65510,7 @@
   mathclass="relation",
   mathname="vDash",
   mirror=0x2AE4,
+  synonyms={ "results in", "satisfies", "statement is true", "tautology", "valid" },
   unicodeslot=0x22A8,
  },
  [0x22A9]={
@@ -65397,6 +65741,7 @@
   linebreak="al",
   mathclass="limop",
   mathname="bigcap",
+  synonyms={ "generalized intersection" },
   unicodeslot=0x22C2,
  },
  [0x22C3]={
@@ -65406,6 +65751,7 @@
   linebreak="al",
   mathclass="limop",
   mathname="bigcup",
+  synonyms={ "generalized union" },
   unicodeslot=0x22C3,
  },
  [0x22C4]={
@@ -65599,6 +65945,7 @@
   linebreak="al",
   mathclass="relation",
   mathname="pitchfork",
+  synonyms={ "proper intersection" },
   unicodeslot=0x22D4,
  },
  [0x22D5]={
@@ -66049,6 +66396,7 @@
   description="ELECTRIC ARROW",
   direction="on",
   linebreak="al",
+  synonyms={ "end of transmission symbol" },
   unicodeslot=0x2301,
  },
  [0x2302]={
@@ -66104,6 +66452,7 @@
   mathclass="open",
   mathname="lceil",
   mirror=0x2309,
+  synonyms={ "apl upstile" },
   unicodeslot=0x2308,
  },
  [0x2309]={
@@ -66124,6 +66473,7 @@
   mathclass="open",
   mathname="lfloor",
   mirror=0x230B,
+  synonyms={ "apl downstile" },
   unicodeslot=0x230A,
  },
  [0x230B]={
@@ -66170,6 +66520,7 @@
   description="REVERSED NOT SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "beginning of line" },
   unicodeslot=0x2310,
  },
  [0x2311]={
@@ -66177,6 +66528,7 @@
   description="SQUARE LOZENGE",
   direction="on",
   linebreak="al",
+  synonyms={ "kissen", "pillow" },
   unicodeslot=0x2311,
  },
  [0x2312]={
@@ -66229,6 +66581,7 @@
   description="PLACE OF INTEREST SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "command key" },
   unicodeslot=0x2318,
  },
  [0x2319]={
@@ -66236,6 +66589,7 @@
   description="TURNED NOT SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "line marker" },
   unicodeslot=0x2319,
  },
  [0x231A]={
@@ -66331,6 +66685,7 @@
   description="UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS",
   direction="on",
   linebreak="al",
+  synonyms={ "enter key" },
   unicodeslot=0x2324,
  },
  [0x2325]={
@@ -66347,6 +66702,7 @@
   description="ERASE TO THE RIGHT",
   direction="on",
   linebreak="al",
+  synonyms={ "delete to the right key" },
   unicodeslot=0x2326,
  },
  [0x2327]={
@@ -66355,6 +66711,7 @@
   description="X IN A RECTANGLE BOX",
   direction="on",
   linebreak="al",
+  synonyms={ "clear key" },
   unicodeslot=0x2327,
  },
  [0x2328]={
@@ -66393,6 +66750,7 @@
   description="ERASE TO THE LEFT",
   direction="on",
   linebreak="al",
+  synonyms={ "delete to the left key" },
   unicodeslot=0x232B,
  },
  [0x232C]={
@@ -66792,6 +67150,7 @@
   description="APL FUNCTIONAL SYMBOL JOT DIAERESIS",
   direction="l",
   linebreak="al",
+  synonyms={ "hoot" },
   unicodeslot=0x2364,
  },
  [0x2365]={
@@ -66799,6 +67158,7 @@
   description="APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS",
   direction="l",
   linebreak="al",
+  synonyms={ "holler" },
   unicodeslot=0x2365,
  },
  [0x2366]={
@@ -66820,6 +67180,7 @@
   description="APL FUNCTIONAL SYMBOL TILDE DIAERESIS",
   direction="l",
   linebreak="al",
+  synonyms={ "smirk" },
   unicodeslot=0x2368,
  },
  [0x2369]={
@@ -66967,6 +67328,7 @@
   description="SHOULDERED OPEN BOX",
   direction="on",
   linebreak="al",
+  synonyms={ "keyboard symbol for no break space" },
   unicodeslot=0x237D,
  },
  [0x237E]={
@@ -66981,6 +67343,7 @@
   description="VERTICAL LINE WITH MIDDLE DOT",
   direction="on",
   linebreak="al",
+  synonyms={ "symbol for end of medium" },
   unicodeslot=0x237F,
  },
  [0x2380]={
@@ -67023,6 +67386,7 @@
   description="WHITE SQUARE WITH CENTRE VERTICAL LINE",
   direction="on",
   linebreak="al",
+  synonyms={ "center" },
   unicodeslot=0x2385,
  },
  [0x2386]={
@@ -67044,6 +67408,7 @@
   description="HELM SYMBOL",
   direction="on",
   linebreak="al",
+  synonyms={ "control" },
   unicodeslot=0x2388,
  },
  [0x2389]={
@@ -67051,6 +67416,7 @@
   description="CIRCLED HORIZONTAL BAR WITH NOTCH",
   direction="on",
   linebreak="al",
+  synonyms={ "pause" },
   unicodeslot=0x2389,
  },
  [0x238A]={
@@ -67058,6 +67424,7 @@
   description="CIRCLED TRIANGLE DOWN",
   direction="on",
   linebreak="al",
+  synonyms={ "interrupt" },
   unicodeslot=0x238A,
  },
  [0x238B]={
@@ -67326,6 +67693,7 @@
   linebreak="al",
   mathclass="open",
   mathname="lmoustache",
+  synonyms={ "left moustache" },
   unicodeslot=0x23B0,
  },
  [0x23B1]={
@@ -67335,6 +67703,7 @@
   linebreak="al",
   mathclass="close",
   mathname="rmoustache",
+  synonyms={ "right moustache" },
   unicodeslot=0x23B1,
  },
  [0x23B2]={
@@ -67553,6 +67922,7 @@
   description="EJECT SYMBOL",
   direction="on",
   linebreak="al",
+  synonyms={ "eject media" },
   unicodeslot=0x23CF,
   variants=variants_emoji,
  },
@@ -67755,6 +68125,7 @@
   description="BLACK RIGHT-POINTING DOUBLE TRIANGLE",
   direction="on",
   linebreak="al",
+  synonyms={ "fast forward" },
   unicodeslot=0x23E9,
  },
  [0x23EA]={
@@ -67763,6 +68134,7 @@
   description="BLACK LEFT-POINTING DOUBLE TRIANGLE",
   direction="on",
   linebreak="al",
+  synonyms={ "fast rewind" },
   unicodeslot=0x23EA,
  },
  [0x23EB]={
@@ -67842,6 +68214,7 @@
   description="BLACK MEDIUM LEFT-POINTING TRIANGLE",
   direction="on",
   linebreak="al",
+  synonyms={ "reverse play" },
   unicodeslot=0x23F4,
  },
  [0x23F5]={
@@ -67849,6 +68222,7 @@
   description="BLACK MEDIUM RIGHT-POINTING TRIANGLE",
   direction="on",
   linebreak="al",
+  synonyms={ "forward play" },
   unicodeslot=0x23F5,
  },
  [0x23F6]={
@@ -67856,6 +68230,7 @@
   description="BLACK MEDIUM UP-POINTING TRIANGLE",
   direction="on",
   linebreak="al",
+  synonyms={ "increase" },
   unicodeslot=0x23F6,
  },
  [0x23F7]={
@@ -67863,6 +68238,7 @@
   description="BLACK MEDIUM DOWN-POINTING TRIANGLE",
   direction="on",
   linebreak="al",
+  synonyms={ "decrease" },
   unicodeslot=0x23F7,
  },
  [0x23F8]={
@@ -67870,6 +68246,7 @@
   description="DOUBLE VERTICAL BAR",
   direction="on",
   linebreak="al",
+  synonyms={ "pause play" },
   unicodeslot=0x23F8,
   variants=variants_emoji,
  },
@@ -67878,6 +68255,7 @@
   description="BLACK SQUARE FOR STOP",
   direction="on",
   linebreak="al",
+  synonyms={ "stop play" },
   unicodeslot=0x23F9,
   variants=variants_emoji,
  },
@@ -67886,6 +68264,7 @@
   description="BLACK CIRCLE FOR RECORD",
   direction="on",
   linebreak="al",
+  synonyms={ "record" },
   unicodeslot=0x23FA,
   variants=variants_emoji,
  },
@@ -68168,6 +68547,7 @@
   description="OPEN BOX",
   direction="on",
   linebreak="al",
+  synonyms={ "graphic for space" },
   unicodeslot=0x2423,
  },
  [0x2424]={
@@ -71002,6 +71382,7 @@
   description="FULL BLOCK",
   direction="on",
   linebreak="ai",
+  synonyms={ "solid" },
   unicodeslot=0x2588,
  },
  [0x2589]={
@@ -71209,6 +71590,7 @@
     name="Box",
    },
   },
+  synonyms={ "quadrature" },
   unicodeslot=0x25A1,
  },
  [0x25A2]={
@@ -71320,6 +71702,7 @@
   description="BLACK VERTICAL RECTANGLE",
   direction="on",
   linebreak="al",
+  synonyms={ "histogram marker" },
   unicodeslot=0x25AE,
  },
  [0x25AF]={
@@ -71371,6 +71754,7 @@
     name="bigtriangleup",
    },
   },
+  synonyms={ "trine" },
   unicodeslot=0x25B3,
  },
  [0x25B4]={
@@ -71410,6 +71794,7 @@
   linebreak="ai",
   mathclass="binary",
   mathname="triangleright",
+  synonyms={ "range restriction" },
   unicodeslot=0x25B7,
  },
  [0x25B8]={
@@ -71440,6 +71825,7 @@
   description="WHITE RIGHT-POINTING POINTER",
   direction="on",
   linebreak="al",
+  synonyms={ "forward arrow indicator" },
   unicodeslot=0x25BB,
  },
  [0x25BC]={
@@ -71470,6 +71856,7 @@
     name="bigtriangledown",
    },
   },
+  synonyms={ "hamilton operator" },
   unicodeslot=0x25BD,
  },
  [0x25BE]={
@@ -71508,6 +71895,7 @@
   linebreak="ai",
   mathclass="binary",
   mathname="triangleleft",
+  synonyms={ "domain restriction" },
   unicodeslot=0x25C1,
  },
  [0x25C2]={
@@ -71538,6 +71926,7 @@
   description="WHITE LEFT-POINTING POINTER",
   direction="on",
   linebreak="al",
+  synonyms={ "backward arrow indicator" },
   unicodeslot=0x25C5,
  },
  [0x25C6]={
@@ -71573,6 +71962,7 @@
   description="FISHEYE",
   direction="on",
   linebreak="al",
+  synonyms={ "tainome japanese bullet" },
   unicodeslot=0x25C9,
  },
  [0x25CA]={
@@ -71952,6 +72342,7 @@
   description="WHITE MEDIUM SQUARE",
   direction="on",
   linebreak="al",
+  synonyms={ "always" },
   unicodeslot=0x25FB,
   variants=variants_emoji,
  },
@@ -71993,6 +72384,7 @@
   description="BLACK SUN WITH RAYS",
   direction="on",
   linebreak="id",
+  synonyms={ "clear weather" },
   unicodeslot=0x2600,
   variants=variants_emoji,
  },
@@ -72001,6 +72393,7 @@
   description="CLOUD",
   direction="on",
   linebreak="id",
+  synonyms={ "cloudy weather" },
   unicodeslot=0x2601,
   variants=variants_emoji,
  },
@@ -72009,6 +72402,7 @@
   description="UMBRELLA",
   direction="on",
   linebreak="id",
+  synonyms={ "rainy weather" },
   unicodeslot=0x2602,
   variants=variants_emoji,
  },
@@ -72017,6 +72411,7 @@
   description="SNOWMAN",
   direction="on",
   linebreak="id",
+  synonyms={ "snowy weather" },
   unicodeslot=0x2603,
   variants=variants_emoji,
  },
@@ -72144,6 +72539,7 @@
   description="SALTIRE",
   direction="on",
   linebreak="al",
+  synonyms={ "st. andrew's cross" },
   unicodeslot=0x2613,
  },
  [0x2614]={
@@ -72152,6 +72548,7 @@
   description="UMBRELLA WITH RAIN DROPS",
   direction="on",
   linebreak="id",
+  synonyms={ "showery weather" },
   unicodeslot=0x2614,
   variants=variants_emoji,
  },
@@ -72161,6 +72558,7 @@
   description="HOT BEVERAGE",
   direction="on",
   linebreak="id",
+  synonyms={ "cup of coffee", "cup of tea" },
   unicodeslot=0x2615,
   variants=variants_emoji,
  },
@@ -72232,6 +72630,7 @@
   description="WHITE RIGHT POINTING INDEX",
   direction="on",
   linebreak="id",
+  synonyms={ "fist" },
   unicodeslot=0x261E,
  },
  [0x261F]={
@@ -72247,6 +72646,7 @@
   description="SKULL AND CROSSBONES",
   direction="on",
   linebreak="al",
+  synonyms={ "jolly roger", "poison" },
   unicodeslot=0x2620,
   variants=variants_emoji,
  },
@@ -72300,6 +72700,7 @@
   description="CHI RHO",
   direction="on",
   linebreak="al",
+  synonyms={ "christogram", "constantine's cross" },
   unicodeslot=0x2627,
  },
  [0x2628]={
@@ -72336,6 +72737,7 @@
   description="ADI SHAKTI",
   direction="on",
   linebreak="al",
+  synonyms={ "gurmukhi khanda" },
   unicodeslot=0x262C,
  },
  [0x262D]={
@@ -72440,6 +72842,7 @@
   description="WHITE SMILING FACE",
   direction="on",
   linebreak="id",
+  synonyms={ "have a nice day!" },
   unicodeslot=0x263A,
   variants=variants_emoji,
  },
@@ -72457,6 +72860,7 @@
   description="WHITE SUN WITH RAYS",
   direction="on",
   linebreak="al",
+  synonyms={ "compass" },
   unicodeslot=0x263C,
  },
  [0x263D]={
@@ -72487,6 +72891,7 @@
   description="FEMALE SIGN",
   direction="on",
   linebreak="ai",
+  synonyms={ "venus" },
   unicodeslot=0x2640,
  },
  [0x2641]={
@@ -72504,6 +72909,7 @@
   description="MALE SIGN",
   direction="on",
   linebreak="ai",
+  synonyms={ "mars" },
   unicodeslot=0x2642,
  },
  [0x2643]={
@@ -72592,6 +72998,7 @@
   description="VIRGO",
   direction="on",
   linebreak="al",
+  synonyms={ "minim alternate glyph" },
   unicodeslot=0x264D,
   variants=variants_emoji,
  },
@@ -72610,6 +73017,7 @@
   description="SCORPIUS",
   direction="on",
   linebreak="al",
+  synonyms={ "drop", "minim" },
   unicodeslot=0x264F,
   variants=variants_emoji,
  },
@@ -72775,6 +73183,7 @@
   linebreak="ai",
   mathclass="default",
   mathname="clubsuit",
+  synonyms={ "shamrock" },
   unicodeslot=0x2663,
   variants=variants_emoji,
  },
@@ -72794,6 +73203,7 @@
   description="BLACK HEART SUIT",
   direction="on",
   linebreak="ai",
+  synonyms={ "valentine" },
   unicodeslot=0x2665,
   variants=variants_emoji,
  },
@@ -72834,6 +73244,7 @@
   description="QUARTER NOTE",
   direction="on",
   linebreak="ai",
+  synonyms={ "crotchet" },
   unicodeslot=0x2669,
  },
  [0x266A]={
@@ -72843,6 +73254,7 @@
   description="EIGHTH NOTE",
   direction="on",
   linebreak="ai",
+  synonyms={ "quaver" },
   unicodeslot=0x266A,
  },
  [0x266B]={
@@ -72851,6 +73263,7 @@
   description="BEAMED EIGHTH NOTES",
   direction="on",
   linebreak="al",
+  synonyms={ "beamed quavers" },
   unicodeslot=0x266B,
  },
  [0x266C]={
@@ -72860,6 +73273,7 @@
   description="BEAMED SIXTEENTH NOTES",
   direction="on",
   linebreak="ai",
+  synonyms={ "beamed semiquavers" },
   unicodeslot=0x266C,
  },
  [0x266D]={
@@ -72891,6 +73305,7 @@
   linebreak="ai",
   mathclass="default",
   mathname="sharp",
+  synonyms={ "infix bag count" },
   unicodeslot=0x266F,
  },
  [0x2670]={
@@ -73139,6 +73554,7 @@
   description="HAMMER AND PICK",
   direction="on",
   linebreak="al",
+  synonyms={ "mining symbol", "working day symbol" },
   unicodeslot=0x2692,
   variants=variants_emoji,
  },
@@ -73148,6 +73564,7 @@
   description="ANCHOR",
   direction="on",
   linebreak="al",
+  synonyms={ "harbor symbol" },
   unicodeslot=0x2693,
   variants=variants_emoji,
  },
@@ -73156,6 +73573,7 @@
   description="CROSSED SWORDS",
   direction="on",
   linebreak="al",
+  synonyms={ "battleground symbol" },
   unicodeslot=0x2694,
   variants=variants_emoji,
  },
@@ -73171,6 +73589,7 @@
   description="SCALES",
   direction="on",
   linebreak="al",
+  synonyms={ "jurisprudence symbol" },
   unicodeslot=0x2696,
   variants=variants_emoji,
  },
@@ -73257,6 +73676,7 @@
   description="HIGH VOLTAGE SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "lightning", "thunder" },
   unicodeslot=0x26A1,
   variants=variants_emoji,
  },
@@ -73367,6 +73787,7 @@
   description="COFFIN",
   direction="on",
   linebreak="al",
+  synonyms={ "buried symbol" },
   unicodeslot=0x26B0,
   variants=variants_emoji,
  },
@@ -73375,6 +73796,7 @@
   description="FUNERAL URN",
   direction="on",
   linebreak="al",
+  synonyms={ "cremated symbol" },
   unicodeslot=0x26B1,
   variants=variants_emoji,
  },
@@ -73479,6 +73901,7 @@
   description="SQUARED KEY",
   direction="on",
   linebreak="id",
+  synonyms={ "parental lock" },
   unicodeslot=0x26BF,
  },
  [0x26C0]={
@@ -73515,6 +73938,7 @@
   description="SNOWMAN WITHOUT SNOW",
   direction="on",
   linebreak="id",
+  synonyms={ "light snow" },
   unicodeslot=0x26C4,
   variants=variants_emoji,
  },
@@ -73524,6 +73948,7 @@
   description="SUN BEHIND CLOUD",
   direction="on",
   linebreak="id",
+  synonyms={ "partly cloudy" },
   unicodeslot=0x26C5,
   variants=variants_emoji,
  },
@@ -73541,6 +73966,7 @@
   description="BLACK SNOWMAN",
   direction="on",
   linebreak="id",
+  synonyms={ "heavy snow" },
   unicodeslot=0x26C7,
  },
  [0x26C8]={
@@ -73549,6 +73975,7 @@
   description="THUNDER CLOUD AND RAIN",
   direction="on",
   linebreak="id",
+  synonyms={ "thunderstorm" },
   unicodeslot=0x26C8,
   variants=variants_emoji,
  },
@@ -73582,6 +74009,7 @@
   description="CROSSING LANES",
   direction="on",
   linebreak="ai",
+  synonyms={ "accident" },
   unicodeslot=0x26CC,
  },
  [0x26CD]={
@@ -73606,6 +74034,7 @@
   description="PICK",
   direction="on",
   linebreak="id",
+  synonyms={ "construction" },
   unicodeslot=0x26CF,
   variants=variants_emoji,
  },
@@ -73615,6 +74044,7 @@
   description="CAR SLIDING",
   direction="on",
   linebreak="id",
+  synonyms={ "icy road" },
   unicodeslot=0x26D0,
  },
  [0x26D1]={
@@ -73632,6 +74062,7 @@
   description="CIRCLED CROSSING LANES",
   direction="on",
   linebreak="ai",
+  synonyms={ "road closed" },
   unicodeslot=0x26D2,
  },
  [0x26D3]={
@@ -73649,6 +74080,7 @@
   description="NO ENTRY",
   direction="on",
   linebreak="id",
+  synonyms={ "do not enter" },
   unicodeslot=0x26D4,
   variants=variants_emoji,
  },
@@ -73706,6 +74138,7 @@
   description="HEAVY WHITE DOWN-POINTING TRIANGLE",
   direction="on",
   linebreak="ai",
+  synonyms={ "yield" },
   unicodeslot=0x26DB,
  },
  [0x26DC]={
@@ -73738,6 +74171,7 @@
   description="BLACK TRUCK",
   direction="on",
   linebreak="id",
+  synonyms={ "black lorry" },
   unicodeslot=0x26DF,
  },
  [0x26E0]={
@@ -73761,6 +74195,7 @@
   description="ASTRONOMICAL SYMBOL FOR URANUS",
   direction="on",
   linebreak="al",
+  synonyms={ "uranus" },
   unicodeslot=0x26E2,
  },
  [0x26E3]={
@@ -73776,6 +74211,7 @@
   description="PENTAGRAM",
   direction="on",
   linebreak="al",
+  synonyms={ "pentangle pentalpha" },
   unicodeslot=0x26E4,
  },
  [0x26E5]={
@@ -73805,6 +74241,7 @@
   description="BLACK CROSS ON SHIELD",
   direction="on",
   linebreak="ai",
+  synonyms={ "hospital" },
   unicodeslot=0x26E8,
  },
  [0x26E9]={
@@ -73813,6 +74250,7 @@
   description="SHINTO SHRINE",
   direction="on",
   linebreak="ai",
+  synonyms={ "torii" },
   unicodeslot=0x26E9,
   variants=variants_emoji,
  },
@@ -73847,6 +74285,7 @@
   description="GEAR WITHOUT HUB",
   direction="on",
   linebreak="ai",
+  synonyms={ "factory" },
   unicodeslot=0x26ED,
  },
  [0x26EE]={
@@ -73855,6 +74294,7 @@
   description="GEAR WITH HANDLES",
   direction="on",
   linebreak="ai",
+  synonyms={ "power plant" },
   unicodeslot=0x26EE,
  },
  [0x26EF]={
@@ -73880,6 +74320,7 @@
   description="UMBRELLA ON GROUND",
   direction="on",
   linebreak="id",
+  synonyms={ "bathing beach" },
   unicodeslot=0x26F1,
   variants=variants_emoji,
  },
@@ -73889,6 +74330,7 @@
   description="FOUNTAIN",
   direction="on",
   linebreak="id",
+  synonyms={ "park" },
   unicodeslot=0x26F2,
   variants=variants_emoji,
  },
@@ -73898,6 +74340,7 @@
   description="FLAG IN HOLE",
   direction="on",
   linebreak="id",
+  synonyms={ "golf course" },
   unicodeslot=0x26F3,
   variants=variants_emoji,
  },
@@ -73907,6 +74350,7 @@
   description="FERRY",
   direction="on",
   linebreak="id",
+  synonyms={ "boat terminal", "marina or yacht harbour" },
   unicodeslot=0x26F4,
   variants=variants_emoji,
  },
@@ -73960,6 +74404,7 @@
   description="TENT",
   direction="on",
   linebreak="id",
+  synonyms={ "camping site" },
   unicodeslot=0x26FA,
   variants=variants_emoji,
  },
@@ -73977,6 +74422,7 @@
   description="HEADSTONE GRAVEYARD SYMBOL",
   direction="on",
   linebreak="ai",
+  synonyms={ "cemetery", "graveyard" },
   unicodeslot=0x26FC,
  },
  [0x26FD]={
@@ -73985,6 +74431,7 @@
   description="FUEL PUMP",
   direction="on",
   linebreak="id",
+  synonyms={ "gas station", "petrol station" },
   unicodeslot=0x26FD,
   variants=variants_emoji,
  },
@@ -73994,6 +74441,7 @@
   description="CUP ON BLACK SQUARE",
   direction="on",
   linebreak="id",
+  synonyms={ "drive-in restaurant" },
   unicodeslot=0x26FE,
  },
  [0x26FF]={
@@ -74084,6 +74532,7 @@
   description="RAISED FIST",
   direction="on",
   linebreak="eb",
+  synonyms={ "paper, scissors game rock in rock" },
   unicodeslot=0x270A,
  },
  [0x270B]={
@@ -74092,6 +74541,7 @@
   description="RAISED HAND",
   direction="on",
   linebreak="eb",
+  synonyms={ "paper, scissors game paper in rock" },
   unicodeslot=0x270B,
  },
  [0x270C]={
@@ -74099,6 +74549,7 @@
   description="VICTORY HAND",
   direction="on",
   linebreak="eb",
+  synonyms={ "paper, scissors game scissors in rock" },
   unicodeslot=0x270C,
   variants=variants_emoji,
  },
@@ -74409,6 +74860,7 @@
   description="SIX POINTED BLACK STAR",
   direction="on",
   linebreak="al",
+  synonyms={ "sextile" },
   unicodeslot=0x2736,
  },
  [0x2737]={
@@ -74437,6 +74889,7 @@
   description="SIXTEEN POINTED ASTERISK",
   direction="on",
   linebreak="al",
+  synonyms={ "starburst" },
   unicodeslot=0x273A,
  },
  [0x273B]={
@@ -74545,6 +74998,7 @@
   description="BALLOON-SPOKED ASTERISK",
   direction="on",
   linebreak="al",
+  synonyms={ "jack" },
   unicodeslot=0x2749,
  },
  [0x274A]={
@@ -74559,6 +75013,7 @@
   description="HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK",
   direction="on",
   linebreak="al",
+  synonyms={ "turbofan" },
   unicodeslot=0x274B,
  },
  [0x274C]={
@@ -74757,6 +75212,7 @@
   description="FLORAL HEART",
   direction="on",
   linebreak="al",
+  synonyms={ "aldus leaf" },
   unicodeslot=0x2766,
  },
  [0x2767]={
@@ -74764,6 +75220,7 @@
   description="ROTATED FLORAL HEART BULLET",
   direction="on",
   linebreak="al",
+  synonyms={ "hedera", "ivy leaf" },
   unicodeslot=0x2767,
  },
  [0x2768]={
@@ -75570,6 +76027,7 @@
   description="LOWER RIGHT CORNER WITH DOT",
   direction="on",
   linebreak="al",
+  synonyms={ "pullback" },
   unicodeslot=0x27D3,
  },
  [0x27D4]={
@@ -75577,6 +76035,7 @@
   description="UPPER LEFT CORNER WITH DOT",
   direction="on",
   linebreak="al",
+  synonyms={ "pushout" },
   unicodeslot=0x27D4,
  },
  [0x27D5]={
@@ -75658,6 +76117,7 @@
   description="UP TACK WITH CIRCLE ABOVE",
   direction="on",
   linebreak="al",
+  synonyms={ "radial component" },
   unicodeslot=0x27DF,
  },
  [0x27E0]={
@@ -75715,6 +76175,7 @@
   mathclass="open",
   mathname="llbracket",
   mirror=0x27E7,
+  synonyms={ "left bag bracket" },
   unicodeslot=0x27E6,
  },
  [0x27E7]={
@@ -75726,6 +76187,7 @@
   mathclass="close",
   mathname="rrbracket",
   mirror=0x27E6,
+  synonyms={ "right bag bracket" },
   unicodeslot=0x27E7,
  },
  [0x27E8]={
@@ -75737,6 +76199,7 @@
   mathclass="open",
   mathname="langle",
   mirror=0x27E9,
+  synonyms={ "bra", "left sequence bracket" },
   unicodeslot=0x27E8,
  },
  [0x27E9]={
@@ -75748,6 +76211,7 @@
   mathclass="close",
   mathname="rangle",
   mirror=0x27E8,
+  synonyms={ "ket", "right sequence bracket" },
   unicodeslot=0x27E9,
  },
  [0x27EA]={
@@ -75759,6 +76223,7 @@
   mathclass="open",
   mathname="llangle",
   mirror=0x27EB,
+  synonyms={ "left chevron bracket" },
   unicodeslot=0x27EA,
  },
  [0x27EB]={
@@ -75770,6 +76235,7 @@
   mathclass="close",
   mathname="rrangle",
   mirror=0x27EA,
+  synonyms={ "right chevron bracket" },
   unicodeslot=0x27EB,
  },
  [0x27EC]={
@@ -75798,6 +76264,7 @@
   mathclass="open",
   mathname="lgroup",
   mirror=0x27EF,
+  synonyms={ "lgroup" },
   unicodeslot=0x27EE,
  },
  [0x27EF]={
@@ -75808,6 +76275,7 @@
   mathclass="close",
   mathname="rgroup",
   mirror=0x27EE,
+  synonyms={ "rgroup" },
   unicodeslot=0x27EF,
  },
  [0x27F0]={
@@ -77765,6 +78233,7 @@
   direction="on",
   linebreak="al",
   mathextensible="r",
+  synonyms={ "partial surjection" },
   unicodeslot=0x2900,
  },
  [0x2901]={
@@ -77773,6 +78242,7 @@
   direction="on",
   linebreak="al",
   mathextensible="r",
+  synonyms={ "finite surjection" },
   unicodeslot=0x2901,
  },
  [0x2902]={
@@ -77815,6 +78285,7 @@
   mathclass="relation",
   mathextensible="l",
   mathname="Mapsfrom",
+  synonyms={ "maps from" },
   unicodeslot=0x2906,
  },
  [0x2907]={
@@ -77825,6 +78296,7 @@
   mathclass="relation",
   mathextensible="r",
   mathname="Mapsto",
+  synonyms={ "maps to" },
   unicodeslot=0x2907,
  },
  [0x2908]={
@@ -77939,6 +78411,7 @@
   direction="on",
   linebreak="al",
   mathextensible="r",
+  synonyms={ "partial injection" },
   unicodeslot=0x2914,
  },
  [0x2915]={
@@ -77947,6 +78420,7 @@
   direction="on",
   linebreak="al",
   mathextensible="r",
+  synonyms={ "finite injection" },
   unicodeslot=0x2915,
  },
  [0x2916]={
@@ -77957,6 +78431,7 @@
   mathclass="relation",
   mathextensible="r",
   mathname="twoheadrightarrowtail",
+  synonyms={ "bijection" },
   unicodeslot=0x2916,
  },
  [0x2917]={
@@ -77966,6 +78441,7 @@
   linebreak="al",
   mathclass="relation",
   mathextensible="r",
+  synonyms={ "surjective injection" },
   unicodeslot=0x2917,
  },
  [0x2918]={
@@ -77974,6 +78450,7 @@
   direction="on",
   linebreak="al",
   mathextensible="r",
+  synonyms={ "finite surjective injection" },
   unicodeslot=0x2918,
  },
  [0x2919]={
@@ -78945,8 +79422,8 @@
    },
   },
   mirror=0x2998,
+  textclass="open",
   unicodeslot=0x2997,
-  textclass="open",
  },
  [0x2998]={
   category="pe",
@@ -78972,8 +79449,8 @@
    },
   },
   mirror=0x2997,
+  textclass="close",
   unicodeslot=0x2998,
-  textclass="close",
  },
  [0x2999]={
   category="sm",
@@ -79418,6 +79895,7 @@
   description="WHITE HOURGLASS",
   direction="on",
   linebreak="al",
+  synonyms={ "vertical bowtie", "white framus" },
   unicodeslot=0x29D6,
  },
  [0x29D7]={
@@ -79464,6 +79942,7 @@
   description="INCOMPLETE INFINITY",
   direction="on",
   linebreak="al",
+  synonyms={ "isotech entity ⧜" },
   unicodeslot=0x29DC,
  },
  [0x29DD]={
@@ -79492,6 +79971,7 @@
   description="SQUARE WITH CONTOURED OUTLINE",
   direction="on",
   linebreak="al",
+  synonyms={ "d'alembertian" },
   unicodeslot=0x29E0,
  },
  [0x29E1]={
@@ -79534,6 +80014,7 @@
   description="GLEICH STARK",
   direction="on",
   linebreak="al",
+  synonyms={ "tautological equivalent" },
   unicodeslot=0x29E6,
  },
  [0x29E7]={
@@ -79635,6 +80116,7 @@
   description="RULE-DELAYED",
   direction="on",
   linebreak="al",
+  synonyms={ "colon right arrow" },
   unicodeslot=0x29F4,
  },
  [0x29F5]={
@@ -79673,6 +80155,7 @@
   direction="on",
   linebreak="al",
   mirror=0x29F8,
+  synonyms={ "schema hiding" },
   unicodeslot=0x29F9,
  },
  [0x29FA]={
@@ -79787,6 +80270,7 @@
   description="TWO LOGICAL AND OPERATOR",
   direction="on",
   linebreak="al",
+  synonyms={ "merge" },
   unicodeslot=0x2A07,
  },
  [0x2A08]={
@@ -79871,6 +80355,7 @@
   description="ANTICLOCKWISE INTEGRATION",
   direction="on",
   linebreak="al",
+  synonyms={ "counterclockwise integration" },
   unicodeslot=0x2A11,
  },
  [0x2A12]={
@@ -79942,6 +80427,7 @@
   description="INTEGRAL WITH OVERBAR",
   direction="on",
   linebreak="al",
+  synonyms={ "upper integral" },
   unicodeslot=0x2A1B,
  },
  [0x2A1C]={
@@ -79949,6 +80435,7 @@
   description="INTEGRAL WITH UNDERBAR",
   direction="on",
   linebreak="al",
+  synonyms={ "lower integral" },
   unicodeslot=0x2A1C,
  },
  [0x2A1D]={
@@ -79956,6 +80443,7 @@
   description="JOIN",
   direction="on",
   linebreak="al",
+  synonyms={ "large bowtie" },
   unicodeslot=0x2A1D,
  },
  [0x2A1E]={
@@ -80005,6 +80493,7 @@
   description="PLUS SIGN WITH TILDE ABOVE",
   direction="on",
   linebreak="al",
+  synonyms={ "positive difference or sum" },
   unicodeslot=0x2A24,
  },
  [0x2A25]={
@@ -80019,6 +80508,7 @@
   description="PLUS SIGN WITH TILDE BELOW",
   direction="on",
   linebreak="al",
+  synonyms={ "sum or positive difference" },
   unicodeslot=0x2A26,
  },
  [0x2A27]={
@@ -80026,6 +80516,7 @@
   description="PLUS SIGN WITH SUBSCRIPT TWO",
   direction="on",
   linebreak="al",
+  synonyms={ "nim-addition" },
   unicodeslot=0x2A27,
  },
  [0x2A28]={
@@ -80224,6 +80715,7 @@
   description="UNION WITH MINUS SIGN",
   direction="on",
   linebreak="al",
+  synonyms={ "bag subtraction" },
   unicodeslot=0x2A41,
  },
  [0x2A42]={
@@ -80958,6 +81450,7 @@
   direction="on",
   linebreak="al",
   mirror=0x2AA2,
+  synonyms={ "absolute continuity" },
   unicodeslot=0x2AA1,
  },
  [0x2AA2]={
@@ -81451,6 +81944,7 @@
   direction="on",
   linebreak="al",
   specials={ "char", 0x2ADD, 0x338 },
+  synonyms={ "not independent" },
   unicodeslot=0x2ADC,
  },
  [0x2ADD]={
@@ -81458,6 +81952,7 @@
   description="NONFORKING",
   direction="on",
   linebreak="al",
+  synonyms={ "independent" },
   unicodeslot=0x2ADD,
  },
  [0x2ADE]={
@@ -81494,6 +81989,7 @@
   description="VERTICAL BAR TRIPLE RIGHT TURNSTILE",
   direction="on",
   linebreak="al",
+  synonyms={ "ordinarily satisfies" },
   unicodeslot=0x2AE2,
  },
  [0x2AE3]={
@@ -81560,6 +82056,7 @@
   description="DOUBLE UP TACK",
   direction="on",
   linebreak="al",
+  synonyms={ "independence" },
   unicodeslot=0x2AEB,
  },
  [0x2AEC]={
@@ -81604,6 +82101,7 @@
   description="DOWN TACK WITH CIRCLE BELOW",
   direction="on",
   linebreak="al",
+  synonyms={ "necessarily satisfies" },
   unicodeslot=0x2AF1,
  },
  [0x2AF2]={
@@ -81625,6 +82123,7 @@
   description="TRIPLE VERTICAL BAR BINARY RELATION",
   direction="on",
   linebreak="al",
+  synonyms={ "interleave" },
   unicodeslot=0x2AF4,
  },
  [0x2AF5]={
@@ -81699,6 +82198,7 @@
   description="WHITE VERTICAL BAR",
   direction="on",
   linebreak="al",
+  synonyms={ "dijkstra choice" },
   unicodeslot=0x2AFE,
  },
  [0x2AFF]={
@@ -81706,6 +82206,7 @@
   description="N-ARY WHITE VERTICAL BAR",
   direction="on",
   linebreak="al",
+  synonyms={ "n-ary dijkstra choice" },
   unicodeslot=0x2AFF,
  },
  [0x2B00]={
@@ -82527,6 +83028,7 @@
   description="LEFTWARDS TRIANGLE-HEADED ARROW TO BAR",
   direction="on",
   linebreak="al",
+  synonyms={ "left tab" },
   unicodeslot=0x2B70,
  },
  [0x2B71]={
@@ -82534,6 +83036,7 @@
   description="UPWARDS TRIANGLE-HEADED ARROW TO BAR",
   direction="on",
   linebreak="al",
+  synonyms={ "up tab" },
   unicodeslot=0x2B71,
  },
  [0x2B72]={
@@ -82541,6 +83044,7 @@
   description="RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR",
   direction="on",
   linebreak="al",
+  synonyms={ "right tab" },
   unicodeslot=0x2B72,
  },
  [0x2B73]={
@@ -82548,6 +83052,7 @@
   description="DOWNWARDS TRIANGLE-HEADED ARROW TO BAR",
   direction="on",
   linebreak="al",
+  synonyms={ "down tab" },
   unicodeslot=0x2B73,
  },
  [0x2B76]={
@@ -82604,6 +83109,7 @@
   description="DOWNWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE",
   direction="on",
   linebreak="al",
+  synonyms={ "page down" },
   unicodeslot=0x2B7D,
  },
  [0x2B7E]={
@@ -83010,6 +83516,7 @@
   description="UP ARROWHEAD IN A RECTANGLE BOX",
   direction="on",
   linebreak="al",
+  synonyms={ "escape" },
   unicodeslot=0x2BB9,
  },
  [0x2BBD]={
@@ -86874,6 +87381,7 @@
   description="INVERTED INTERROBANG",
   direction="on",
   linebreak="op",
+  synonyms={ "gnaborretni" },
   unicodeslot=0x2E18,
  },
  [0x2E19]={
@@ -87124,6 +87632,7 @@
   description="TWO-EM DASH",
   direction="on",
   linebreak="b2",
+  synonyms={ "omission dash" },
   unicodeslot=0x2E3A,
  },
  [0x2E3B]={
@@ -90399,6 +90908,7 @@
   direction="on",
   linebreak="op",
   mirror=0x301B,
+  synonyms={ "left abstract syntax bracket" },
   unicodeslot=0x301A,
  },
  [0x301B]={
@@ -90408,6 +90918,7 @@
   direction="on",
   linebreak="cl",
   mirror=0x301A,
+  synonyms={ "right abstract syntax bracket" },
   unicodeslot=0x301B,
  },
  [0x301C]={
@@ -91788,6 +92299,7 @@
   direction="nsm",
   linebreak="cm",
   sound="voiced",
+  synonyms={ "combining japanese daku-on" },
   unicodeslot=0x3099,
  },
  [0x309A]={
@@ -91798,6 +92310,7 @@
   direction="nsm",
   linebreak="cm",
   sound="semivoiced",
+  synonyms={ "combining japanese han-daku-on" },
   unicodeslot=0x309A,
  },
  [0x309B]={
@@ -91809,6 +92322,7 @@
   linebreak="ns",
   sound="voiced",
   specials={ "compat", 0x20, 0x3099 },
+  synonyms={ "japanese daku-on" },
   unicodeslot=0x309B,
  },
  [0x309C]={
@@ -91820,6 +92334,7 @@
   linebreak="ns",
   sound="semivoiced",
   specials={ "compat", 0x20, 0x309A },
+  synonyms={ "japanese han-daku-on" },
   unicodeslot=0x309C,
  },
  [0x309D]={
@@ -98710,6 +99225,7 @@
   direction="l",
   linebreak="id",
   specials={ "square", 0x682A, 0x5F0F, 0x4F1A, 0x793E },
+  synonyms={ "japanese incorporated", "kabusiki-gaisya" },
   unicodeslot=0x337F,
  },
  [0x3380]={
@@ -131918,6 +132434,7 @@
   direction="al",
   linebreak="po",
   specials={ "isolated", 0x631, 0x6CC, 0x627, 0x644 },
+  synonyms={ "iranian currency" },
   unicodeslot=0xFDFC,
  },
  [0xFDFD]={
@@ -131927,6 +132444,11 @@
   linebreak="al",
   unicodeslot=0xFDFD,
  },
+ [0xFE00]={
+  description="VARIATION SELECTOR-0x0001",
+  synonyms={ "vs1" },
+  unicodeslot=0xFE00,
+ },
  [0xFE10]={
   category="po",
   cjkwd="w",
@@ -133961,6 +134483,7 @@
   description="ZERO WIDTH NO-BREAK SPACE",
   direction="bn",
   linebreak="wj",
+  synonyms={ "bom", "byte order mark", "zwnbsp" },
   unicodeslot=0xFEFF,
  },
  [0xFF01]={
@@ -198804,6 +199327,7 @@
   description="MUSICAL SYMBOL WHOLE NOTE",
   direction="l",
   linebreak="al",
+  synonyms={ "semibreve" },
   unicodeslot=0x1D15D,
  },
  [0x1D15E]={
@@ -198836,6 +199360,7 @@
   direction="l",
   linebreak="al",
   specials={ "char", 0x1D15F, 0x1D16F },
+  synonyms={ "semiquaver" },
   unicodeslot=0x1D161,
  },
  [0x1D162]={
@@ -202515,6 +203040,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x50 },
+  synonyms={ "power set" },
   unicodeslot=0x1D4AB,
  },
  [0x1D4AC]={
@@ -203319,6 +203845,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x4D },
+  synonyms={ "new testament majority text" },
   unicodeslot=0x1D510,
  },
  [0x1D511]={
@@ -203359,6 +203886,7 @@
   direction="l",
   linebreak="al",
   specials={ "font", 0x53 },
+  synonyms={ "greek old testament", "septuagint" },
   unicodeslot=0x1D516,
  },
  [0x1D517]={
@@ -220711,6 +221239,7 @@
   direction="on",
   linebreak="al",
   specials={ "super", 0x4D, 0x43 },
+  synonyms={ "marque de commerce" },
   unicodeslot=0x1F16A,
  },
  [0x1F16B]={
@@ -220719,6 +221248,7 @@
   direction="on",
   linebreak="al",
   specials={ "super", 0x4D, 0x44 },
+  synonyms={ "marque deposee" },
   unicodeslot=0x1F16B,
  },
  [0x1F170]={
@@ -222357,6 +222887,7 @@
   description="HOT PEPPER",
   direction="on",
   linebreak="id",
+  synonyms={ "spicy" },
   unicodeslot=0x1F336,
   variants=variants_emoji,
  },
@@ -222854,6 +223385,7 @@
   description="FORK AND KNIFE",
   direction="on",
   linebreak="id",
+  synonyms={ "meal (glyph may vary) restaurant" },
   unicodeslot=0x1F374,
  },
  [0x1F375]={
@@ -222925,6 +223457,7 @@
   description="FORK AND KNIFE WITH PLATE",
   direction="on",
   linebreak="id",
+  synonyms={ "dining available symbol", "food available symbol" },
   unicodeslot=0x1F37D,
   variants=variants_emoji,
  },
@@ -222990,6 +223523,7 @@
   description="FATHER CHRISTMAS",
   direction="on",
   linebreak="eb",
+  synonyms={ "santa claus" },
   unicodeslot=0x1F385,
  },
  [0x1F386]={
@@ -223102,6 +223636,7 @@
   description="GRADUATION CAP",
   direction="on",
   linebreak="id",
+  synonyms={ "mortarboard" },
   unicodeslot=0x1F393,
  },
  [0x1F394]={
@@ -223305,6 +223840,7 @@
   description="PERFORMING ARTS",
   direction="on",
   linebreak="id",
+  synonyms={ "masks of comedy and tragedy", "theater masks" },
   unicodeslot=0x1F3AD,
  },
  [0x1F3AE]={
@@ -223998,6 +224534,7 @@
   description="COW",
   direction="on",
   linebreak="id",
+  synonyms={ "beef (on menus)" },
   unicodeslot=0x1F404,
  },
  [0x1F405]={
@@ -224126,6 +224663,7 @@
   description="CHICKEN",
   direction="on",
   linebreak="id",
+  synonyms={ "poultry (on menus)" },
   unicodeslot=0x1F414,
  },
  [0x1F415]={
@@ -224142,6 +224680,7 @@
   description="PIG",
   direction="on",
   linebreak="id",
+  synonyms={ "pork (on menus)" },
   unicodeslot=0x1F416,
  },
  [0x1F417]={
@@ -224174,6 +224713,7 @@
   description="SPIRAL SHELL",
   direction="on",
   linebreak="id",
+  synonyms={ "seashell" },
   unicodeslot=0x1F41A,
  },
  [0x1F41B]={
@@ -224558,6 +225098,7 @@
   description="FISTED HAND SIGN",
   direction="on",
   linebreak="eb",
+  synonyms={ "punch" },
   unicodeslot=0x1F44A,
  },
  [0x1F44B]={
@@ -224766,6 +225307,7 @@
   description="BUST IN SILHOUETTE",
   direction="on",
   linebreak="id",
+  synonyms={ "guest account" },
   unicodeslot=0x1F464,
  },
  [0x1F465]={
@@ -224774,6 +225316,7 @@
   description="BUSTS IN SILHOUETTE",
   direction="on",
   linebreak="id",
+  synonyms={ "accounts" },
   unicodeslot=0x1F465,
  },
  [0x1F466]={
@@ -224918,6 +225461,7 @@
   description="CONSTRUCTION WORKER",
   direction="on",
   linebreak="eb",
+  synonyms={ "hardhat" },
   unicodeslot=0x1F477,
  },
  [0x1F478]={
@@ -225254,6 +225798,7 @@
   description="ELECTRIC LIGHT BULB",
   direction="on",
   linebreak="id",
+  synonyms={ "idea" },
   unicodeslot=0x1F4A1,
  },
  [0x1F4A2]={
@@ -225294,6 +225839,7 @@
   description="SPLASHING SWEAT SYMBOL",
   direction="on",
   linebreak="id",
+  synonyms={ "plewds" },
   unicodeslot=0x1F4A6,
  },
  [0x1F4A7]={
@@ -225310,6 +225856,7 @@
   description="DASH SYMBOL",
   direction="on",
   linebreak="id",
+  synonyms={ "briffits" },
   unicodeslot=0x1F4A8,
  },
  [0x1F4A9]={
@@ -225334,6 +225881,7 @@
   description="DIZZY SYMBOL",
   direction="on",
   linebreak="id",
+  synonyms={ "squeans" },
   unicodeslot=0x1F4AB,
  },
  [0x1F4AC]={
@@ -225494,6 +226042,7 @@
   description="OPTICAL DISC",
   direction="on",
   linebreak="id",
+  synonyms={ "cd", "compact disc" },
   unicodeslot=0x1F4BF,
  },
  [0x1F4C0]={
@@ -226093,6 +226642,7 @@
   description="SPEAKER WITH THREE SOUND WAVES",
   direction="on",
   linebreak="id",
+  synonyms={ "sound" },
   unicodeslot=0x1F50A,
  },
  [0x1F50B]={
@@ -226989,6 +227539,7 @@
   description="RIGHT HAND TELEPHONE RECEIVER",
   direction="on",
   linebreak="id",
+  synonyms={ "telephone handset" },
   unicodeslot=0x1F57D,
  },
  [0x1F57E]={
@@ -227594,6 +228145,7 @@
   description="WASTEBASKET",
   direction="on",
   linebreak="id",
+  synonyms={ "trashcan" },
   unicodeslot=0x1F5D1,
   variants=variants_emoji,
  },
@@ -227835,6 +228387,7 @@
   description="LIGHTNING MOOD",
   direction="on",
   linebreak="id",
+  synonyms={ "lightning bolt" },
   unicodeslot=0x1F5F2,
  },
  [0x1F5F3]={
@@ -229476,6 +230029,7 @@
   description="TRIANGLE WITH ROUNDED CORNERS",
   direction="on",
   linebreak="id",
+  synonyms={ "caution" },
   unicodeslot=0x1F6C6,
  },
  [0x1F6C7]={
@@ -229490,6 +230044,7 @@
   description="CIRCLED INFORMATION SOURCE",
   direction="on",
   linebreak="id",
+  synonyms={ "information" },
   unicodeslot=0x1F6C8,
  },
  [0x1F6C9]={
@@ -229560,6 +230115,7 @@
   description="OCTAGONAL SIGN",
   direction="on",
   linebreak="id",
+  synonyms={ "stop sign" },
   unicodeslot=0x1F6D1,
  },
  [0x1F6D2]={
@@ -229568,6 +230124,7 @@
   description="SHOPPING TROLLEY",
   direction="on",
   linebreak="id",
+  synonyms={ "shopping cart" },
   unicodeslot=0x1F6D2,
  },
  [0x1F6E0]={
@@ -230618,6 +231175,7 @@
   description="ROUND TARGET",
   direction="on",
   linebreak="al",
+  synonyms={ "bullseye" },
   unicodeslot=0x1F78B,
  },
  [0x1F78C]={
@@ -232285,6 +232843,7 @@
   description="HAND WITH INDEX AND MIDDLE FINGERS CROSSED",
   direction="on",
   linebreak="eb",
+  synonyms={ "crossed fingers", "fingers crossed" },
   unicodeslot=0x1F91E,
  },
  [0x1F920]={
@@ -232317,6 +232876,7 @@
   description="ROLLING ON THE FLOOR LAUGHING",
   direction="on",
   linebreak="id",
+  synonyms={ "rofl" },
   unicodeslot=0x1F923,
  },
  [0x1F924]={
@@ -232517,6 +233077,7 @@
   description="FIRST PLACE MEDAL",
   direction="on",
   linebreak="id",
+  synonyms={ "gold medal" },
   unicodeslot=0x1F947,
  },
  [0x1F948]={
@@ -232525,6 +233086,7 @@
   description="SECOND PLACE MEDAL",
   direction="on",
   linebreak="id",
+  synonyms={ "silver medal" },
   unicodeslot=0x1F948,
  },
  [0x1F949]={
@@ -232533,6 +233095,7 @@
   description="THIRD PLACE MEDAL",
   direction="on",
   linebreak="id",
+  synonyms={ "bronze medal" },
   unicodeslot=0x1F949,
  },
  [0x1F94A]={
@@ -232621,6 +233184,7 @@
   description="SHALLOW PAN OF FOOD",
   direction="on",
   linebreak="id",
+  synonyms={ "paella" },
   unicodeslot=0x1F958,
  },
  [0x1F959]={
@@ -238380,4 +238944,9 @@
   linebreak="cm",
   unicodeslot=0xE007F,
  },
-}
+ [0xE0100]={
+  description="VARIATION SELECTOR-0x0011",
+  synonyms={ "vs17" },
+  unicodeslot=0xE0100,
+ },
+}
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -14,7 +14,7 @@
 local utfchar, utfbyte, utfvalues, ustring, utotable = utf.char, utf.byte, utf.values, utf.ustring, utf.totable
 local concat, unpack, tohash, insert = table.concat, table.unpack, table.tohash, table.insert
 local next, tonumber, type, rawget, rawset = next, tonumber, type, rawget, rawset
-local format, lower, gsub = string.format, string.lower, string.gsub
+local format, lower, gsub, find = string.format, string.lower, string.gsub, string.find
 local P, R, S, Cs = lpeg.P, lpeg.R, lpeg.S, lpeg.Cs
 
 if not characters then require("char-def") end
@@ -942,6 +942,7 @@
 
 local specialchars = allocate()  characters.specialchars = specialchars -- lazy table
 local descriptions = allocate()  characters.descriptions = descriptions -- lazy table
+local synonyms     = allocate()  characters.synonyms     = synonyms     -- lazy table
 
 setmetatableindex(specialchars, function(t,u)
     if u then
@@ -975,7 +976,9 @@
     for u, c in next, data do
         local d = c.description
         if d then
-            d = gsub(d," ","")
+            if find(d," ") then
+                d = gsub(d," ","")
+            end
             d = lower(d)
             t[d] = u
         end
@@ -987,6 +990,24 @@
     return d
 end)
 
+setmetatableindex(synonyms, function(t,k)
+    for u, c in next, data do
+        local s = c.synonyms
+        if s then
+            if find(s," ") then
+                s = gsub(s," ","")
+            end
+         -- s = lower(s) -- is already lowercase
+            t[s] = u
+        end
+    end
+    local s = rawget(t,k)
+    if not s then
+        t[s] = s
+    end
+    return s
+end)
+
 function characters.unicodechar(asked)
     local n = tonumber(asked)
     if n then

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv	2017-04-21 22:51:43 UTC (rev 43966)
@@ -11,7 +11,7 @@
 %C therefore copyrighted by \PRAGMA. See mreadme.pdf for
 %C details.
 
-\newcontextversion{2017.04.16 12:32}
+\newcontextversion{2017.04.20 21:31}
 
 %D This file is loaded at runtime, thereby providing an excellent place for
 %D hacks, patches, extensions and new features.

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/context.mkiv	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/context.mkiv	2017-04-21 22:51:43 UTC (rev 43966)
@@ -39,7 +39,7 @@
 %D up and the dependencies are more consistent.
 
 \edef\contextformat {\jobname}
-\edef\contextversion{2017.04.16 12:32}
+\edef\contextversion{2017.04.20 21:31}
 \edef\contextkind   {beta}
 
 %D For those who want to use this:

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -14,7 +14,7 @@
 
 local context, commands = context, commands
 
-local format, gmatch, match, find, lower, gsub, byte, topattern = string.format, string.gmatch, string.match, string.find, string.lower, string.gsub, string.byte, string.topattern
+local format, gmatch, match, find, lower, upper, gsub, byte, topattern = string.format, string.gmatch, string.match, string.find, string.lower, string.upper, string.gsub, string.byte, string.topattern
 local concat, serialize, sort, fastcopy, mergedtable = table.concat, table.serialize, table.sort, table.fastcopy, table.merged
 local sortedhash, sortedkeys, sequenced = table.sortedhash, table.sortedkeys, table.sequenced
 local settings_to_hash, hash_to_string = utilities.parsers.settings_to_hash, utilities.parsers.hash_to_string
@@ -48,6 +48,8 @@
 
 local implement           = interfaces.implement
 
+local chardata            = characters.data
+
 local fonts               = fonts
 local handlers            = fonts.handlers
 local otf                 = handlers.otf -- brrr
@@ -1629,7 +1631,6 @@
 
 local function nametoslot(name)
     local t = type(name)
-    local s = nil
     if t == "string" then
         local slot = unicodes[true][name]
         if slot then
@@ -1638,12 +1639,82 @@
         if not aglunicodes then
             aglunicodes = encodings.agl.unicodes
         end
-        slot = aglunicodes[name]
-        if characters[true][slot] then
+        local char = characters[true]
+        local slot = aglunicodes[name]
+        if char[slot] then
             return slot
+        end
+        -- not in font
+    elseif t == "number" then
+        if characters[true][name] then
+            return slot
         else
             -- not in font
         end
+    end
+end
+
+
+local found = { }
+
+local function descriptiontoslot(name)
+    local t = type(name)
+    if t == "string" then
+        -- slow
+        local list = sortedkeys(chardata)
+        local slot = found[name]
+        local char = characters[true]
+        if slot then
+            return char[slot] and slot or nil
+        end
+        local NAME = upper(name)
+        for i=1,#list do
+            slot = list[i]
+            local c = chardata[slot]
+            local d = c.description
+            if d == NAME then
+                found[name] = slot
+                return char[slot] and slot or nil
+            end
+        end
+        for i=1,#list do
+            slot = list[i]
+            local c = chardata[slot]
+            local s = c.synonyms
+            if s then
+                for i=1,#s do
+                    local si = s[i]
+                    if si == name then
+                        found[name] = si
+                        return char[slot] and slot or nil
+                    end
+                end
+            end
+        end
+        for i=1,#list do
+            slot = list[i]
+            local c = chardata[slot]
+            local d = c.description
+            if d and find(d,NAME) then
+                found[name] = slot
+                return char[slot] and slot or nil
+            end
+        end
+        for i=1,#list do
+            slot = list[i]
+            local c = chardata[slot]
+            local s = c.synonyms
+            if s then
+                for i=1,#s do
+                    local si = s[i]
+                    if find(s[i],name) then
+                        found[name] = si
+                        return char[slot] and slot or nil
+                    end
+                end
+            end
+        end
+        -- not in font
     elseif t == "number" then
         if characters[true][name] then
             return slot
@@ -1720,6 +1791,16 @@
                 local n = nametoslot(name)
                 return n and utfchar(n) or name
             end,
+        -- unicode description (synonym)
+        u = function(name)
+                local n = descriptiontoslot(name,false)
+                return n and utfchar(n) or name
+            end,
+        -- all
+        a = function(name)
+                local n = nametoslot(name) or descriptiontoslot(name)
+                return n and utfchar(n) or name
+            end,
         -- char
         c = function(name)
                 return name
@@ -1752,9 +1833,10 @@
         end
     end
 
-    helpers.nametoslot  = nametoslot
-    helpers.indextoslot = indextoslot
-    helpers.tochar      = tochar
+    helpers.nametoslot        = nametoslot
+    helpers.descriptiontoslot = descriptiontoslot
+    helpers.indextoslot       = indextoslot
+    helpers.tochar            = tochar
 
     -- interfaces:
 

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -2917,7 +2917,7 @@
         -- than 'palette'.
         setposition(f,tableoffset + layeroffset)
         for i=1,noflayers do
-            local slot    = readushort(f)
+            local slot  = readushort(f)
             local class = readushort(f)
             if class < 0xFFFF then
                 class = class + 1

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi	2017-04-21 22:51:43 UTC (rev 43966)
@@ -2528,6 +2528,8 @@
 %D \NC i \NC decimal index            \NC i:456    \NC \NR
 %D \NC n \NC name                     \NC n:eight  \NC \NR
 %D \NC c \NC name                     \NC c:x      \NC \NR
+%D \NC u \NC unicode descriptions     \NC u:dog    \NC \NR
+%D \NC a \NC all (also descriptions)  \NC a:rewind \NC \NR
 %D \stoptabulate
 %D
 %D This is an expandable command!

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/font-map.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/font-map.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/font-map.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -19,8 +19,10 @@
 
 local report_fonts  = logs.reporter("fonts","loading") -- not otf only
 
-local force_ligatures = false  directives.register("fonts.mapping.forceligatures",function(v) force_ligatures = v end)
+-- force_ligatures is true per 2017-04-20 so that these emoji's with bad names work too
 
+local force_ligatures = true  directives.register("fonts.mapping.forceligatures",function(v) force_ligatures = v end)
+
 local fonts         = fonts or { }
 local mappings      = fonts.mappings or { }
 fonts.mappings      = mappings
@@ -242,6 +244,8 @@
 mappings.tounicode16sequence = tounicode16sequence
 mappings.fromunicode16       = fromunicode16
 
+-- mozilla emoji has bad lig names: name = gsub(name,"(u[a-f0-9_]+)%-([a-f0-9_]+)","%1_%2")
+
 local ligseparator = P("_")
 local varseparator = P(".")
 local namesplitter = Ct(C((1 - ligseparator - varseparator)^1) * (ligseparator * C((1 - ligseparator - varseparator)^1))^0)
@@ -490,41 +494,50 @@
         checklookups(data,missing,nofmissing)
     end
 
-    -- todo: go lowercase
+    local unicoded  = 0
+    local collected = fonts.handlers.otf.readers.getcomponents(data) -- neglectable overhead
 
-    local collected = false
-    local unicoded  = 0
- -- for du, glyph in next, descriptions do
-    for i=1,#dlist do
-        local du    = dlist[i]
-        local glyph = descriptions[du]
-        if glyph.class == "ligature" and (force_ligatures or not glyph.unicode) then
-            if not collected then
-                collected = fonts.handlers.otf.readers.getcomponents(data)
-                if not collected then
-                    break
-                end
+    local function resolve(glyph,u)
+        local n = #u
+        for i=1,n do
+            if u[i] > private then
+                n = 0
+                break
             end
-            local u = collected[du] -- always tables
+        end
+        if n > 0 then
+            if n > 1 then
+                glyph.unicode = u
+            else
+                glyph.unicode = u[1]
+            end
+            unicoded = unicoded + 1
+        end
+    end
+
+    if not collected then
+        -- move on
+    elseif force_ligatures then
+        for i=1,#dlist do
+            local du = dlist[i]
+            local u  = collected[du] -- always tables
             if u then
-                local n = #u
-                for i=1,n do
-                    if u[i] > private then
-                        n = 0
-                        break
-                    end
+                resolve(descriptions[du],u)
+            end
+        end
+    else
+        for i=1,#dlist do
+            local du    = dlist[i]
+            local glyph = descriptions[du]
+            if glyph.class == "ligature" and not glyph.unicode then
+                local u = collected[du] -- always tables
+                if u then
+                     resolve(glyph,u)
                 end
-                if n > 0 then
-                    if n > 1 then
-                        glyph.unicode = u
-                    else
-                        glyph.unicode = u[1]
-                    end
-                    unicoded = unicoded + 1
-                end
             end
         end
     end
+
     if trace_mapping and unicoded > 0 then
         report_fonts("%n ligature tounicode mappings deduced from gsub ligature features",unicoded)
     end

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -141,10 +141,10 @@
                             -- are somewhat inefficient as each glyph gets the font set. It's a
                             -- side effect of the fact that a font is handled when a character gets
                             -- flushed.
-                         -- { "special", "pdf:page:q" },
-                         -- { "special", "pdf:raw:" .. b }
-                            -- This seems to be okay too:
-                            { "special", "pdf:direct:q " .. b },
+                            { "special", "pdf:page:q" },
+                            { "special", "pdf:raw:" .. b }
+                            -- This is not ok:
+                         -- { "special", "pdf:direct:q " .. b },
                         }
                         local n = #t
                         for i=1,s do
@@ -155,10 +155,10 @@
                                 n = n + 1 t[n] = { "right", -w }
                             end
                         end
-                     -- n = n + 1 t[n] = { "special", "pdf:page:" .. e }
-                     -- n = n + 1 t[n] = { "special", "pdf:raw:Q" }
-                        -- This seems to be okay too:
-                        n = n + 1 t[n] = { "special", "pdf:direct:" .. e .. " Q"}
+                        n = n + 1 t[n] = { "special", "pdf:page:" .. e }
+                        n = n + 1 t[n] = { "special", "pdf:raw:Q" }
+                        -- This is not ok:
+                     -- n = n + 1 t[n] = { "special", "pdf:direct:" .. e .. " Q"}
                         character.commands = t
                     end
                 end

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -904,7 +904,7 @@
                     else
                         contours2outlines_shaped(glyphs,shapes,specification.shapes)
                     end
-                elseif specification.loadshapes then
+                elseif specification.shapes then
                     contours2outlines_normal(glyphs,shapes)
                 end
             end

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/l-table.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/l-table.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/l-table.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -573,7 +573,12 @@
                 local v = t[i]
                 local tv = type(v)
                 if tv == "number" then
-                    tt[i] = v -- not needed tostring(v)
+                 -- tt[i] = v -- not needed tostring(v)
+                    if hexify then
+                        tt[i] = format("0x%X",v)
+                    else
+                        tt[i] = v -- not needed tostring(v)
+                    end
                 elseif tv == "string" then
                     tt[i] = format("%q",v) -- f_string(v)
                 elseif tv == "boolean" then
@@ -589,7 +594,12 @@
                 local v = t[i]
                 local tv = type(v)
                 if tv == "number" then
-                    tt[i+1] = v -- not needed tostring(v)
+                 -- tt[i+1] = v -- not needed tostring(v)
+                    if hexify then
+                        tt[i+1] = format("0x%X",v)
+                    else
+                        tt[i+1] = v -- not needed tostring(v)
+                    end
                 elseif tv == "string" then
                     tt[i+1] = format("%q",v) -- f_string(v)
                 elseif tv == "boolean" then

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -365,6 +365,11 @@
     return cd and cd.mathclass or default or "unknown"
 end
 
+local function utfmathlimop(chr)
+    local cd = somechar[chr]
+    return cd and cd.mathclass == "limop" or false
+end
+
 local function utfmathaccent(chr,default,asked1,asked2)
     local cd = somechar[chr]
     if not cd then
@@ -513,6 +518,7 @@
     actions   = { utfmathcommand, context },
     arguments = { "string", false, "'botaccent'","'under'" }
 }
+
 implement {
     name      = "utfmathcommandfiller",
     actions   = { utfmathfiller, context },
@@ -545,6 +551,12 @@
     arguments = "string",
 }
 
+implement {
+    name      = "doifelseutfmathlimop",
+    actions   = { utfmathlimop, ctx_doifelsesomething },
+    arguments = "string",
+}
+
 -- helpers
 --
 -- 1: step 1

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv	2017-04-21 22:51:43 UTC (rev 43966)
@@ -557,11 +557,13 @@
 \unexpanded\def\doifelseutfmathabove #1{\clf_doifelseutfmathabove {#1}}
 \unexpanded\def\doifelseutfmathbelow #1{\clf_doifelseutfmathbelow {#1}}
 \unexpanded\def\doifelseutfmathfiller#1{\clf_doifelseutfmathfiller{#1}}
+\unexpanded\def\doifelseutfmathlimop #1{\clf_doifelseutfmathlimop {#1}}
 
 \let\doifutfmathaccentelse \doifelseutfmathaccent
 \let\doifutfmathaboveelse  \doifelseutfmathabove
 \let\doifutfmathbelowelse  \doifelseutfmathbelow
 \let\doifutfmathfillerelse \doifelseutfmathfiller
+\let\doifutfmathlimopelse  \doifelseutfmathlimop
 
 %D Not used that much:
 

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -423,6 +423,7 @@
                 setlistcolor(list,c_zero_d)
             end
             setlisttransparency(list,c_text_d)
+            setcolor(rule,c_text_d)
             settransparency(rule,c_text_d)
             setshift(text,-5 * exheight)
             info = new_hlist(setlink(rule,text))

Modified: trunk/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.lua
===================================================================
--- trunk/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -187,6 +187,7 @@
     ["true"]        = "{\\mathrm true}",
     ["declare"]     = "{\\mathrm declare}",
     ["as"]          = "{\\mathrm as}",
+
 }
 
 -- we could use a metatable or when accessing fallback on the

Modified: trunk/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv
===================================================================
--- trunk/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv	2017-04-21 22:51:43 UTC (rev 43966)
@@ -204,7 +204,7 @@
 %D The second implementation expanded the whole math sequence
 %D into an internal \TEX\ representation. This is a rather clean
 %D and fast process. Filtering and testing takes place by
-%D redefining teh internal representation macros.
+%D redefining the internal representation macros.
 %D
 %D The third implementation may look a bit more messy in some
 %D respects. This is because in \TEX\ it's not that trivial to
@@ -1849,9 +1849,13 @@
                                                \let\mmlfrac\frac
 \xmlmapvalue {mml:l} {+}                      {\let\mmlfrac\sfrac}
 
+\xmlmapvalue {mml:d} {true}                   {\displaystyle}
+\xmlmapvalue {mml:d} {false}                  {\textstyle} % or whatever
+
 % todo: displaystyle=true/false (or whatever else shows up)
 
 \starttexdefinition setmmlmathstyle #1
+    \xmlval{mml:d}{\xmlatt{#1}{displaystyle}}\empty % was: \mmmr
     \xmlval{mml:s}{\xmlatt{#1}{mathvariant}}\empty % was: \mmmr
 \stoptexdefinition
 
@@ -2268,9 +2272,9 @@
 
 \def\mmlextensible#1{\ctxmodulemathml{extensible(\!!bs#1\!!es)}}
 
-\definemathtriplet   [\v!mathematics]  [mmlovertriplet]   % or will we use a special instance
-\definemathtriplet   [\v!mathematics]  [mmlundertriplet]  % or will we use a special instance
-\definemathtriplet   [\v!mathematics]  [mmldoubletriplet] % or will we use a special instance
+\definemathtriplet [\v!mathematics] [mmlovertriplet]   % or will we use a special instance
+\definemathtriplet [\v!mathematics] [mmlundertriplet]  % or will we use a special instance
+\definemathtriplet [\v!mathematics] [mmldoubletriplet] % or will we use a special instance
 
 % common to munder/mover/munderover : will become core helper (speed up too)
 
@@ -2319,9 +2323,15 @@
 
 \startxmlsetups mml:mover
     \edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text()
-    \doifelseutfmathfiller\mmlbasetoken \mmloverbasefiller \mmloveraccentchecker {#1}
+    \doifelseutfmathlimop\mmlbasetoken
+      {\mmllimopover{#1}}
+      {\doifelseutfmathfiller\mmlbasetoken \mmloverbasefiller \mmloveraccentchecker {#1}}
 \stopxmlsetups
 
+\starttexdefinition mmllimopover #1
+    \mmlbasetoken ^{\mmlfencedsecond{#1}}
+\stoptexdefinition
+
 % munder
 
 \starttexdefinition unexpanded mmlunderbelow #1
@@ -2351,9 +2361,15 @@
 
 \startxmlsetups mml:munder
     \edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text()
-    \doifelseutfmathfiller\mmlbasetoken \mmlunderbasefiller \mmlunderaccentchecker {#1}
+    \doifelseutfmathlimop\mmlbasetoken
+      {\mmllimopunder{#1}}
+      {\doifelseutfmathfiller\mmlbasetoken \mmlunderbasefiller \mmlunderaccentchecker {#1}}
 \stopxmlsetups
 
+\starttexdefinition mmllimopunder #1
+    \mmlbasetoken _{\mmlfencedsecond{#1}}
+\stoptexdefinition
+
 % munderover
 
 \starttexdefinition unexpanded mmlunderoveraccentcheckerUO #1
@@ -2412,11 +2428,18 @@
     \edef\mmlbasecommand{e\utfmathcommandfiller\mmlbasetoken}%
     \mmlexecuteifdefined\mmlbasecommand \relax {\mmlfencedthird{#1}} {\mmlfencedsecond{#1}}
 \stoptexdefinition
+
 \startxmlsetups mml:munderover
     \edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text()
-    \doifelseutfmathfiller\mmlbasetoken \mmlunderoverbasefiller \mmlunderoveraccentchecker {#1}
+    \doifelseutfmathlimop\mmlbasetoken
+      {\mmllimopunderover{#1}}
+      {\doifelseutfmathfiller\mmlbasetoken \mmlunderoverbasefiller \mmlunderoveraccentchecker {#1}}
 \stopxmlsetups
 
+\starttexdefinition mmllimopunderover #1
+    \mmlbasetoken ^{\mmlfencedthird{#1}}_{\mmlfencedsecond{#1}}
+\stoptexdefinition
+
 % tables (mml:mtable, mml:mtr, mml:mlabledtr, mml:mtd)
 
 \startxmlsetups mml:mtable % some more attributes need to be supported

Modified: trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-core.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-core.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-core.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -25,8 +25,8 @@
 local mt                  = getmetatable(io.stderr)
 local mt_lines            = mt.lines
 local saferoption         = status.safer_option
-local shellescape         = status.shell_escape     -- 0 (disabled) 1 (restricted) 2 (everything)
-local kpseused            = status.kpse_used        -- 0 1
+local shellescape         = status.shell_escape -- 0 (disabled) 1 (anything) 2 (restricted)
+local kpseused            = status.kpse_used    -- 0 1
 
 io.saved_open             = io_open  -- can be protected
 io.saved_popen            = io_popen -- can be protected
@@ -127,7 +127,7 @@
 
 end
 
-if saferoption == 1 or shellescape ~= 2 then
+if saferoption == 1 or shellescape ~= 1 then
 
     ffi = require('ffi')
     for k, v in next, ffi do
@@ -136,6 +136,7 @@
         end
     end
     ffi = nil
+
 end
 
 -- os.[execute|os.spawn|os.exec] already are shellescape aware)

Modified: trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua	2017-04-21 22:35:05 UTC (rev 43965)
+++ trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua	2017-04-21 22:51:43 UTC (rev 43966)
@@ -1,6 +1,6 @@
 -- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
 -- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date  : 04/16/17 12:32:21
+-- merge date  : 04/20/17 21:31:47
 
 do -- begin closure to overcome local limits and interference
 
@@ -1389,7 +1389,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i]=v 
+          if hexify then
+            tt[i]=format("0x%X",v)
+          else
+            tt[i]=v 
+          end
         elseif tv=="string" then
           tt[i]=format("%q",v) 
         elseif tv=="boolean" then
@@ -1405,7 +1409,11 @@
         local v=t[i]
         local tv=type(v)
         if tv=="number" then
-          tt[i+1]=v 
+          if hexify then
+            tt[i+1]=format("0x%X",v)
+          else
+            tt[i+1]=v 
+          end
         elseif tv=="string" then
           tt[i+1]=format("%q",v) 
         elseif tv=="boolean" then
@@ -7541,8 +7549,8 @@
 local sortedhash,sortedkeys=table.sortedhash,table.sortedkeys
 local trace_loading=false trackers.register("fonts.loading",function(v) trace_loading=v end)
 local trace_mapping=false trackers.register("fonts.mapping",function(v) trace_mapping=v end)
-local report_fonts=logs.reporter("fonts","loading") 
-local force_ligatures=false directives.register("fonts.mapping.forceligatures",function(v) force_ligatures=v end)
+local report_fonts=logs.reporter("fonts","loading")
+local force_ligatures=true directives.register("fonts.mapping.forceligatures",function(v) force_ligatures=v end)
 local fonts=fonts or {}
 local mappings=fonts.mappings or {}
 fonts.mappings=mappings
@@ -7825,35 +7833,43 @@
   if type(checklookups)=="function" then
     checklookups(data,missing,nofmissing)
   end
-  local collected=false
   local unicoded=0
-  for i=1,#dlist do
-    local du=dlist[i]
-    local glyph=descriptions[du]
-    if glyph.class=="ligature" and (force_ligatures or not glyph.unicode) then
-      if not collected then
-        collected=fonts.handlers.otf.readers.getcomponents(data)
-        if not collected then
-          break
-        end
+  local collected=fonts.handlers.otf.readers.getcomponents(data) 
+  local function resolve(glyph,u)
+    local n=#u
+    for i=1,n do
+      if u[i]>private then
+        n=0
+        break
       end
+    end
+    if n>0 then
+      if n>1 then
+        glyph.unicode=u
+      else
+        glyph.unicode=u[1]
+      end
+      unicoded=unicoded+1
+    end
+  end
+  if not collected then
+  elseif force_ligatures then
+    for i=1,#dlist do
+      local du=dlist[i]
       local u=collected[du] 
       if u then
-        local n=#u
-        for i=1,n do
-          if u[i]>private then
-            n=0
-            break
-          end
+        resolve(descriptions[du],u)
+      end
+    end
+  else
+    for i=1,#dlist do
+      local du=dlist[i]
+      local glyph=descriptions[du]
+      if glyph.class=="ligature" and not glyph.unicode then
+        local u=collected[du] 
+        if u then
+           resolve(glyph,u)
         end
-        if n>0 then
-          if n>1 then
-            glyph.unicode=u
-          else
-            glyph.unicode=u[1]
-          end
-          unicoded=unicoded+1
-        end
       end
     end
   end
@@ -12463,7 +12479,7 @@
           else
             contours2outlines_shaped(glyphs,shapes,specification.shapes)
           end
-        elseif specification.loadshapes then
+        elseif specification.shapes then
           contours2outlines_normal(glyphs,shapes)
         end
       end
@@ -26006,7 +26022,8 @@
             local w=character.width or 0
             local s=#colorlist
             local t={
-              { "special","pdf:direct:q "..b },
+              { "special","pdf:page:q" },
+              { "special","pdf:raw:"..b }
             }
             local n=#t
             for i=1,s do
@@ -26017,7 +26034,8 @@
                 n=n+1 t[n]={ "right",-w }
               end
             end
-            n=n+1 t[n]={ "special","pdf:direct:"..e.." Q"}
+            n=n+1 t[n]={ "special","pdf:page:"..e }
+            n=n+1 t[n]={ "special","pdf:raw:Q" }
             character.commands=t
           end
         end



More information about the tex-live-commits mailing list