From f8d48a62bd62df77685bd8581c1b8311ae26525f Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Tue, 27 Jun 2017 18:48:11 +0200
Subject: 2017-06-27 18:10:00

---
 doc/context/documents/general/qrcs/setup-cs.pdf    |  Bin 845008 -> 845006 bytes
 doc/context/documents/general/qrcs/setup-de.pdf    |  Bin 842918 -> 842914 bytes
 doc/context/documents/general/qrcs/setup-en.pdf    |  Bin 847755 -> 847753 bytes
 doc/context/documents/general/qrcs/setup-fr.pdf    |  Bin 841453 -> 841447 bytes
 doc/context/documents/general/qrcs/setup-it.pdf    |  Bin 843061 -> 843062 bytes
 doc/context/documents/general/qrcs/setup-nl.pdf    |  Bin 840025 -> 840036 bytes
 doc/context/documents/general/qrcs/setup-ro.pdf    |  Bin 840109 -> 840110 bytes
 scripts/context/lua/mtx-unicode.lua                |    6 +
 tex/context/base/mkii/cont-new.mkii                |    2 +-
 tex/context/base/mkii/context.mkii                 |    2 +-
 tex/context/base/mkiv/char-cjk.lua                 |   33 +-
 tex/context/base/mkiv/char-def.lua                 | 9774 ++++++++++++++++++--
 tex/context/base/mkiv/char-ini.lua                 |   27 +-
 tex/context/base/mkiv/cont-new.mkiv                |    2 +-
 tex/context/base/mkiv/context.mkiv                 |    2 +-
 tex/context/base/mkiv/font-ctx.lua                 |   20 +-
 tex/context/base/mkiv/font-ext.lua                 |  163 +-
 tex/context/base/mkiv/font-nod.lua                 |    2 +-
 tex/context/base/mkiv/font-otd.lua                 |   45 +-
 tex/context/base/mkiv/font-otj.lua                 |  155 +-
 tex/context/base/mkiv/font-ots.lua                 |   45 +-
 tex/context/base/mkiv/font-ott.lua                 |  531 +-
 tex/context/base/mkiv/font-pre.mkiv                |   43 +-
 tex/context/base/mkiv/font-sol.lua                 |    3 +-
 tex/context/base/mkiv/font-tra.mkiv                |    5 +-
 tex/context/base/mkiv/lang-wrd.lua                 |   64 +-
 tex/context/base/mkiv/math-tag.lua                 |    3 +-
 tex/context/base/mkiv/node-ltp.lua                 |   23 +-
 tex/context/base/mkiv/node-scn.lua                 |    7 +-
 tex/context/base/mkiv/node-syn.lua                 |    5 +-
 tex/context/base/mkiv/scrn-wid.mkvi                |   10 +-
 tex/context/base/mkiv/sort-lan.lua                 |    4 +-
 tex/context/base/mkiv/status-files.pdf             |  Bin 25726 -> 25711 bytes
 tex/context/base/mkiv/status-lua.pdf               |  Bin 424956 -> 425160 bytes
 tex/context/base/mkiv/task-ini.lua                 |    5 +-
 tex/context/base/mkiv/trac-vis.lua                 |    4 +-
 tex/context/base/mkiv/typo-cap.lua                 |    6 +-
 tex/context/base/mkiv/typo-krn.lua                 |   17 +-
 tex/context/interface/mkiv/i-context.pdf           |  Bin 847755 -> 847753 bytes
 tex/context/interface/mkiv/i-readme.pdf            |  Bin 60775 -> 60775 bytes
 tex/context/modules/common/s-abr-01.tex            |    5 +
 tex/context/modules/mkiv/s-fnt-20.mkiv             |    1 +
 tex/generic/context/luatex/luatex-basics-nod.lua   |   19 +-
 tex/generic/context/luatex/luatex-fonts-merged.lua |  198 +-
 44 files changed, 9736 insertions(+), 1495 deletions(-)

diff --git a/doc/context/documents/general/qrcs/setup-cs.pdf b/doc/context/documents/general/qrcs/setup-cs.pdf
index d77253717..26bd709f0 100644
Binary files a/doc/context/documents/general/qrcs/setup-cs.pdf and b/doc/context/documents/general/qrcs/setup-cs.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-de.pdf b/doc/context/documents/general/qrcs/setup-de.pdf
index 36a082b75..1586651ba 100644
Binary files a/doc/context/documents/general/qrcs/setup-de.pdf and b/doc/context/documents/general/qrcs/setup-de.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-en.pdf b/doc/context/documents/general/qrcs/setup-en.pdf
index 7cb008805..0a55fc4cc 100644
Binary files a/doc/context/documents/general/qrcs/setup-en.pdf and b/doc/context/documents/general/qrcs/setup-en.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-fr.pdf b/doc/context/documents/general/qrcs/setup-fr.pdf
index 1e58cabed..f50507514 100644
Binary files a/doc/context/documents/general/qrcs/setup-fr.pdf and b/doc/context/documents/general/qrcs/setup-fr.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-it.pdf b/doc/context/documents/general/qrcs/setup-it.pdf
index 67318989e..0672bd1d9 100644
Binary files a/doc/context/documents/general/qrcs/setup-it.pdf and b/doc/context/documents/general/qrcs/setup-it.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-nl.pdf b/doc/context/documents/general/qrcs/setup-nl.pdf
index b129e2102..553886cf7 100644
Binary files a/doc/context/documents/general/qrcs/setup-nl.pdf and b/doc/context/documents/general/qrcs/setup-nl.pdf differ
diff --git a/doc/context/documents/general/qrcs/setup-ro.pdf b/doc/context/documents/general/qrcs/setup-ro.pdf
index a7e7373b4..d35228bf9 100644
Binary files a/doc/context/documents/general/qrcs/setup-ro.pdf and b/doc/context/documents/general/qrcs/setup-ro.pdf differ
diff --git a/scripts/context/lua/mtx-unicode.lua b/scripts/context/lua/mtx-unicode.lua
index 557e70b79..7d59bd1ca 100644
--- a/scripts/context/lua/mtx-unicode.lua
+++ b/scripts/context/lua/mtx-unicode.lua
@@ -85,6 +85,12 @@ local skipped = {
 for i=0x0FE00,0x0FE0F do skipped[i] = true end -- variant selector
 for i=0xE0100,0xE01EF do skipped[i] = true end -- variant selector extension
 
+-- This can be done:
+--
+--   for i=0x1B170,0x1B2FF do skipped[i] = true end -- nushu
+--
+-- but then also adapt char-cjk.lua bottom part!
+
 function scripts.unicode.update()
     local unicodedata          = texttables.unicodedata
     local bidimirroring        = texttables.bidimirroring
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 5b47731d3..90be64d47 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
 %C therefore copyrighted by \PRAGMA. See mreadme.pdf for
 %C details.
 
-\newcontextversion{2017.06.21 23:03}
+\newcontextversion{2017.06.27 18:05}
 
 %D This file is loaded at runtime, thereby providing an
 %D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index a09531282..8b6845f1a 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
 %D your styles an modules.
 
 \edef\contextformat {\jobname}
-\edef\contextversion{2017.06.21 23:03}
+\edef\contextversion{2017.06.27 18:05}
 
 %D For those who want to use this:
 
diff --git a/tex/context/base/mkiv/char-cjk.lua b/tex/context/base/mkiv/char-cjk.lua
index 3db90386e..ac41fa882 100644
--- a/tex/context/base/mkiv/char-cjk.lua
+++ b/tex/context/base/mkiv/char-cjk.lua
@@ -1282,11 +1282,40 @@ local cjk_ideograph_extension_b_range = {
     extender = cjk_ideograph_extension_b_extender,
 }
 
+-- Nushu (when we skip them in mtx-unicode)
+
+-- local nushu_metatable = {
+--     __index = {
+--         category    = "lo",
+--         cjkwd       = "w",
+--         description = "<NUSHU CHARACTER>",
+--         direction   = "l",
+--         linebreak   = "id",
+--     }
+-- }
+--
+-- local nushu_extender = function(k)
+--     local t = {
+--      -- shcode      = shcode,
+--         unicodeslot = k,
+--         variants    = variants[k],
+--         description = formatters["NUSHU CHARACTER-%05X"](k)
+--     }
+--     setmetatable(t,nushu_metatable)
+--     return t
+-- end
+--
+-- local nushu_range = {
+--     name     = "nushu character",
+--     first    = 0x1B170,
+--     last     = 0x1B2FF,
+--     extender = nushu_extender,
+-- }
+
 -- Ranges
 
 insert(ranges, hangul_syllable_range)
 insert(ranges, cjk_ideograph_range)
 insert(ranges, cjk_ideograph_extension_a_range)
 insert(ranges, cjk_ideograph_extension_b_range)
-
--- Japanese
+------(ranges, nushu_range)
diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua
index 023515a8d..13fe01320 100644
--- a/tex/context/base/mkiv/char-def.lua
+++ b/tex/context/base/mkiv/char-def.lua
@@ -20000,6 +20000,94 @@ characters.data={
   linebreak="al",
   unicodeslot=0x85E,
  },
+ [0x860]={
+  arabic="d",
+  category="lo",
+  description="SYRIAC LETTER MALAYALAM NGA",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x860,
+ },
+ [0x861]={
+  arabic="u",
+  category="lo",
+  description="SYRIAC LETTER MALAYALAM JA",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x861,
+ },
+ [0x862]={
+  arabic="d",
+  category="lo",
+  description="SYRIAC LETTER MALAYALAM NYA",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x862,
+ },
+ [0x863]={
+  arabic="d",
+  category="lo",
+  description="SYRIAC LETTER MALAYALAM TTA",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x863,
+ },
+ [0x864]={
+  arabic="d",
+  category="lo",
+  description="SYRIAC LETTER MALAYALAM NNA",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x864,
+ },
+ [0x865]={
+  arabic="d",
+  category="lo",
+  description="SYRIAC LETTER MALAYALAM NNNA",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x865,
+ },
+ [0x866]={
+  arabic="u",
+  category="lo",
+  description="SYRIAC LETTER MALAYALAM BHA",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x866,
+ },
+ [0x867]={
+  arabic="r",
+  category="lo",
+  description="SYRIAC LETTER MALAYALAM RA",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x867,
+ },
+ [0x868]={
+  arabic="d",
+  category="lo",
+  description="SYRIAC LETTER MALAYALAM LLA",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x868,
+ },
+ [0x869]={
+  arabic="r",
+  category="lo",
+  description="SYRIAC LETTER MALAYALAM LLLA",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x869,
+ },
+ [0x86A]={
+  arabic="r",
+  category="lo",
+  description="SYRIAC LETTER MALAYALAM SSA",
+  direction="al",
+  linebreak="al",
+  unicodeslot=0x86A,
+ },
  [0x8A0]={
   arabic="d",
   category="lo",
@@ -22356,6 +22444,20 @@ characters.data={
   linebreak="pr",
   unicodeslot=0x9FB,
  },
+ [0x9FC]={
+  category="lo",
+  description="BENGALI LETTER VEDIC ANUSVARA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x9FC,
+ },
+ [0x9FD]={
+  category="po",
+  description="BENGALI ABBREVIATION SIGN",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x9FD,
+ },
  [0xA01]={
   category="mn",
   description="GURMUKHI SIGN ADAK BINDI",
@@ -23665,6 +23767,48 @@ characters.data={
   linebreak="al",
   unicodeslot=0xAF9,
  },
+ [0xAFA]={
+  category="mn",
+  description="GUJARATI SIGN SUKUN",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0xAFA,
+ },
+ [0xAFB]={
+  category="mn",
+  description="GUJARATI SIGN SHADDA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0xAFB,
+ },
+ [0xAFC]={
+  category="mn",
+  description="GUJARATI SIGN MADDAH",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0xAFC,
+ },
+ [0xAFD]={
+  category="mn",
+  description="GUJARATI SIGN THREE-DOT NUKTA ABOVE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0xAFD,
+ },
+ [0xAFE]={
+  category="mn",
+  description="GUJARATI SIGN CIRCLE NUKTA ABOVE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0xAFE,
+ },
+ [0xAFF]={
+  category="mn",
+  description="GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0xAFF,
+ },
  [0xB01]={
   category="mn",
   description="ORIYA SIGN CANDRABINDU",
@@ -26120,6 +26264,13 @@ characters.data={
   linebreak="al",
   unicodeslot=0xCF2,
  },
+ [0xD00]={
+  category="mn",
+  description="MALAYALAM SIGN COMBINING ANUSVARA ABOVE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0xD00,
+ },
  [0xD01]={
   category="mn",
   description="MALAYALAM SIGN CANDRABINDU",
@@ -26505,6 +26656,22 @@ characters.data={
   linebreak="al",
   unicodeslot=0xD3A,
  },
+ [0xD3B]={
+  category="mn",
+  combining=0x9,
+  description="MALAYALAM SIGN VERTICAL BAR VIRAMA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0xD3B,
+ },
+ [0xD3C]={
+  category="mn",
+  combining=0x9,
+  description="MALAYALAM SIGN CIRCULAR VIRAMA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0xD3C,
+ },
  [0xD3D]={
   category="lo",
   description="MALAYALAM SIGN AVAGRAHA",
@@ -51598,6 +51765,13 @@ characters.data={
   linebreak="al",
   unicodeslot=0x1CF6,
  },
+ [0x1CF7]={
+  category="mc",
+  description="VEDIC SIGN ATIKRAMA",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x1CF7,
+ },
  [0x1CF8]={
   category="mn",
   combining=0xE6,
@@ -53527,6 +53701,38 @@ characters.data={
   linebreak="cm",
   unicodeslot=0x1DF5,
  },
+ [0x1DF6]={
+  category="mn",
+  combining=0xE8,
+  description="COMBINING KAVYKA ABOVE RIGHT",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1DF6,
+ },
+ [0x1DF7]={
+  category="mn",
+  combining=0xE4,
+  description="COMBINING KAVYKA ABOVE LEFT",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1DF7,
+ },
+ [0x1DF8]={
+  category="mn",
+  combining=0xE4,
+  description="COMBINING DOT ABOVE LEFT",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1DF8,
+ },
+ [0x1DF9]={
+  category="mn",
+  combining=0xDC,
+  description="COMBINING WIDE INVERTED BRIDGE BELOW",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x1DF9,
+ },
  [0x1DFB]={
   category="mn",
   combining=0xE6,
@@ -60623,6 +60829,13 @@ characters.data={
   synonyms={ "georgian currency" },
   unicodeslot=0x20BE,
  },
+ [0x20BF]={
+  category="sc",
+  description="BITCOIN SIGN",
+  direction="et",
+  linebreak="pr",
+  unicodeslot=0x20BF,
+ },
  [0x20D0]={
   category="mn",
   combining=0xE6,
@@ -68296,6 +68509,13 @@ characters.data={
   linebreak="al",
   unicodeslot=0x23FE,
  },
+ [0x23FF]={
+  category="so",
+  description="OBSERVER EYE SYMBOL",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x23FF,
+ },
  [0x2400]={
   category="so",
   description="SYMBOL FOR NULL",
@@ -83659,6 +83879,13 @@ characters.data={
   linebreak="al",
   unicodeslot=0x2BD1,
  },
+ [0x2BD2]={
+  category="so",
+  description="GROUP MARK",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x2BD2,
+ },
  [0x2BEC]={
   category="so",
   description="LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS",
@@ -87705,6 +87932,41 @@ characters.data={
   linebreak="ba",
   unicodeslot=0x2E44,
  },
+ [0x2E45]={
+  category="po",
+  description="INVERTED LOW KAVYKA",
+  direction="on",
+  linebreak="ba",
+  unicodeslot=0x2E45,
+ },
+ [0x2E46]={
+  category="po",
+  description="INVERTED LOW KAVYKA WITH KAVYKA ABOVE",
+  direction="on",
+  linebreak="ba",
+  unicodeslot=0x2E46,
+ },
+ [0x2E47]={
+  category="po",
+  description="LOW KAVYKA",
+  direction="on",
+  linebreak="ba",
+  unicodeslot=0x2E47,
+ },
+ [0x2E48]={
+  category="po",
+  description="LOW KAVYKA WITH DOT",
+  direction="on",
+  linebreak="ba",
+  unicodeslot=0x2E48,
+ },
+ [0x2E49]={
+  category="po",
+  description="DOUBLE STACKED COMMA",
+  direction="on",
+  linebreak="ba",
+  unicodeslot=0x2E49,
+ },
  [0x2E80]={
   category="so",
   cjkwd="w",
@@ -93905,6 +94167,14 @@ characters.data={
   linebreak="id",
   unicodeslot=0x312D,
  },
+ [0x312E]={
+  category="lo",
+  cjkwd="w",
+  description="BOPOMOFO LETTER O WITH DOT ABOVE",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x312E,
+ },
  [0x3131]={
   adobename="kiyeokkorean",
   category="lo",
@@ -140676,6 +140946,27 @@ characters.data={
   linebreak="al",
   unicodeslot=0x10323,
  },
+ [0x1032D]={
+  category="lo",
+  description="OLD ITALIC LETTER YE",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1032D,
+ },
+ [0x1032E]={
+  category="lo",
+  description="OLD ITALIC LETTER NORTHERN TSE",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1032E,
+ },
+ [0x1032F]={
+  category="lo",
+  description="OLD ITALIC LETTER SOUTHERN TSE",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x1032F,
+ },
  [0x10330]={
   category="lo",
   description="GOTHIC LETTER AHSA",
@@ -161728,6 +162019,1073 @@ characters.data={
   linebreak="al",
   unicodeslot=0x118FF,
  },
+ [0x11A00]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER A",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A00,
+ },
+ [0x11A01]={
+  category="mn",
+  description="ZANABAZAR SQUARE VOWEL SIGN I",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A01,
+ },
+ [0x11A02]={
+  category="mn",
+  description="ZANABAZAR SQUARE VOWEL SIGN UE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A02,
+ },
+ [0x11A03]={
+  category="mn",
+  description="ZANABAZAR SQUARE VOWEL SIGN U",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A03,
+ },
+ [0x11A04]={
+  category="mn",
+  description="ZANABAZAR SQUARE VOWEL SIGN E",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A04,
+ },
+ [0x11A05]={
+  category="mn",
+  description="ZANABAZAR SQUARE VOWEL SIGN OE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A05,
+ },
+ [0x11A06]={
+  category="mn",
+  description="ZANABAZAR SQUARE VOWEL SIGN O",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A06,
+ },
+ [0x11A07]={
+  category="mc",
+  description="ZANABAZAR SQUARE VOWEL SIGN AI",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11A07,
+ },
+ [0x11A08]={
+  category="mc",
+  description="ZANABAZAR SQUARE VOWEL SIGN AU",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11A08,
+ },
+ [0x11A09]={
+  category="mn",
+  description="ZANABAZAR SQUARE VOWEL SIGN REVERSED I",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A09,
+ },
+ [0x11A0A]={
+  category="mn",
+  description="ZANABAZAR SQUARE VOWEL LENGTH MARK",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A0A,
+ },
+ [0x11A0B]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER KA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A0B,
+ },
+ [0x11A0C]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER KHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A0C,
+ },
+ [0x11A0D]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER GA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A0D,
+ },
+ [0x11A0E]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER GHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A0E,
+ },
+ [0x11A0F]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER NGA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A0F,
+ },
+ [0x11A10]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER CA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A10,
+ },
+ [0x11A11]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER CHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A11,
+ },
+ [0x11A12]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER JA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A12,
+ },
+ [0x11A13]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER NYA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A13,
+ },
+ [0x11A14]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER TTA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A14,
+ },
+ [0x11A15]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER TTHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A15,
+ },
+ [0x11A16]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER DDA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A16,
+ },
+ [0x11A17]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER DDHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A17,
+ },
+ [0x11A18]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER NNA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A18,
+ },
+ [0x11A19]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER TA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A19,
+ },
+ [0x11A1A]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER THA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A1A,
+ },
+ [0x11A1B]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER DA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A1B,
+ },
+ [0x11A1C]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER DHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A1C,
+ },
+ [0x11A1D]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER NA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A1D,
+ },
+ [0x11A1E]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER PA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A1E,
+ },
+ [0x11A1F]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER PHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A1F,
+ },
+ [0x11A20]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER BA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A20,
+ },
+ [0x11A21]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER BHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A21,
+ },
+ [0x11A22]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER MA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A22,
+ },
+ [0x11A23]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER TSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A23,
+ },
+ [0x11A24]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER TSHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A24,
+ },
+ [0x11A25]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER DZA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A25,
+ },
+ [0x11A26]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER DZHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A26,
+ },
+ [0x11A27]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER ZHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A27,
+ },
+ [0x11A28]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER ZA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A28,
+ },
+ [0x11A29]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER -A",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A29,
+ },
+ [0x11A2A]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER YA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A2A,
+ },
+ [0x11A2B]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER RA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A2B,
+ },
+ [0x11A2C]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER LA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A2C,
+ },
+ [0x11A2D]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER VA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A2D,
+ },
+ [0x11A2E]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER SHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A2E,
+ },
+ [0x11A2F]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER SSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A2F,
+ },
+ [0x11A30]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER SA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A30,
+ },
+ [0x11A31]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER HA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A31,
+ },
+ [0x11A32]={
+  category="lo",
+  description="ZANABAZAR SQUARE LETTER KSSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A32,
+ },
+ [0x11A33]={
+  category="mn",
+  description="ZANABAZAR SQUARE FINAL CONSONANT MARK",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A33,
+ },
+ [0x11A34]={
+  category="mn",
+  combining=0x9,
+  description="ZANABAZAR SQUARE SIGN VIRAMA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A34,
+ },
+ [0x11A35]={
+  category="mn",
+  description="ZANABAZAR SQUARE SIGN CANDRABINDU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A35,
+ },
+ [0x11A36]={
+  category="mn",
+  description="ZANABAZAR SQUARE SIGN CANDRABINDU WITH ORNAMENT",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A36,
+ },
+ [0x11A37]={
+  category="mn",
+  description="ZANABAZAR SQUARE SIGN CANDRA WITH ORNAMENT",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A37,
+ },
+ [0x11A38]={
+  category="mn",
+  description="ZANABAZAR SQUARE SIGN ANUSVARA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A38,
+ },
+ [0x11A39]={
+  category="mc",
+  description="ZANABAZAR SQUARE SIGN VISARGA",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11A39,
+ },
+ [0x11A3A]={
+  category="lo",
+  description="ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A3A,
+ },
+ [0x11A3B]={
+  category="mn",
+  description="ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A3B,
+ },
+ [0x11A3C]={
+  category="mn",
+  description="ZANABAZAR SQUARE CLUSTER-FINAL LETTER RA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A3C,
+ },
+ [0x11A3D]={
+  category="mn",
+  description="ZANABAZAR SQUARE CLUSTER-FINAL LETTER LA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A3D,
+ },
+ [0x11A3E]={
+  category="mn",
+  description="ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A3E,
+ },
+ [0x11A3F]={
+  category="po",
+  description="ZANABAZAR SQUARE INITIAL HEAD MARK",
+  direction="l",
+  linebreak="bb",
+  unicodeslot=0x11A3F,
+ },
+ [0x11A40]={
+  category="po",
+  description="ZANABAZAR SQUARE CLOSING HEAD MARK",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A40,
+ },
+ [0x11A41]={
+  category="po",
+  description="ZANABAZAR SQUARE MARK TSHEG",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11A41,
+ },
+ [0x11A42]={
+  category="po",
+  description="ZANABAZAR SQUARE MARK SHAD",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11A42,
+ },
+ [0x11A43]={
+  category="po",
+  description="ZANABAZAR SQUARE MARK DOUBLE SHAD",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11A43,
+ },
+ [0x11A44]={
+  category="po",
+  description="ZANABAZAR SQUARE MARK LONG TSHEG",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11A44,
+ },
+ [0x11A45]={
+  category="po",
+  description="ZANABAZAR SQUARE INITIAL DOUBLE-LINED HEAD MARK",
+  direction="l",
+  linebreak="bb",
+  unicodeslot=0x11A45,
+ },
+ [0x11A46]={
+  category="po",
+  description="ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A46,
+ },
+ [0x11A47]={
+  category="mn",
+  combining=0x9,
+  description="ZANABAZAR SQUARE SUBJOINER",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A47,
+ },
+ [0x11A50]={
+  category="lo",
+  description="SOYOMBO LETTER A",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A50,
+ },
+ [0x11A51]={
+  category="mn",
+  description="SOYOMBO VOWEL SIGN I",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A51,
+ },
+ [0x11A52]={
+  category="mn",
+  description="SOYOMBO VOWEL SIGN UE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A52,
+ },
+ [0x11A53]={
+  category="mn",
+  description="SOYOMBO VOWEL SIGN U",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A53,
+ },
+ [0x11A54]={
+  category="mn",
+  description="SOYOMBO VOWEL SIGN E",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A54,
+ },
+ [0x11A55]={
+  category="mn",
+  description="SOYOMBO VOWEL SIGN O",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A55,
+ },
+ [0x11A56]={
+  category="mn",
+  description="SOYOMBO VOWEL SIGN OE",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A56,
+ },
+ [0x11A57]={
+  category="mc",
+  description="SOYOMBO VOWEL SIGN AI",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11A57,
+ },
+ [0x11A58]={
+  category="mc",
+  description="SOYOMBO VOWEL SIGN AU",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11A58,
+ },
+ [0x11A59]={
+  category="mn",
+  description="SOYOMBO VOWEL SIGN VOCALIC R",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A59,
+ },
+ [0x11A5A]={
+  category="mn",
+  description="SOYOMBO VOWEL SIGN VOCALIC L",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A5A,
+ },
+ [0x11A5B]={
+  category="mn",
+  description="SOYOMBO VOWEL LENGTH MARK",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A5B,
+ },
+ [0x11A5C]={
+  category="lo",
+  description="SOYOMBO LETTER KA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A5C,
+ },
+ [0x11A5D]={
+  category="lo",
+  description="SOYOMBO LETTER KHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A5D,
+ },
+ [0x11A5E]={
+  category="lo",
+  description="SOYOMBO LETTER GA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A5E,
+ },
+ [0x11A5F]={
+  category="lo",
+  description="SOYOMBO LETTER GHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A5F,
+ },
+ [0x11A60]={
+  category="lo",
+  description="SOYOMBO LETTER NGA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A60,
+ },
+ [0x11A61]={
+  category="lo",
+  description="SOYOMBO LETTER CA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A61,
+ },
+ [0x11A62]={
+  category="lo",
+  description="SOYOMBO LETTER CHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A62,
+ },
+ [0x11A63]={
+  category="lo",
+  description="SOYOMBO LETTER JA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A63,
+ },
+ [0x11A64]={
+  category="lo",
+  description="SOYOMBO LETTER JHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A64,
+ },
+ [0x11A65]={
+  category="lo",
+  description="SOYOMBO LETTER NYA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A65,
+ },
+ [0x11A66]={
+  category="lo",
+  description="SOYOMBO LETTER TTA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A66,
+ },
+ [0x11A67]={
+  category="lo",
+  description="SOYOMBO LETTER TTHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A67,
+ },
+ [0x11A68]={
+  category="lo",
+  description="SOYOMBO LETTER DDA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A68,
+ },
+ [0x11A69]={
+  category="lo",
+  description="SOYOMBO LETTER DDHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A69,
+ },
+ [0x11A6A]={
+  category="lo",
+  description="SOYOMBO LETTER NNA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A6A,
+ },
+ [0x11A6B]={
+  category="lo",
+  description="SOYOMBO LETTER TA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A6B,
+ },
+ [0x11A6C]={
+  category="lo",
+  description="SOYOMBO LETTER THA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A6C,
+ },
+ [0x11A6D]={
+  category="lo",
+  description="SOYOMBO LETTER DA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A6D,
+ },
+ [0x11A6E]={
+  category="lo",
+  description="SOYOMBO LETTER DHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A6E,
+ },
+ [0x11A6F]={
+  category="lo",
+  description="SOYOMBO LETTER NA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A6F,
+ },
+ [0x11A70]={
+  category="lo",
+  description="SOYOMBO LETTER PA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A70,
+ },
+ [0x11A71]={
+  category="lo",
+  description="SOYOMBO LETTER PHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A71,
+ },
+ [0x11A72]={
+  category="lo",
+  description="SOYOMBO LETTER BA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A72,
+ },
+ [0x11A73]={
+  category="lo",
+  description="SOYOMBO LETTER BHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A73,
+ },
+ [0x11A74]={
+  category="lo",
+  description="SOYOMBO LETTER MA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A74,
+ },
+ [0x11A75]={
+  category="lo",
+  description="SOYOMBO LETTER TSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A75,
+ },
+ [0x11A76]={
+  category="lo",
+  description="SOYOMBO LETTER TSHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A76,
+ },
+ [0x11A77]={
+  category="lo",
+  description="SOYOMBO LETTER DZA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A77,
+ },
+ [0x11A78]={
+  category="lo",
+  description="SOYOMBO LETTER ZHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A78,
+ },
+ [0x11A79]={
+  category="lo",
+  description="SOYOMBO LETTER ZA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A79,
+ },
+ [0x11A7A]={
+  category="lo",
+  description="SOYOMBO LETTER -A",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A7A,
+ },
+ [0x11A7B]={
+  category="lo",
+  description="SOYOMBO LETTER YA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A7B,
+ },
+ [0x11A7C]={
+  category="lo",
+  description="SOYOMBO LETTER RA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A7C,
+ },
+ [0x11A7D]={
+  category="lo",
+  description="SOYOMBO LETTER LA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A7D,
+ },
+ [0x11A7E]={
+  category="lo",
+  description="SOYOMBO LETTER VA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A7E,
+ },
+ [0x11A7F]={
+  category="lo",
+  description="SOYOMBO LETTER SHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A7F,
+ },
+ [0x11A80]={
+  category="lo",
+  description="SOYOMBO LETTER SSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A80,
+ },
+ [0x11A81]={
+  category="lo",
+  description="SOYOMBO LETTER SA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A81,
+ },
+ [0x11A82]={
+  category="lo",
+  description="SOYOMBO LETTER HA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A82,
+ },
+ [0x11A83]={
+  category="lo",
+  description="SOYOMBO LETTER KSSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A83,
+ },
+ [0x11A86]={
+  category="lo",
+  description="SOYOMBO CLUSTER-INITIAL LETTER RA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A86,
+ },
+ [0x11A87]={
+  category="lo",
+  description="SOYOMBO CLUSTER-INITIAL LETTER LA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A87,
+ },
+ [0x11A88]={
+  category="lo",
+  description="SOYOMBO CLUSTER-INITIAL LETTER SHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A88,
+ },
+ [0x11A89]={
+  category="lo",
+  description="SOYOMBO CLUSTER-INITIAL LETTER SA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11A89,
+ },
+ [0x11A8A]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN G",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A8A,
+ },
+ [0x11A8B]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN K",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A8B,
+ },
+ [0x11A8C]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN NG",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A8C,
+ },
+ [0x11A8D]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN D",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A8D,
+ },
+ [0x11A8E]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN N",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A8E,
+ },
+ [0x11A8F]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN B",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A8F,
+ },
+ [0x11A90]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN M",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A90,
+ },
+ [0x11A91]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN R",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A91,
+ },
+ [0x11A92]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN L",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A92,
+ },
+ [0x11A93]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN SH",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A93,
+ },
+ [0x11A94]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN S",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A94,
+ },
+ [0x11A95]={
+  category="mn",
+  description="SOYOMBO FINAL CONSONANT SIGN -A",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A95,
+ },
+ [0x11A96]={
+  category="mn",
+  description="SOYOMBO SIGN ANUSVARA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A96,
+ },
+ [0x11A97]={
+  category="mc",
+  description="SOYOMBO SIGN VISARGA",
+  direction="l",
+  linebreak="cm",
+  unicodeslot=0x11A97,
+ },
+ [0x11A98]={
+  category="mn",
+  description="SOYOMBO GEMINATION MARK",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A98,
+ },
+ [0x11A99]={
+  category="mn",
+  combining=0x9,
+  description="SOYOMBO SUBJOINER",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11A99,
+ },
+ [0x11A9A]={
+  category="po",
+  description="SOYOMBO MARK TSHEG",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11A9A,
+ },
+ [0x11A9B]={
+  category="po",
+  description="SOYOMBO MARK SHAD",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11A9B,
+ },
+ [0x11A9C]={
+  category="po",
+  description="SOYOMBO MARK DOUBLE SHAD",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11A9C,
+ },
+ [0x11A9E]={
+  category="po",
+  description="SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME",
+  direction="l",
+  linebreak="bb",
+  unicodeslot=0x11A9E,
+ },
+ [0x11A9F]={
+  category="po",
+  description="SOYOMBO HEAD MARK WITH MOON AND SUN AND FLAME",
+  direction="l",
+  linebreak="bb",
+  unicodeslot=0x11A9F,
+ },
+ [0x11AA0]={
+  category="po",
+  description="SOYOMBO HEAD MARK WITH MOON AND SUN",
+  direction="l",
+  linebreak="bb",
+  unicodeslot=0x11AA0,
+ },
+ [0x11AA1]={
+  category="po",
+  description="SOYOMBO TERMINAL MARK-1",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11AA1,
+ },
+ [0x11AA2]={
+  category="po",
+  description="SOYOMBO TERMINAL MARK-2",
+  direction="l",
+  linebreak="ba",
+  unicodeslot=0x11AA2,
+ },
  [0x11AC0]={
   category="lo",
   description="PAU CIN HAU LETTER PA",
@@ -163283,6 +164641,534 @@ characters.data={
   linebreak="cm",
   unicodeslot=0x11CB6,
  },
+ [0x11D00]={
+  category="lo",
+  description="MASARAM GONDI LETTER A",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D00,
+ },
+ [0x11D01]={
+  category="lo",
+  description="MASARAM GONDI LETTER AA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D01,
+ },
+ [0x11D02]={
+  category="lo",
+  description="MASARAM GONDI LETTER I",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D02,
+ },
+ [0x11D03]={
+  category="lo",
+  description="MASARAM GONDI LETTER II",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D03,
+ },
+ [0x11D04]={
+  category="lo",
+  description="MASARAM GONDI LETTER U",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D04,
+ },
+ [0x11D05]={
+  category="lo",
+  description="MASARAM GONDI LETTER UU",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D05,
+ },
+ [0x11D06]={
+  category="lo",
+  description="MASARAM GONDI LETTER E",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D06,
+ },
+ [0x11D08]={
+  category="lo",
+  description="MASARAM GONDI LETTER AI",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D08,
+ },
+ [0x11D09]={
+  category="lo",
+  description="MASARAM GONDI LETTER O",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D09,
+ },
+ [0x11D0B]={
+  category="lo",
+  description="MASARAM GONDI LETTER AU",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D0B,
+ },
+ [0x11D0C]={
+  category="lo",
+  description="MASARAM GONDI LETTER KA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D0C,
+ },
+ [0x11D0D]={
+  category="lo",
+  description="MASARAM GONDI LETTER KHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D0D,
+ },
+ [0x11D0E]={
+  category="lo",
+  description="MASARAM GONDI LETTER GA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D0E,
+ },
+ [0x11D0F]={
+  category="lo",
+  description="MASARAM GONDI LETTER GHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D0F,
+ },
+ [0x11D10]={
+  category="lo",
+  description="MASARAM GONDI LETTER NGA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D10,
+ },
+ [0x11D11]={
+  category="lo",
+  description="MASARAM GONDI LETTER CA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D11,
+ },
+ [0x11D12]={
+  category="lo",
+  description="MASARAM GONDI LETTER CHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D12,
+ },
+ [0x11D13]={
+  category="lo",
+  description="MASARAM GONDI LETTER JA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D13,
+ },
+ [0x11D14]={
+  category="lo",
+  description="MASARAM GONDI LETTER JHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D14,
+ },
+ [0x11D15]={
+  category="lo",
+  description="MASARAM GONDI LETTER NYA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D15,
+ },
+ [0x11D16]={
+  category="lo",
+  description="MASARAM GONDI LETTER TTA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D16,
+ },
+ [0x11D17]={
+  category="lo",
+  description="MASARAM GONDI LETTER TTHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D17,
+ },
+ [0x11D18]={
+  category="lo",
+  description="MASARAM GONDI LETTER DDA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D18,
+ },
+ [0x11D19]={
+  category="lo",
+  description="MASARAM GONDI LETTER DDHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D19,
+ },
+ [0x11D1A]={
+  category="lo",
+  description="MASARAM GONDI LETTER NNA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D1A,
+ },
+ [0x11D1B]={
+  category="lo",
+  description="MASARAM GONDI LETTER TA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D1B,
+ },
+ [0x11D1C]={
+  category="lo",
+  description="MASARAM GONDI LETTER THA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D1C,
+ },
+ [0x11D1D]={
+  category="lo",
+  description="MASARAM GONDI LETTER DA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D1D,
+ },
+ [0x11D1E]={
+  category="lo",
+  description="MASARAM GONDI LETTER DHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D1E,
+ },
+ [0x11D1F]={
+  category="lo",
+  description="MASARAM GONDI LETTER NA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D1F,
+ },
+ [0x11D20]={
+  category="lo",
+  description="MASARAM GONDI LETTER PA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D20,
+ },
+ [0x11D21]={
+  category="lo",
+  description="MASARAM GONDI LETTER PHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D21,
+ },
+ [0x11D22]={
+  category="lo",
+  description="MASARAM GONDI LETTER BA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D22,
+ },
+ [0x11D23]={
+  category="lo",
+  description="MASARAM GONDI LETTER BHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D23,
+ },
+ [0x11D24]={
+  category="lo",
+  description="MASARAM GONDI LETTER MA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D24,
+ },
+ [0x11D25]={
+  category="lo",
+  description="MASARAM GONDI LETTER YA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D25,
+ },
+ [0x11D26]={
+  category="lo",
+  description="MASARAM GONDI LETTER RA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D26,
+ },
+ [0x11D27]={
+  category="lo",
+  description="MASARAM GONDI LETTER LA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D27,
+ },
+ [0x11D28]={
+  category="lo",
+  description="MASARAM GONDI LETTER VA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D28,
+ },
+ [0x11D29]={
+  category="lo",
+  description="MASARAM GONDI LETTER SHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D29,
+ },
+ [0x11D2A]={
+  category="lo",
+  description="MASARAM GONDI LETTER SSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D2A,
+ },
+ [0x11D2B]={
+  category="lo",
+  description="MASARAM GONDI LETTER SA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D2B,
+ },
+ [0x11D2C]={
+  category="lo",
+  description="MASARAM GONDI LETTER HA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D2C,
+ },
+ [0x11D2D]={
+  category="lo",
+  description="MASARAM GONDI LETTER LLA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D2D,
+ },
+ [0x11D2E]={
+  category="lo",
+  description="MASARAM GONDI LETTER KSSA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D2E,
+ },
+ [0x11D2F]={
+  category="lo",
+  description="MASARAM GONDI LETTER JNYA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D2F,
+ },
+ [0x11D30]={
+  category="lo",
+  description="MASARAM GONDI LETTER TRA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D30,
+ },
+ [0x11D31]={
+  category="mn",
+  description="MASARAM GONDI VOWEL SIGN AA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D31,
+ },
+ [0x11D32]={
+  category="mn",
+  description="MASARAM GONDI VOWEL SIGN I",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D32,
+ },
+ [0x11D33]={
+  category="mn",
+  description="MASARAM GONDI VOWEL SIGN II",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D33,
+ },
+ [0x11D34]={
+  category="mn",
+  description="MASARAM GONDI VOWEL SIGN U",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D34,
+ },
+ [0x11D35]={
+  category="mn",
+  description="MASARAM GONDI VOWEL SIGN UU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D35,
+ },
+ [0x11D36]={
+  category="mn",
+  description="MASARAM GONDI VOWEL SIGN VOCALIC R",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D36,
+ },
+ [0x11D3A]={
+  category="mn",
+  description="MASARAM GONDI VOWEL SIGN E",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D3A,
+ },
+ [0x11D3C]={
+  category="mn",
+  description="MASARAM GONDI VOWEL SIGN AI",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D3C,
+ },
+ [0x11D3D]={
+  category="mn",
+  description="MASARAM GONDI VOWEL SIGN O",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D3D,
+ },
+ [0x11D3F]={
+  category="mn",
+  description="MASARAM GONDI VOWEL SIGN AU",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D3F,
+ },
+ [0x11D40]={
+  category="mn",
+  description="MASARAM GONDI SIGN ANUSVARA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D40,
+ },
+ [0x11D41]={
+  category="mn",
+  description="MASARAM GONDI SIGN VISARGA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D41,
+ },
+ [0x11D42]={
+  category="mn",
+  combining=0x7,
+  description="MASARAM GONDI SIGN NUKTA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D42,
+ },
+ [0x11D43]={
+  category="mn",
+  description="MASARAM GONDI SIGN CANDRA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D43,
+ },
+ [0x11D44]={
+  category="mn",
+  combining=0x9,
+  description="MASARAM GONDI SIGN HALANTA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D44,
+ },
+ [0x11D45]={
+  category="mn",
+  combining=0x9,
+  description="MASARAM GONDI VIRAMA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D45,
+ },
+ [0x11D46]={
+  category="lo",
+  description="MASARAM GONDI REPHA",
+  direction="l",
+  linebreak="al",
+  unicodeslot=0x11D46,
+ },
+ [0x11D47]={
+  category="mn",
+  description="MASARAM GONDI RA-KARA",
+  direction="nsm",
+  linebreak="cm",
+  unicodeslot=0x11D47,
+ },
+ [0x11D50]={
+  category="nd",
+  description="MASARAM GONDI DIGIT ZERO",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11D50,
+ },
+ [0x11D51]={
+  category="nd",
+  description="MASARAM GONDI DIGIT ONE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11D51,
+ },
+ [0x11D52]={
+  category="nd",
+  description="MASARAM GONDI DIGIT TWO",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11D52,
+ },
+ [0x11D53]={
+  category="nd",
+  description="MASARAM GONDI DIGIT THREE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11D53,
+ },
+ [0x11D54]={
+  category="nd",
+  description="MASARAM GONDI DIGIT FOUR",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11D54,
+ },
+ [0x11D55]={
+  category="nd",
+  description="MASARAM GONDI DIGIT FIVE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11D55,
+ },
+ [0x11D56]={
+  category="nd",
+  description="MASARAM GONDI DIGIT SIX",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11D56,
+ },
+ [0x11D57]={
+  category="nd",
+  description="MASARAM GONDI DIGIT SEVEN",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11D57,
+ },
+ [0x11D58]={
+  category="nd",
+  description="MASARAM GONDI DIGIT EIGHT",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11D58,
+ },
+ [0x11D59]={
+  category="nd",
+  description="MASARAM GONDI DIGIT NINE",
+  direction="l",
+  linebreak="nu",
+  unicodeslot=0x11D59,
+ },
  [0x12000]={
   category="lo",
   description="CUNEIFORM SIGN A",
@@ -189877,6 +191763,14 @@ characters.data={
   linebreak="ns",
   unicodeslot=0x16FE0,
  },
+ [0x16FE1]={
+  category="lm",
+  cjkwd="w",
+  description="NUSHU ITERATION MARK",
+  direction="l",
+  linebreak="ns",
+  unicodeslot=0x16FE1,
+ },
  [0x18800]={
   category="lo",
   cjkwd="w",
@@ -193504,2434 +195398,7882 @@ characters.data={
  [0x189C5]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-454",
+  description="TANGUT COMPONENT-454",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C5,
+ },
+ [0x189C6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-455",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C6,
+ },
+ [0x189C7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-456",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C7,
+ },
+ [0x189C8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-457",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C8,
+ },
+ [0x189C9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-458",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189C9,
+ },
+ [0x189CA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-459",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CA,
+ },
+ [0x189CB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-460",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CB,
+ },
+ [0x189CC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-461",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CC,
+ },
+ [0x189CD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-462",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CD,
+ },
+ [0x189CE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-463",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CE,
+ },
+ [0x189CF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-464",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189CF,
+ },
+ [0x189D0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-465",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D0,
+ },
+ [0x189D1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-466",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D1,
+ },
+ [0x189D2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-467",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D2,
+ },
+ [0x189D3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-468",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D3,
+ },
+ [0x189D4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-469",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D4,
+ },
+ [0x189D5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-470",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D5,
+ },
+ [0x189D6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-471",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D6,
+ },
+ [0x189D7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-472",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D7,
+ },
+ [0x189D8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-473",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D8,
+ },
+ [0x189D9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-474",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189D9,
+ },
+ [0x189DA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-475",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DA,
+ },
+ [0x189DB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-476",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DB,
+ },
+ [0x189DC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-477",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DC,
+ },
+ [0x189DD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-478",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DD,
+ },
+ [0x189DE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-479",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DE,
+ },
+ [0x189DF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-480",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189DF,
+ },
+ [0x189E0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-481",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E0,
+ },
+ [0x189E1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-482",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E1,
+ },
+ [0x189E2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-483",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E2,
+ },
+ [0x189E3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-484",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E3,
+ },
+ [0x189E4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-485",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E4,
+ },
+ [0x189E5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-486",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E5,
+ },
+ [0x189E6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-487",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E6,
+ },
+ [0x189E7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-488",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E7,
+ },
+ [0x189E8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-489",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E8,
+ },
+ [0x189E9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-490",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189E9,
+ },
+ [0x189EA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-491",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189EA,
+ },
+ [0x189EB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-492",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189EB,
+ },
+ [0x189EC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-493",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189EC,
+ },
+ [0x189ED]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-494",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189ED,
+ },
+ [0x189EE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-495",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189EE,
+ },
+ [0x189EF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-496",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189EF,
+ },
+ [0x189F0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-497",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F0,
+ },
+ [0x189F1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-498",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F1,
+ },
+ [0x189F2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-499",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F2,
+ },
+ [0x189F3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-500",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F3,
+ },
+ [0x189F4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-501",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F4,
+ },
+ [0x189F5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-502",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F5,
+ },
+ [0x189F6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-503",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F6,
+ },
+ [0x189F7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-504",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F7,
+ },
+ [0x189F8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-505",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F8,
+ },
+ [0x189F9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-506",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189F9,
+ },
+ [0x189FA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-507",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FA,
+ },
+ [0x189FB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-508",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FB,
+ },
+ [0x189FC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-509",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FC,
+ },
+ [0x189FD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-510",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FD,
+ },
+ [0x189FE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-511",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FE,
+ },
+ [0x189FF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-512",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x189FF,
+ },
+ [0x18A00]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-513",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A00,
+ },
+ [0x18A01]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-514",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A01,
+ },
+ [0x18A02]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-515",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A02,
+ },
+ [0x18A03]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-516",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A03,
+ },
+ [0x18A04]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-517",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A04,
+ },
+ [0x18A05]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-518",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A05,
+ },
+ [0x18A06]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-519",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A06,
+ },
+ [0x18A07]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-520",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A07,
+ },
+ [0x18A08]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-521",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A08,
+ },
+ [0x18A09]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-522",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A09,
+ },
+ [0x18A0A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-523",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0A,
+ },
+ [0x18A0B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-524",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0B,
+ },
+ [0x18A0C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-525",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0C,
+ },
+ [0x18A0D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-526",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0D,
+ },
+ [0x18A0E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-527",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0E,
+ },
+ [0x18A0F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-528",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A0F,
+ },
+ [0x18A10]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-529",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A10,
+ },
+ [0x18A11]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-530",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A11,
+ },
+ [0x18A12]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-531",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A12,
+ },
+ [0x18A13]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-532",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A13,
+ },
+ [0x18A14]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-533",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A14,
+ },
+ [0x18A15]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-534",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A15,
+ },
+ [0x18A16]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-535",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A16,
+ },
+ [0x18A17]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-536",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A17,
+ },
+ [0x18A18]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-537",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A18,
+ },
+ [0x18A19]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-538",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A19,
+ },
+ [0x18A1A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-539",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1A,
+ },
+ [0x18A1B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-540",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1B,
+ },
+ [0x18A1C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-541",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1C,
+ },
+ [0x18A1D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-542",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1D,
+ },
+ [0x18A1E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-543",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1E,
+ },
+ [0x18A1F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-544",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A1F,
+ },
+ [0x18A20]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-545",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A20,
+ },
+ [0x18A21]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-546",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A21,
+ },
+ [0x18A22]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-547",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A22,
+ },
+ [0x18A23]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-548",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A23,
+ },
+ [0x18A24]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-549",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A24,
+ },
+ [0x18A25]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-550",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A25,
+ },
+ [0x18A26]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-551",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A26,
+ },
+ [0x18A27]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-552",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A27,
+ },
+ [0x18A28]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-553",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A28,
+ },
+ [0x18A29]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-554",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A29,
+ },
+ [0x18A2A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-555",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2A,
+ },
+ [0x18A2B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-556",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2B,
+ },
+ [0x18A2C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-557",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2C,
+ },
+ [0x18A2D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-558",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2D,
+ },
+ [0x18A2E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-559",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2E,
+ },
+ [0x18A2F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-560",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A2F,
+ },
+ [0x18A30]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-561",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A30,
+ },
+ [0x18A31]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-562",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A31,
+ },
+ [0x18A32]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-563",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A32,
+ },
+ [0x18A33]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-564",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A33,
+ },
+ [0x18A34]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-565",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A34,
+ },
+ [0x18A35]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-566",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A35,
+ },
+ [0x18A36]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-567",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A36,
+ },
+ [0x18A37]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-568",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A37,
+ },
+ [0x18A38]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-569",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A38,
+ },
+ [0x18A39]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-570",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A39,
+ },
+ [0x18A3A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-571",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3A,
+ },
+ [0x18A3B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-572",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3B,
+ },
+ [0x18A3C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-573",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3C,
+ },
+ [0x18A3D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-574",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3D,
+ },
+ [0x18A3E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-575",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3E,
+ },
+ [0x18A3F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-576",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A3F,
+ },
+ [0x18A40]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-577",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A40,
+ },
+ [0x18A41]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-578",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A41,
+ },
+ [0x18A42]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-579",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A42,
+ },
+ [0x18A43]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-580",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A43,
+ },
+ [0x18A44]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-581",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A44,
+ },
+ [0x18A45]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-582",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A45,
+ },
+ [0x18A46]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-583",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A46,
+ },
+ [0x18A47]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-584",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A47,
+ },
+ [0x18A48]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-585",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A48,
+ },
+ [0x18A49]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-586",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A49,
+ },
+ [0x18A4A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-587",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4A,
+ },
+ [0x18A4B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-588",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4B,
+ },
+ [0x18A4C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-589",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4C,
+ },
+ [0x18A4D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-590",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4D,
+ },
+ [0x18A4E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-591",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4E,
+ },
+ [0x18A4F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-592",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A4F,
+ },
+ [0x18A50]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-593",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A50,
+ },
+ [0x18A51]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-594",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A51,
+ },
+ [0x18A52]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-595",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A52,
+ },
+ [0x18A53]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-596",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A53,
+ },
+ [0x18A54]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-597",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A54,
+ },
+ [0x18A55]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-598",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A55,
+ },
+ [0x18A56]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-599",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A56,
+ },
+ [0x18A57]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-600",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A57,
+ },
+ [0x18A58]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-601",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A58,
+ },
+ [0x18A59]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-602",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A59,
+ },
+ [0x18A5A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-603",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5A,
+ },
+ [0x18A5B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-604",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5B,
+ },
+ [0x18A5C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-605",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5C,
+ },
+ [0x18A5D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-606",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5D,
+ },
+ [0x18A5E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-607",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5E,
+ },
+ [0x18A5F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-608",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A5F,
+ },
+ [0x18A60]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-609",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A60,
+ },
+ [0x18A61]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-610",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A61,
+ },
+ [0x18A62]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-611",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A62,
+ },
+ [0x18A63]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-612",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A63,
+ },
+ [0x18A64]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-613",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A64,
+ },
+ [0x18A65]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-614",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A65,
+ },
+ [0x18A66]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-615",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A66,
+ },
+ [0x18A67]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-616",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A67,
+ },
+ [0x18A68]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-617",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A68,
+ },
+ [0x18A69]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-618",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A69,
+ },
+ [0x18A6A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-619",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6A,
+ },
+ [0x18A6B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-620",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6B,
+ },
+ [0x18A6C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-621",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6C,
+ },
+ [0x18A6D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-622",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6D,
+ },
+ [0x18A6E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-623",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6E,
+ },
+ [0x18A6F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-624",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A6F,
+ },
+ [0x18A70]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-625",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A70,
+ },
+ [0x18A71]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-626",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A71,
+ },
+ [0x18A72]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-627",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A72,
+ },
+ [0x18A73]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-628",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A73,
+ },
+ [0x18A74]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-629",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A74,
+ },
+ [0x18A75]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-630",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A75,
+ },
+ [0x18A76]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-631",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A76,
+ },
+ [0x18A77]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-632",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A77,
+ },
+ [0x18A78]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-633",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A78,
+ },
+ [0x18A79]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-634",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A79,
+ },
+ [0x18A7A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-635",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7A,
+ },
+ [0x18A7B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-636",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7B,
+ },
+ [0x18A7C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-637",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7C,
+ },
+ [0x18A7D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-638",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7D,
+ },
+ [0x18A7E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-639",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7E,
+ },
+ [0x18A7F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-640",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A7F,
+ },
+ [0x18A80]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-641",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A80,
+ },
+ [0x18A81]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-642",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A81,
+ },
+ [0x18A82]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-643",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A82,
+ },
+ [0x18A83]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-644",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A83,
+ },
+ [0x18A84]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-645",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A84,
+ },
+ [0x18A85]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-646",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A85,
+ },
+ [0x18A86]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-647",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A86,
+ },
+ [0x18A87]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-648",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A87,
+ },
+ [0x18A88]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-649",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A88,
+ },
+ [0x18A89]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-650",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A89,
+ },
+ [0x18A8A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-651",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8A,
+ },
+ [0x18A8B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-652",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8B,
+ },
+ [0x18A8C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-653",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8C,
+ },
+ [0x18A8D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-654",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8D,
+ },
+ [0x18A8E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-655",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8E,
+ },
+ [0x18A8F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-656",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A8F,
+ },
+ [0x18A90]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-657",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A90,
+ },
+ [0x18A91]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-658",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A91,
+ },
+ [0x18A92]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-659",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A92,
+ },
+ [0x18A93]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-660",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A93,
+ },
+ [0x18A94]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-661",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A94,
+ },
+ [0x18A95]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-662",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A95,
+ },
+ [0x18A96]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-663",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A96,
+ },
+ [0x18A97]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-664",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A97,
+ },
+ [0x18A98]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-665",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A98,
+ },
+ [0x18A99]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-666",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A99,
+ },
+ [0x18A9A]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-667",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9A,
+ },
+ [0x18A9B]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-668",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9B,
+ },
+ [0x18A9C]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-669",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9C,
+ },
+ [0x18A9D]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-670",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9D,
+ },
+ [0x18A9E]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-671",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9E,
+ },
+ [0x18A9F]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-672",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18A9F,
+ },
+ [0x18AA0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-673",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA0,
+ },
+ [0x18AA1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-674",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA1,
+ },
+ [0x18AA2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-675",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA2,
+ },
+ [0x18AA3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-676",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA3,
+ },
+ [0x18AA4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-677",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA4,
+ },
+ [0x18AA5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-678",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA5,
+ },
+ [0x18AA6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-679",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA6,
+ },
+ [0x18AA7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-680",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA7,
+ },
+ [0x18AA8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-681",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA8,
+ },
+ [0x18AA9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-682",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AA9,
+ },
+ [0x18AAA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-683",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAA,
+ },
+ [0x18AAB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-684",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAB,
+ },
+ [0x18AAC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-685",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAC,
+ },
+ [0x18AAD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-686",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAD,
+ },
+ [0x18AAE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-687",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAE,
+ },
+ [0x18AAF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-688",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AAF,
+ },
+ [0x18AB0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-689",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB0,
+ },
+ [0x18AB1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-690",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB1,
+ },
+ [0x18AB2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-691",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB2,
+ },
+ [0x18AB3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-692",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB3,
+ },
+ [0x18AB4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-693",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB4,
+ },
+ [0x18AB5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-694",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB5,
+ },
+ [0x18AB6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-695",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB6,
+ },
+ [0x18AB7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-696",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB7,
+ },
+ [0x18AB8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-697",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB8,
+ },
+ [0x18AB9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-698",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AB9,
+ },
+ [0x18ABA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-699",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABA,
+ },
+ [0x18ABB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-700",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABB,
+ },
+ [0x18ABC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-701",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABC,
+ },
+ [0x18ABD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-702",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABD,
+ },
+ [0x18ABE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-703",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABE,
+ },
+ [0x18ABF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-704",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ABF,
+ },
+ [0x18AC0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-705",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC0,
+ },
+ [0x18AC1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-706",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC1,
+ },
+ [0x18AC2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-707",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC2,
+ },
+ [0x18AC3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-708",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC3,
+ },
+ [0x18AC4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-709",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC4,
+ },
+ [0x18AC5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-710",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC5,
+ },
+ [0x18AC6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-711",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC6,
+ },
+ [0x18AC7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-712",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC7,
+ },
+ [0x18AC8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-713",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC8,
+ },
+ [0x18AC9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-714",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AC9,
+ },
+ [0x18ACA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-715",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACA,
+ },
+ [0x18ACB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-716",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACB,
+ },
+ [0x18ACC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-717",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACC,
+ },
+ [0x18ACD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-718",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACD,
+ },
+ [0x18ACE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-719",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACE,
+ },
+ [0x18ACF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-720",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ACF,
+ },
+ [0x18AD0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-721",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD0,
+ },
+ [0x18AD1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-722",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD1,
+ },
+ [0x18AD2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-723",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD2,
+ },
+ [0x18AD3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-724",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD3,
+ },
+ [0x18AD4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-725",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD4,
+ },
+ [0x18AD5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-726",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD5,
+ },
+ [0x18AD6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-727",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD6,
+ },
+ [0x18AD7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-728",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD7,
+ },
+ [0x18AD8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-729",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD8,
+ },
+ [0x18AD9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-730",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AD9,
+ },
+ [0x18ADA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-731",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADA,
+ },
+ [0x18ADB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-732",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADB,
+ },
+ [0x18ADC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-733",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADC,
+ },
+ [0x18ADD]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-734",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADD,
+ },
+ [0x18ADE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-735",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADE,
+ },
+ [0x18ADF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-736",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18ADF,
+ },
+ [0x18AE0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-737",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE0,
+ },
+ [0x18AE1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-738",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE1,
+ },
+ [0x18AE2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-739",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE2,
+ },
+ [0x18AE3]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-740",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE3,
+ },
+ [0x18AE4]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-741",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE4,
+ },
+ [0x18AE5]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-742",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE5,
+ },
+ [0x18AE6]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-743",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE6,
+ },
+ [0x18AE7]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-744",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE7,
+ },
+ [0x18AE8]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-745",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE8,
+ },
+ [0x18AE9]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-746",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AE9,
+ },
+ [0x18AEA]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-747",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AEA,
+ },
+ [0x18AEB]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-748",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AEB,
+ },
+ [0x18AEC]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-749",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AEC,
+ },
+ [0x18AED]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-750",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AED,
+ },
+ [0x18AEE]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-751",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AEE,
+ },
+ [0x18AEF]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-752",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AEF,
+ },
+ [0x18AF0]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-753",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AF0,
+ },
+ [0x18AF1]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-754",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AF1,
+ },
+ [0x18AF2]={
+  category="lo",
+  cjkwd="w",
+  description="TANGUT COMPONENT-755",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x18AF2,
+ },
+ [0x1B000]={
+  category="lo",
+  cjkwd="w",
+  description="KATAKANA LETTER ARCHAIC E",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B000,
+ },
+ [0x1B001]={
+  category="lo",
+  cjkwd="w",
+  description="HIRAGANA LETTER ARCHAIC YE",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B001,
+ },
+ [0x1B002]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER A-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B002,
+ },
+ [0x1B003]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER A-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B003,
+ },
+ [0x1B004]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER A-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B004,
+ },
+ [0x1B005]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER A-WO",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B005,
+ },
+ [0x1B006]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER I-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B006,
+ },
+ [0x1B007]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER I-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B007,
+ },
+ [0x1B008]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER I-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B008,
+ },
+ [0x1B009]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER I-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B009,
+ },
+ [0x1B00A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER U-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B00A,
+ },
+ [0x1B00B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER U-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B00B,
+ },
+ [0x1B00C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER U-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B00C,
+ },
+ [0x1B00D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER U-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B00D,
+ },
+ [0x1B00E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER U-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B00E,
+ },
+ [0x1B00F]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER E-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B00F,
+ },
+ [0x1B010]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER E-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B010,
+ },
+ [0x1B011]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER E-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B011,
+ },
+ [0x1B012]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER E-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B012,
+ },
+ [0x1B013]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER E-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B013,
+ },
+ [0x1B014]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER O-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B014,
+ },
+ [0x1B015]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER O-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B015,
+ },
+ [0x1B016]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER O-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B016,
+ },
+ [0x1B017]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B017,
+ },
+ [0x1B018]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B018,
+ },
+ [0x1B019]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B019,
+ },
+ [0x1B01A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B01A,
+ },
+ [0x1B01B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B01B,
+ },
+ [0x1B01C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B01C,
+ },
+ [0x1B01D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B01D,
+ },
+ [0x1B01E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-8",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B01E,
+ },
+ [0x1B01F]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-9",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B01F,
+ },
+ [0x1B020]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-10",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B020,
+ },
+ [0x1B021]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-11",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B021,
+ },
+ [0x1B022]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KA-KE",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B022,
+ },
+ [0x1B023]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KI-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B023,
+ },
+ [0x1B024]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KI-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B024,
+ },
+ [0x1B025]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KI-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B025,
+ },
+ [0x1B026]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KI-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B026,
+ },
+ [0x1B027]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KI-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B027,
+ },
+ [0x1B028]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KI-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B028,
+ },
+ [0x1B029]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KI-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B029,
+ },
+ [0x1B02A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KI-8",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B02A,
+ },
+ [0x1B02B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KU-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B02B,
+ },
+ [0x1B02C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KU-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B02C,
+ },
+ [0x1B02D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KU-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B02D,
+ },
+ [0x1B02E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KU-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B02E,
+ },
+ [0x1B02F]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KU-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B02F,
+ },
+ [0x1B030]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KU-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B030,
+ },
+ [0x1B031]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KU-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B031,
+ },
+ [0x1B032]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KE-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B032,
+ },
+ [0x1B033]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KE-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B033,
+ },
+ [0x1B034]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KE-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B034,
+ },
+ [0x1B035]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KE-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B035,
+ },
+ [0x1B036]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KE-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B036,
+ },
+ [0x1B037]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KE-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B037,
+ },
+ [0x1B038]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KO-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B038,
+ },
+ [0x1B039]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KO-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B039,
+ },
+ [0x1B03A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KO-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B03A,
+ },
+ [0x1B03B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER KO-KI",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B03B,
+ },
+ [0x1B03C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SA-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B03C,
+ },
+ [0x1B03D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SA-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B03D,
+ },
+ [0x1B03E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SA-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B03E,
+ },
+ [0x1B03F]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SA-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B03F,
+ },
+ [0x1B040]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SA-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B040,
+ },
+ [0x1B041]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SA-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B041,
+ },
+ [0x1B042]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SA-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B042,
+ },
+ [0x1B043]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SA-8",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B043,
+ },
+ [0x1B044]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SI-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B044,
+ },
+ [0x1B045]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SI-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B045,
+ },
+ [0x1B046]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SI-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B046,
+ },
+ [0x1B047]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SI-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B047,
+ },
+ [0x1B048]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SI-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B048,
+ },
+ [0x1B049]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SI-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B049,
+ },
+ [0x1B04A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SU-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B04A,
+ },
+ [0x1B04B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SU-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B04B,
+ },
+ [0x1B04C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SU-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B04C,
+ },
+ [0x1B04D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SU-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B04D,
+ },
+ [0x1B04E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SU-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B04E,
+ },
+ [0x1B04F]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SU-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B04F,
+ },
+ [0x1B050]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SU-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B050,
+ },
+ [0x1B051]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SU-8",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B051,
+ },
+ [0x1B052]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SE-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B052,
+ },
+ [0x1B053]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SE-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B053,
+ },
+ [0x1B054]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SE-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B054,
+ },
+ [0x1B055]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SE-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B055,
+ },
+ [0x1B056]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SE-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B056,
+ },
+ [0x1B057]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SO-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B057,
+ },
+ [0x1B058]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SO-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B058,
+ },
+ [0x1B059]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SO-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B059,
+ },
+ [0x1B05A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SO-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B05A,
+ },
+ [0x1B05B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SO-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B05B,
+ },
+ [0x1B05C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SO-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B05C,
+ },
+ [0x1B05D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER SO-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B05D,
+ },
+ [0x1B05E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TA-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B05E,
+ },
+ [0x1B05F]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TA-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B05F,
+ },
+ [0x1B060]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TA-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B060,
+ },
+ [0x1B061]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TA-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B061,
+ },
+ [0x1B062]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TI-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B062,
+ },
+ [0x1B063]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TI-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B063,
+ },
+ [0x1B064]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TI-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B064,
+ },
+ [0x1B065]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TI-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B065,
+ },
+ [0x1B066]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TI-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B066,
+ },
+ [0x1B067]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TI-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B067,
+ },
+ [0x1B068]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TI-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B068,
+ },
+ [0x1B069]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TU-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B069,
+ },
+ [0x1B06A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TU-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B06A,
+ },
+ [0x1B06B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TU-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B06B,
+ },
+ [0x1B06C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TU-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B06C,
+ },
+ [0x1B06D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TU-TO",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B06D,
+ },
+ [0x1B06E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TE-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B06E,
+ },
+ [0x1B06F]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TE-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B06F,
+ },
+ [0x1B070]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TE-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B070,
+ },
+ [0x1B071]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TE-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B071,
+ },
+ [0x1B072]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TE-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B072,
+ },
+ [0x1B073]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TE-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B073,
+ },
+ [0x1B074]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TE-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B074,
+ },
+ [0x1B075]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TE-8",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B075,
+ },
+ [0x1B076]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TE-9",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B076,
+ },
+ [0x1B077]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TO-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B077,
+ },
+ [0x1B078]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TO-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B078,
+ },
+ [0x1B079]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TO-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B079,
+ },
+ [0x1B07A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TO-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B07A,
+ },
+ [0x1B07B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TO-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B07B,
+ },
+ [0x1B07C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TO-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B07C,
+ },
+ [0x1B07D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER TO-RA",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B07D,
+ },
+ [0x1B07E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NA-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B07E,
+ },
+ [0x1B07F]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NA-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B07F,
+ },
+ [0x1B080]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NA-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B080,
+ },
+ [0x1B081]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NA-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B081,
+ },
+ [0x1B082]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NA-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B082,
+ },
+ [0x1B083]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NA-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B083,
+ },
+ [0x1B084]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NA-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B084,
+ },
+ [0x1B085]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NA-8",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B085,
+ },
+ [0x1B086]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NA-9",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B086,
+ },
+ [0x1B087]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NI-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B087,
+ },
+ [0x1B088]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NI-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B088,
+ },
+ [0x1B089]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NI-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B089,
+ },
+ [0x1B08A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NI-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B08A,
+ },
+ [0x1B08B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NI-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B08B,
+ },
+ [0x1B08C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NI-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B08C,
+ },
+ [0x1B08D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NI-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B08D,
+ },
+ [0x1B08E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NI-TE",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B08E,
+ },
+ [0x1B08F]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NU-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B08F,
+ },
+ [0x1B090]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NU-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B090,
+ },
+ [0x1B091]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NU-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B091,
+ },
+ [0x1B092]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NE-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B092,
+ },
+ [0x1B093]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NE-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B093,
+ },
+ [0x1B094]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NE-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B094,
+ },
+ [0x1B095]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NE-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B095,
+ },
+ [0x1B096]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NE-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B096,
+ },
+ [0x1B097]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NE-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B097,
+ },
+ [0x1B098]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NE-KO",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B098,
+ },
+ [0x1B099]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NO-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B099,
+ },
+ [0x1B09A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NO-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B09A,
+ },
+ [0x1B09B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NO-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B09B,
+ },
+ [0x1B09C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NO-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B09C,
+ },
+ [0x1B09D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER NO-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B09D,
+ },
+ [0x1B09E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HA-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B09E,
+ },
+ [0x1B09F]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HA-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B09F,
+ },
+ [0x1B0A0]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HA-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0A0,
+ },
+ [0x1B0A1]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HA-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0A1,
+ },
+ [0x1B0A2]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HA-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0A2,
+ },
+ [0x1B0A3]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HA-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0A3,
+ },
+ [0x1B0A4]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HA-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0A4,
+ },
+ [0x1B0A5]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HA-8",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0A5,
+ },
+ [0x1B0A6]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HA-9",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0A6,
+ },
+ [0x1B0A7]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HA-10",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0A7,
+ },
+ [0x1B0A8]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HA-11",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0A8,
+ },
+ [0x1B0A9]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HI-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0A9,
+ },
+ [0x1B0AA]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HI-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0AA,
+ },
+ [0x1B0AB]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HI-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0AB,
+ },
+ [0x1B0AC]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HI-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0AC,
+ },
+ [0x1B0AD]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HI-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0AD,
+ },
+ [0x1B0AE]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HI-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0AE,
+ },
+ [0x1B0AF]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HI-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0AF,
+ },
+ [0x1B0B0]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HU-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0B0,
+ },
+ [0x1B0B1]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HU-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0B1,
+ },
+ [0x1B0B2]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HU-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0B2,
+ },
+ [0x1B0B3]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HE-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0B3,
+ },
+ [0x1B0B4]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HE-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0B4,
+ },
+ [0x1B0B5]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HE-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0B5,
+ },
+ [0x1B0B6]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HE-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0B6,
+ },
+ [0x1B0B7]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HE-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0B7,
+ },
+ [0x1B0B8]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HE-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0B8,
+ },
+ [0x1B0B9]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HE-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0B9,
+ },
+ [0x1B0BA]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HO-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0BA,
+ },
+ [0x1B0BB]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HO-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0BB,
+ },
+ [0x1B0BC]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HO-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0BC,
+ },
+ [0x1B0BD]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HO-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0BD,
+ },
+ [0x1B0BE]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HO-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0BE,
+ },
+ [0x1B0BF]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HO-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0BF,
+ },
+ [0x1B0C0]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HO-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0C0,
+ },
+ [0x1B0C1]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER HO-8",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0C1,
+ },
+ [0x1B0C2]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MA-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0C2,
+ },
+ [0x1B0C3]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MA-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0C3,
+ },
+ [0x1B0C4]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MA-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0C4,
+ },
+ [0x1B0C5]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MA-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0C5,
+ },
+ [0x1B0C6]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MA-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0C6,
+ },
+ [0x1B0C7]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MA-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0C7,
+ },
+ [0x1B0C8]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MA-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0C8,
+ },
+ [0x1B0C9]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MI-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0C9,
+ },
+ [0x1B0CA]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MI-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0CA,
+ },
+ [0x1B0CB]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MI-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0CB,
+ },
+ [0x1B0CC]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MI-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0CC,
+ },
+ [0x1B0CD]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MI-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0CD,
+ },
+ [0x1B0CE]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MI-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0CE,
+ },
+ [0x1B0CF]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MI-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0CF,
+ },
+ [0x1B0D0]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MU-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0D0,
+ },
+ [0x1B0D1]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MU-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0D1,
+ },
+ [0x1B0D2]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MU-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0D2,
+ },
+ [0x1B0D3]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MU-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0D3,
+ },
+ [0x1B0D4]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER ME-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0D4,
+ },
+ [0x1B0D5]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER ME-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0D5,
+ },
+ [0x1B0D6]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER ME-MA",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0D6,
+ },
+ [0x1B0D7]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MO-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0D7,
+ },
+ [0x1B0D8]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MO-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0D8,
+ },
+ [0x1B0D9]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MO-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0D9,
+ },
+ [0x1B0DA]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MO-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0DA,
+ },
+ [0x1B0DB]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MO-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0DB,
+ },
+ [0x1B0DC]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER MO-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0DC,
+ },
+ [0x1B0DD]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YA-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0DD,
+ },
+ [0x1B0DE]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YA-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0DE,
+ },
+ [0x1B0DF]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YA-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0DF,
+ },
+ [0x1B0E0]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YA-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0E0,
+ },
+ [0x1B0E1]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YA-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0E1,
+ },
+ [0x1B0E2]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YA-YO",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0E2,
+ },
+ [0x1B0E3]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YU-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0E3,
+ },
+ [0x1B0E4]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YU-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0E4,
+ },
+ [0x1B0E5]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YU-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0E5,
+ },
+ [0x1B0E6]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YU-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0E6,
+ },
+ [0x1B0E7]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YO-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0E7,
+ },
+ [0x1B0E8]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YO-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0E8,
+ },
+ [0x1B0E9]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YO-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0E9,
+ },
+ [0x1B0EA]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YO-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0EA,
+ },
+ [0x1B0EB]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YO-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0EB,
+ },
+ [0x1B0EC]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER YO-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0EC,
+ },
+ [0x1B0ED]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RA-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0ED,
+ },
+ [0x1B0EE]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RA-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0EE,
+ },
+ [0x1B0EF]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RA-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0EF,
+ },
+ [0x1B0F0]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RA-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0F0,
+ },
+ [0x1B0F1]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RI-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0F1,
+ },
+ [0x1B0F2]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RI-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0F2,
+ },
+ [0x1B0F3]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RI-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0F3,
+ },
+ [0x1B0F4]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RI-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0F4,
+ },
+ [0x1B0F5]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RI-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0F5,
+ },
+ [0x1B0F6]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RI-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0F6,
+ },
+ [0x1B0F7]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RI-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0F7,
+ },
+ [0x1B0F8]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RU-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0F8,
+ },
+ [0x1B0F9]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RU-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0F9,
+ },
+ [0x1B0FA]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RU-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0FA,
+ },
+ [0x1B0FB]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RU-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0FB,
+ },
+ [0x1B0FC]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RU-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0FC,
+ },
+ [0x1B0FD]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RU-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0FD,
+ },
+ [0x1B0FE]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RE-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0FE,
+ },
+ [0x1B0FF]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RE-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B0FF,
+ },
+ [0x1B100]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RE-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B100,
+ },
+ [0x1B101]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RE-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B101,
+ },
+ [0x1B102]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RO-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B102,
+ },
+ [0x1B103]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RO-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B103,
+ },
+ [0x1B104]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RO-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B104,
+ },
+ [0x1B105]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RO-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B105,
+ },
+ [0x1B106]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RO-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B106,
+ },
+ [0x1B107]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER RO-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B107,
+ },
+ [0x1B108]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WA-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B108,
+ },
+ [0x1B109]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WA-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B109,
+ },
+ [0x1B10A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WA-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B10A,
+ },
+ [0x1B10B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WA-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B10B,
+ },
+ [0x1B10C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WA-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B10C,
+ },
+ [0x1B10D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WI-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B10D,
+ },
+ [0x1B10E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WI-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B10E,
+ },
+ [0x1B10F]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WI-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B10F,
+ },
+ [0x1B110]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WI-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B110,
+ },
+ [0x1B111]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WI-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B111,
+ },
+ [0x1B112]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WE-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B112,
+ },
+ [0x1B113]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WE-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B113,
+ },
+ [0x1B114]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WE-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B114,
+ },
+ [0x1B115]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WE-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B115,
+ },
+ [0x1B116]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WO-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B116,
+ },
+ [0x1B117]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WO-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B117,
+ },
+ [0x1B118]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WO-3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B118,
+ },
+ [0x1B119]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WO-4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B119,
+ },
+ [0x1B11A]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WO-5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B11A,
+ },
+ [0x1B11B]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WO-6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B11B,
+ },
+ [0x1B11C]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER WO-7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B11C,
+ },
+ [0x1B11D]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER N-MU-MO-1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B11D,
+ },
+ [0x1B11E]={
+  category="lo",
+  cjkwd="w",
+  description="HENTAIGANA LETTER N-MU-MO-2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B11E,
+ },
+ [0x1B170]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B170",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B170,
+ },
+ [0x1B171]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B171",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B171,
+ },
+ [0x1B172]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B172",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B172,
+ },
+ [0x1B173]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B173",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B173,
+ },
+ [0x1B174]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B174",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B174,
+ },
+ [0x1B175]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B175",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B175,
+ },
+ [0x1B176]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B176",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B176,
+ },
+ [0x1B177]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B177",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B177,
+ },
+ [0x1B178]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B178",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B178,
+ },
+ [0x1B179]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B179",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B179,
+ },
+ [0x1B17A]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B17A",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B17A,
+ },
+ [0x1B17B]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B17B",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B17B,
+ },
+ [0x1B17C]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B17C",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B17C,
+ },
+ [0x1B17D]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B17D",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B17D,
+ },
+ [0x1B17E]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B17E",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B17E,
+ },
+ [0x1B17F]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B17F",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B17F,
+ },
+ [0x1B180]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B180",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B180,
+ },
+ [0x1B181]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B181",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B181,
+ },
+ [0x1B182]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B182",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B182,
+ },
+ [0x1B183]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B183",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B183,
+ },
+ [0x1B184]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B184",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B184,
+ },
+ [0x1B185]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B185",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B185,
+ },
+ [0x1B186]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B186",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B186,
+ },
+ [0x1B187]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B187",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B187,
+ },
+ [0x1B188]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B188",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B188,
+ },
+ [0x1B189]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B189",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B189,
+ },
+ [0x1B18A]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B18A",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B18A,
+ },
+ [0x1B18B]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B18B",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B18B,
+ },
+ [0x1B18C]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B18C",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B18C,
+ },
+ [0x1B18D]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B18D",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B18D,
+ },
+ [0x1B18E]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B18E",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B18E,
+ },
+ [0x1B18F]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B18F",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B18F,
+ },
+ [0x1B190]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B190",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B190,
+ },
+ [0x1B191]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B191",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B191,
+ },
+ [0x1B192]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B192",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B192,
+ },
+ [0x1B193]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B193",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B193,
+ },
+ [0x1B194]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B194",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B194,
+ },
+ [0x1B195]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B195",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B195,
+ },
+ [0x1B196]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B196",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B196,
+ },
+ [0x1B197]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B197",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B197,
+ },
+ [0x1B198]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B198",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B198,
+ },
+ [0x1B199]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B199",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B199,
+ },
+ [0x1B19A]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B19A",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B19A,
+ },
+ [0x1B19B]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B19B",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B19B,
+ },
+ [0x1B19C]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B19C",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B19C,
+ },
+ [0x1B19D]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B19D",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B19D,
+ },
+ [0x1B19E]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B19E",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B19E,
+ },
+ [0x1B19F]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B19F",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B19F,
+ },
+ [0x1B1A0]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1A0",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1A0,
+ },
+ [0x1B1A1]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1A1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1A1,
+ },
+ [0x1B1A2]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1A2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1A2,
+ },
+ [0x1B1A3]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1A3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1A3,
+ },
+ [0x1B1A4]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1A4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1A4,
+ },
+ [0x1B1A5]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1A5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1A5,
+ },
+ [0x1B1A6]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1A6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1A6,
+ },
+ [0x1B1A7]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1A7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1A7,
+ },
+ [0x1B1A8]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1A8",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1A8,
+ },
+ [0x1B1A9]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1A9",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1A9,
+ },
+ [0x1B1AA]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1AA",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1AA,
+ },
+ [0x1B1AB]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1AB",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1AB,
+ },
+ [0x1B1AC]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1AC",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1AC,
+ },
+ [0x1B1AD]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1AD",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1AD,
+ },
+ [0x1B1AE]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1AE",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1AE,
+ },
+ [0x1B1AF]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1AF",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1AF,
+ },
+ [0x1B1B0]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1B0",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1B0,
+ },
+ [0x1B1B1]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1B1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1B1,
+ },
+ [0x1B1B2]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1B2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1B2,
+ },
+ [0x1B1B3]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1B3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1B3,
+ },
+ [0x1B1B4]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1B4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1B4,
+ },
+ [0x1B1B5]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1B5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1B5,
+ },
+ [0x1B1B6]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1B6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1B6,
+ },
+ [0x1B1B7]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1B7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1B7,
+ },
+ [0x1B1B8]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1B8",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1B8,
+ },
+ [0x1B1B9]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1B9",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1B9,
+ },
+ [0x1B1BA]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1BA",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1BA,
+ },
+ [0x1B1BB]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1BB",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1BB,
+ },
+ [0x1B1BC]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1BC",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1BC,
+ },
+ [0x1B1BD]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1BD",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1BD,
+ },
+ [0x1B1BE]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1BE",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1BE,
+ },
+ [0x1B1BF]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1BF",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1BF,
+ },
+ [0x1B1C0]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1C0",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1C0,
+ },
+ [0x1B1C1]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1C1",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1C1,
+ },
+ [0x1B1C2]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1C2",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1C2,
+ },
+ [0x1B1C3]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1C3",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1C3,
+ },
+ [0x1B1C4]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1C4",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1C4,
+ },
+ [0x1B1C5]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1C5",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1C5,
+ },
+ [0x1B1C6]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1C6",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1C6,
+ },
+ [0x1B1C7]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1C7",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1C7,
+ },
+ [0x1B1C8]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1C8",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1C8,
+ },
+ [0x1B1C9]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1C9",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1C9,
+ },
+ [0x1B1CA]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1CA",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1CA,
+ },
+ [0x1B1CB]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1CB",
+  direction="l",
+  linebreak="id",
+  unicodeslot=0x1B1CB,
+ },
+ [0x1B1CC]={
+  category="lo",
+  cjkwd="w",
+  description="NUSHU CHARACTER-1B1CC",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189C5,
+  unicodeslot=0x1B1CC,
  },
- [0x189C6]={
+ [0x1B1CD]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-455",
+  description="NUSHU CHARACTER-1B1CD",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189C6,
+  unicodeslot=0x1B1CD,
  },
- [0x189C7]={
+ [0x1B1CE]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-456",
+  description="NUSHU CHARACTER-1B1CE",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189C7,
+  unicodeslot=0x1B1CE,
  },
- [0x189C8]={
+ [0x1B1CF]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-457",
+  description="NUSHU CHARACTER-1B1CF",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189C8,
+  unicodeslot=0x1B1CF,
  },
- [0x189C9]={
+ [0x1B1D0]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-458",
+  description="NUSHU CHARACTER-1B1D0",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189C9,
+  unicodeslot=0x1B1D0,
  },
- [0x189CA]={
+ [0x1B1D1]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-459",
+  description="NUSHU CHARACTER-1B1D1",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189CA,
+  unicodeslot=0x1B1D1,
  },
- [0x189CB]={
+ [0x1B1D2]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-460",
+  description="NUSHU CHARACTER-1B1D2",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189CB,
+  unicodeslot=0x1B1D2,
  },
- [0x189CC]={
+ [0x1B1D3]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-461",
+  description="NUSHU CHARACTER-1B1D3",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189CC,
+  unicodeslot=0x1B1D3,
  },
- [0x189CD]={
+ [0x1B1D4]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-462",
+  description="NUSHU CHARACTER-1B1D4",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189CD,
+  unicodeslot=0x1B1D4,
  },
- [0x189CE]={
+ [0x1B1D5]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-463",
+  description="NUSHU CHARACTER-1B1D5",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189CE,
+  unicodeslot=0x1B1D5,
  },
- [0x189CF]={
+ [0x1B1D6]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-464",
+  description="NUSHU CHARACTER-1B1D6",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189CF,
+  unicodeslot=0x1B1D6,
  },
- [0x189D0]={
+ [0x1B1D7]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-465",
+  description="NUSHU CHARACTER-1B1D7",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189D0,
+  unicodeslot=0x1B1D7,
  },
- [0x189D1]={
+ [0x1B1D8]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-466",
+  description="NUSHU CHARACTER-1B1D8",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189D1,
+  unicodeslot=0x1B1D8,
  },
- [0x189D2]={
+ [0x1B1D9]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-467",
+  description="NUSHU CHARACTER-1B1D9",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189D2,
+  unicodeslot=0x1B1D9,
  },
- [0x189D3]={
+ [0x1B1DA]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-468",
+  description="NUSHU CHARACTER-1B1DA",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189D3,
+  unicodeslot=0x1B1DA,
  },
- [0x189D4]={
+ [0x1B1DB]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-469",
+  description="NUSHU CHARACTER-1B1DB",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189D4,
+  unicodeslot=0x1B1DB,
  },
- [0x189D5]={
+ [0x1B1DC]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-470",
+  description="NUSHU CHARACTER-1B1DC",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189D5,
+  unicodeslot=0x1B1DC,
  },
- [0x189D6]={
+ [0x1B1DD]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-471",
+  description="NUSHU CHARACTER-1B1DD",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189D6,
+  unicodeslot=0x1B1DD,
  },
- [0x189D7]={
+ [0x1B1DE]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-472",
+  description="NUSHU CHARACTER-1B1DE",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189D7,
+  unicodeslot=0x1B1DE,
  },
- [0x189D8]={
+ [0x1B1DF]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-473",
+  description="NUSHU CHARACTER-1B1DF",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189D8,
+  unicodeslot=0x1B1DF,
  },
- [0x189D9]={
+ [0x1B1E0]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-474",
+  description="NUSHU CHARACTER-1B1E0",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189D9,
+  unicodeslot=0x1B1E0,
  },
- [0x189DA]={
+ [0x1B1E1]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-475",
+  description="NUSHU CHARACTER-1B1E1",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189DA,
+  unicodeslot=0x1B1E1,
  },
- [0x189DB]={
+ [0x1B1E2]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-476",
+  description="NUSHU CHARACTER-1B1E2",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189DB,
+  unicodeslot=0x1B1E2,
  },
- [0x189DC]={
+ [0x1B1E3]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-477",
+  description="NUSHU CHARACTER-1B1E3",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189DC,
+  unicodeslot=0x1B1E3,
  },
- [0x189DD]={
+ [0x1B1E4]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-478",
+  description="NUSHU CHARACTER-1B1E4",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189DD,
+  unicodeslot=0x1B1E4,
  },
- [0x189DE]={
+ [0x1B1E5]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-479",
+  description="NUSHU CHARACTER-1B1E5",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189DE,
+  unicodeslot=0x1B1E5,
  },
- [0x189DF]={
+ [0x1B1E6]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-480",
+  description="NUSHU CHARACTER-1B1E6",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189DF,
+  unicodeslot=0x1B1E6,
  },
- [0x189E0]={
+ [0x1B1E7]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-481",
+  description="NUSHU CHARACTER-1B1E7",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189E0,
+  unicodeslot=0x1B1E7,
  },
- [0x189E1]={
+ [0x1B1E8]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-482",
+  description="NUSHU CHARACTER-1B1E8",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189E1,
+  unicodeslot=0x1B1E8,
  },
- [0x189E2]={
+ [0x1B1E9]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-483",
+  description="NUSHU CHARACTER-1B1E9",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189E2,
+  unicodeslot=0x1B1E9,
  },
- [0x189E3]={
+ [0x1B1EA]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-484",
+  description="NUSHU CHARACTER-1B1EA",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189E3,
+  unicodeslot=0x1B1EA,
  },
- [0x189E4]={
+ [0x1B1EB]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-485",
+  description="NUSHU CHARACTER-1B1EB",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189E4,
+  unicodeslot=0x1B1EB,
  },
- [0x189E5]={
+ [0x1B1EC]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-486",
+  description="NUSHU CHARACTER-1B1EC",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189E5,
+  unicodeslot=0x1B1EC,
  },
- [0x189E6]={
+ [0x1B1ED]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-487",
+  description="NUSHU CHARACTER-1B1ED",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189E6,
+  unicodeslot=0x1B1ED,
  },
- [0x189E7]={
+ [0x1B1EE]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-488",
+  description="NUSHU CHARACTER-1B1EE",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189E7,
+  unicodeslot=0x1B1EE,
  },
- [0x189E8]={
+ [0x1B1EF]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-489",
+  description="NUSHU CHARACTER-1B1EF",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189E8,
+  unicodeslot=0x1B1EF,
  },
- [0x189E9]={
+ [0x1B1F0]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-490",
+  description="NUSHU CHARACTER-1B1F0",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189E9,
+  unicodeslot=0x1B1F0,
  },
- [0x189EA]={
+ [0x1B1F1]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-491",
+  description="NUSHU CHARACTER-1B1F1",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189EA,
+  unicodeslot=0x1B1F1,
  },
- [0x189EB]={
+ [0x1B1F2]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-492",
+  description="NUSHU CHARACTER-1B1F2",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189EB,
+  unicodeslot=0x1B1F2,
  },
- [0x189EC]={
+ [0x1B1F3]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-493",
+  description="NUSHU CHARACTER-1B1F3",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189EC,
+  unicodeslot=0x1B1F3,
  },
- [0x189ED]={
+ [0x1B1F4]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-494",
+  description="NUSHU CHARACTER-1B1F4",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189ED,
+  unicodeslot=0x1B1F4,
  },
- [0x189EE]={
+ [0x1B1F5]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-495",
+  description="NUSHU CHARACTER-1B1F5",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189EE,
+  unicodeslot=0x1B1F5,
  },
- [0x189EF]={
+ [0x1B1F6]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-496",
+  description="NUSHU CHARACTER-1B1F6",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189EF,
+  unicodeslot=0x1B1F6,
  },
- [0x189F0]={
+ [0x1B1F7]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-497",
+  description="NUSHU CHARACTER-1B1F7",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189F0,
+  unicodeslot=0x1B1F7,
  },
- [0x189F1]={
+ [0x1B1F8]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-498",
+  description="NUSHU CHARACTER-1B1F8",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189F1,
+  unicodeslot=0x1B1F8,
  },
- [0x189F2]={
+ [0x1B1F9]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-499",
+  description="NUSHU CHARACTER-1B1F9",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189F2,
+  unicodeslot=0x1B1F9,
  },
- [0x189F3]={
+ [0x1B1FA]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-500",
+  description="NUSHU CHARACTER-1B1FA",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189F3,
+  unicodeslot=0x1B1FA,
  },
- [0x189F4]={
+ [0x1B1FB]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-501",
+  description="NUSHU CHARACTER-1B1FB",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189F4,
+  unicodeslot=0x1B1FB,
  },
- [0x189F5]={
+ [0x1B1FC]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-502",
+  description="NUSHU CHARACTER-1B1FC",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189F5,
+  unicodeslot=0x1B1FC,
  },
- [0x189F6]={
+ [0x1B1FD]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-503",
+  description="NUSHU CHARACTER-1B1FD",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189F6,
+  unicodeslot=0x1B1FD,
  },
- [0x189F7]={
+ [0x1B1FE]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-504",
+  description="NUSHU CHARACTER-1B1FE",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189F7,
+  unicodeslot=0x1B1FE,
  },
- [0x189F8]={
+ [0x1B1FF]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-505",
+  description="NUSHU CHARACTER-1B1FF",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189F8,
+  unicodeslot=0x1B1FF,
  },
- [0x189F9]={
+ [0x1B200]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-506",
+  description="NUSHU CHARACTER-1B200",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189F9,
+  unicodeslot=0x1B200,
  },
- [0x189FA]={
+ [0x1B201]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-507",
+  description="NUSHU CHARACTER-1B201",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189FA,
+  unicodeslot=0x1B201,
  },
- [0x189FB]={
+ [0x1B202]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-508",
+  description="NUSHU CHARACTER-1B202",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189FB,
+  unicodeslot=0x1B202,
  },
- [0x189FC]={
+ [0x1B203]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-509",
+  description="NUSHU CHARACTER-1B203",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189FC,
+  unicodeslot=0x1B203,
  },
- [0x189FD]={
+ [0x1B204]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-510",
+  description="NUSHU CHARACTER-1B204",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189FD,
+  unicodeslot=0x1B204,
  },
- [0x189FE]={
+ [0x1B205]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-511",
+  description="NUSHU CHARACTER-1B205",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189FE,
+  unicodeslot=0x1B205,
  },
- [0x189FF]={
+ [0x1B206]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-512",
+  description="NUSHU CHARACTER-1B206",
   direction="l",
   linebreak="id",
-  unicodeslot=0x189FF,
+  unicodeslot=0x1B206,
  },
- [0x18A00]={
+ [0x1B207]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-513",
+  description="NUSHU CHARACTER-1B207",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A00,
+  unicodeslot=0x1B207,
  },
- [0x18A01]={
+ [0x1B208]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-514",
+  description="NUSHU CHARACTER-1B208",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A01,
+  unicodeslot=0x1B208,
  },
- [0x18A02]={
+ [0x1B209]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-515",
+  description="NUSHU CHARACTER-1B209",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A02,
+  unicodeslot=0x1B209,
  },
- [0x18A03]={
+ [0x1B20A]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-516",
+  description="NUSHU CHARACTER-1B20A",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A03,
+  unicodeslot=0x1B20A,
  },
- [0x18A04]={
+ [0x1B20B]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-517",
+  description="NUSHU CHARACTER-1B20B",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A04,
+  unicodeslot=0x1B20B,
  },
- [0x18A05]={
+ [0x1B20C]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-518",
+  description="NUSHU CHARACTER-1B20C",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A05,
+  unicodeslot=0x1B20C,
  },
- [0x18A06]={
+ [0x1B20D]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-519",
+  description="NUSHU CHARACTER-1B20D",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A06,
+  unicodeslot=0x1B20D,
  },
- [0x18A07]={
+ [0x1B20E]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-520",
+  description="NUSHU CHARACTER-1B20E",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A07,
+  unicodeslot=0x1B20E,
  },
- [0x18A08]={
+ [0x1B20F]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-521",
+  description="NUSHU CHARACTER-1B20F",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A08,
+  unicodeslot=0x1B20F,
  },
- [0x18A09]={
+ [0x1B210]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-522",
+  description="NUSHU CHARACTER-1B210",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A09,
+  unicodeslot=0x1B210,
  },
- [0x18A0A]={
+ [0x1B211]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-523",
+  description="NUSHU CHARACTER-1B211",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A0A,
+  unicodeslot=0x1B211,
  },
- [0x18A0B]={
+ [0x1B212]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-524",
+  description="NUSHU CHARACTER-1B212",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A0B,
+  unicodeslot=0x1B212,
  },
- [0x18A0C]={
+ [0x1B213]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-525",
+  description="NUSHU CHARACTER-1B213",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A0C,
+  unicodeslot=0x1B213,
  },
- [0x18A0D]={
+ [0x1B214]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-526",
+  description="NUSHU CHARACTER-1B214",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A0D,
+  unicodeslot=0x1B214,
  },
- [0x18A0E]={
+ [0x1B215]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-527",
+  description="NUSHU CHARACTER-1B215",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A0E,
+  unicodeslot=0x1B215,
  },
- [0x18A0F]={
+ [0x1B216]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-528",
+  description="NUSHU CHARACTER-1B216",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A0F,
+  unicodeslot=0x1B216,
  },
- [0x18A10]={
+ [0x1B217]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-529",
+  description="NUSHU CHARACTER-1B217",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A10,
+  unicodeslot=0x1B217,
  },
- [0x18A11]={
+ [0x1B218]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-530",
+  description="NUSHU CHARACTER-1B218",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A11,
+  unicodeslot=0x1B218,
  },
- [0x18A12]={
+ [0x1B219]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-531",
+  description="NUSHU CHARACTER-1B219",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A12,
+  unicodeslot=0x1B219,
  },
- [0x18A13]={
+ [0x1B21A]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-532",
+  description="NUSHU CHARACTER-1B21A",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A13,
+  unicodeslot=0x1B21A,
  },
- [0x18A14]={
+ [0x1B21B]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-533",
+  description="NUSHU CHARACTER-1B21B",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A14,
+  unicodeslot=0x1B21B,
  },
- [0x18A15]={
+ [0x1B21C]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-534",
+  description="NUSHU CHARACTER-1B21C",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A15,
+  unicodeslot=0x1B21C,
  },
- [0x18A16]={
+ [0x1B21D]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-535",
+  description="NUSHU CHARACTER-1B21D",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A16,
+  unicodeslot=0x1B21D,
  },
- [0x18A17]={
+ [0x1B21E]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-536",
+  description="NUSHU CHARACTER-1B21E",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A17,
+  unicodeslot=0x1B21E,
  },
- [0x18A18]={
+ [0x1B21F]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-537",
+  description="NUSHU CHARACTER-1B21F",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A18,
+  unicodeslot=0x1B21F,
  },
- [0x18A19]={
+ [0x1B220]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-538",
+  description="NUSHU CHARACTER-1B220",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A19,
+  unicodeslot=0x1B220,
  },
- [0x18A1A]={
+ [0x1B221]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-539",
+  description="NUSHU CHARACTER-1B221",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A1A,
+  unicodeslot=0x1B221,
  },
- [0x18A1B]={
+ [0x1B222]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-540",
+  description="NUSHU CHARACTER-1B222",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A1B,
+  unicodeslot=0x1B222,
  },
- [0x18A1C]={
+ [0x1B223]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-541",
+  description="NUSHU CHARACTER-1B223",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A1C,
+  unicodeslot=0x1B223,
  },
- [0x18A1D]={
+ [0x1B224]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-542",
+  description="NUSHU CHARACTER-1B224",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A1D,
+  unicodeslot=0x1B224,
  },
- [0x18A1E]={
+ [0x1B225]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-543",
+  description="NUSHU CHARACTER-1B225",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A1E,
+  unicodeslot=0x1B225,
  },
- [0x18A1F]={
+ [0x1B226]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-544",
+  description="NUSHU CHARACTER-1B226",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A1F,
+  unicodeslot=0x1B226,
  },
- [0x18A20]={
+ [0x1B227]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-545",
+  description="NUSHU CHARACTER-1B227",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A20,
+  unicodeslot=0x1B227,
  },
- [0x18A21]={
+ [0x1B228]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-546",
+  description="NUSHU CHARACTER-1B228",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A21,
+  unicodeslot=0x1B228,
  },
- [0x18A22]={
+ [0x1B229]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-547",
+  description="NUSHU CHARACTER-1B229",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A22,
+  unicodeslot=0x1B229,
  },
- [0x18A23]={
+ [0x1B22A]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-548",
+  description="NUSHU CHARACTER-1B22A",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A23,
+  unicodeslot=0x1B22A,
  },
- [0x18A24]={
+ [0x1B22B]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-549",
+  description="NUSHU CHARACTER-1B22B",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A24,
+  unicodeslot=0x1B22B,
  },
- [0x18A25]={
+ [0x1B22C]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-550",
+  description="NUSHU CHARACTER-1B22C",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A25,
+  unicodeslot=0x1B22C,
  },
- [0x18A26]={
+ [0x1B22D]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-551",
+  description="NUSHU CHARACTER-1B22D",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A26,
+  unicodeslot=0x1B22D,
  },
- [0x18A27]={
+ [0x1B22E]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-552",
+  description="NUSHU CHARACTER-1B22E",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A27,
+  unicodeslot=0x1B22E,
  },
- [0x18A28]={
+ [0x1B22F]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-553",
+  description="NUSHU CHARACTER-1B22F",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A28,
+  unicodeslot=0x1B22F,
  },
- [0x18A29]={
+ [0x1B230]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-554",
+  description="NUSHU CHARACTER-1B230",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A29,
+  unicodeslot=0x1B230,
  },
- [0x18A2A]={
+ [0x1B231]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-555",
+  description="NUSHU CHARACTER-1B231",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A2A,
+  unicodeslot=0x1B231,
  },
- [0x18A2B]={
+ [0x1B232]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-556",
+  description="NUSHU CHARACTER-1B232",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A2B,
+  unicodeslot=0x1B232,
  },
- [0x18A2C]={
+ [0x1B233]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-557",
+  description="NUSHU CHARACTER-1B233",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A2C,
+  unicodeslot=0x1B233,
  },
- [0x18A2D]={
+ [0x1B234]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-558",
+  description="NUSHU CHARACTER-1B234",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A2D,
+  unicodeslot=0x1B234,
  },
- [0x18A2E]={
+ [0x1B235]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-559",
+  description="NUSHU CHARACTER-1B235",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A2E,
+  unicodeslot=0x1B235,
  },
- [0x18A2F]={
+ [0x1B236]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-560",
+  description="NUSHU CHARACTER-1B236",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A2F,
+  unicodeslot=0x1B236,
  },
- [0x18A30]={
+ [0x1B237]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-561",
+  description="NUSHU CHARACTER-1B237",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A30,
+  unicodeslot=0x1B237,
  },
- [0x18A31]={
+ [0x1B238]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-562",
+  description="NUSHU CHARACTER-1B238",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A31,
+  unicodeslot=0x1B238,
  },
- [0x18A32]={
+ [0x1B239]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-563",
+  description="NUSHU CHARACTER-1B239",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A32,
+  unicodeslot=0x1B239,
  },
- [0x18A33]={
+ [0x1B23A]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-564",
+  description="NUSHU CHARACTER-1B23A",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A33,
+  unicodeslot=0x1B23A,
  },
- [0x18A34]={
+ [0x1B23B]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-565",
+  description="NUSHU CHARACTER-1B23B",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A34,
+  unicodeslot=0x1B23B,
  },
- [0x18A35]={
+ [0x1B23C]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-566",
+  description="NUSHU CHARACTER-1B23C",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A35,
+  unicodeslot=0x1B23C,
  },
- [0x18A36]={
+ [0x1B23D]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-567",
+  description="NUSHU CHARACTER-1B23D",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A36,
+  unicodeslot=0x1B23D,
  },
- [0x18A37]={
+ [0x1B23E]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-568",
+  description="NUSHU CHARACTER-1B23E",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A37,
+  unicodeslot=0x1B23E,
  },
- [0x18A38]={
+ [0x1B23F]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-569",
+  description="NUSHU CHARACTER-1B23F",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A38,
+  unicodeslot=0x1B23F,
  },
- [0x18A39]={
+ [0x1B240]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-570",
+  description="NUSHU CHARACTER-1B240",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A39,
+  unicodeslot=0x1B240,
  },
- [0x18A3A]={
+ [0x1B241]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-571",
+  description="NUSHU CHARACTER-1B241",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A3A,
+  unicodeslot=0x1B241,
  },
- [0x18A3B]={
+ [0x1B242]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-572",
+  description="NUSHU CHARACTER-1B242",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A3B,
+  unicodeslot=0x1B242,
  },
- [0x18A3C]={
+ [0x1B243]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-573",
+  description="NUSHU CHARACTER-1B243",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A3C,
+  unicodeslot=0x1B243,
  },
- [0x18A3D]={
+ [0x1B244]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-574",
+  description="NUSHU CHARACTER-1B244",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A3D,
+  unicodeslot=0x1B244,
  },
- [0x18A3E]={
+ [0x1B245]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-575",
+  description="NUSHU CHARACTER-1B245",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A3E,
+  unicodeslot=0x1B245,
  },
- [0x18A3F]={
+ [0x1B246]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-576",
+  description="NUSHU CHARACTER-1B246",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A3F,
+  unicodeslot=0x1B246,
  },
- [0x18A40]={
+ [0x1B247]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-577",
+  description="NUSHU CHARACTER-1B247",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A40,
+  unicodeslot=0x1B247,
  },
- [0x18A41]={
+ [0x1B248]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-578",
+  description="NUSHU CHARACTER-1B248",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A41,
+  unicodeslot=0x1B248,
  },
- [0x18A42]={
+ [0x1B249]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-579",
+  description="NUSHU CHARACTER-1B249",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A42,
+  unicodeslot=0x1B249,
  },
- [0x18A43]={
+ [0x1B24A]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-580",
+  description="NUSHU CHARACTER-1B24A",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A43,
+  unicodeslot=0x1B24A,
  },
- [0x18A44]={
+ [0x1B24B]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-581",
+  description="NUSHU CHARACTER-1B24B",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A44,
+  unicodeslot=0x1B24B,
  },
- [0x18A45]={
+ [0x1B24C]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-582",
+  description="NUSHU CHARACTER-1B24C",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A45,
+  unicodeslot=0x1B24C,
  },
- [0x18A46]={
+ [0x1B24D]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-583",
+  description="NUSHU CHARACTER-1B24D",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A46,
+  unicodeslot=0x1B24D,
  },
- [0x18A47]={
+ [0x1B24E]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-584",
+  description="NUSHU CHARACTER-1B24E",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A47,
+  unicodeslot=0x1B24E,
  },
- [0x18A48]={
+ [0x1B24F]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-585",
+  description="NUSHU CHARACTER-1B24F",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A48,
+  unicodeslot=0x1B24F,
  },
- [0x18A49]={
+ [0x1B250]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-586",
+  description="NUSHU CHARACTER-1B250",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A49,
+  unicodeslot=0x1B250,
  },
- [0x18A4A]={
+ [0x1B251]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-587",
+  description="NUSHU CHARACTER-1B251",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A4A,
+  unicodeslot=0x1B251,
  },
- [0x18A4B]={
+ [0x1B252]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-588",
+  description="NUSHU CHARACTER-1B252",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A4B,
+  unicodeslot=0x1B252,
  },
- [0x18A4C]={
+ [0x1B253]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-589",
+  description="NUSHU CHARACTER-1B253",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A4C,
+  unicodeslot=0x1B253,
  },
- [0x18A4D]={
+ [0x1B254]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-590",
+  description="NUSHU CHARACTER-1B254",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A4D,
+  unicodeslot=0x1B254,
  },
- [0x18A4E]={
+ [0x1B255]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-591",
+  description="NUSHU CHARACTER-1B255",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A4E,
+  unicodeslot=0x1B255,
  },
- [0x18A4F]={
+ [0x1B256]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-592",
+  description="NUSHU CHARACTER-1B256",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A4F,
+  unicodeslot=0x1B256,
  },
- [0x18A50]={
+ [0x1B257]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-593",
+  description="NUSHU CHARACTER-1B257",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A50,
+  unicodeslot=0x1B257,
  },
- [0x18A51]={
+ [0x1B258]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-594",
+  description="NUSHU CHARACTER-1B258",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A51,
+  unicodeslot=0x1B258,
  },
- [0x18A52]={
+ [0x1B259]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-595",
+  description="NUSHU CHARACTER-1B259",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A52,
+  unicodeslot=0x1B259,
  },
- [0x18A53]={
+ [0x1B25A]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-596",
+  description="NUSHU CHARACTER-1B25A",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A53,
+  unicodeslot=0x1B25A,
  },
- [0x18A54]={
+ [0x1B25B]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-597",
+  description="NUSHU CHARACTER-1B25B",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A54,
+  unicodeslot=0x1B25B,
  },
- [0x18A55]={
+ [0x1B25C]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-598",
+  description="NUSHU CHARACTER-1B25C",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A55,
+  unicodeslot=0x1B25C,
  },
- [0x18A56]={
+ [0x1B25D]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-599",
+  description="NUSHU CHARACTER-1B25D",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A56,
+  unicodeslot=0x1B25D,
  },
- [0x18A57]={
+ [0x1B25E]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-600",
+  description="NUSHU CHARACTER-1B25E",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A57,
+  unicodeslot=0x1B25E,
  },
- [0x18A58]={
+ [0x1B25F]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-601",
+  description="NUSHU CHARACTER-1B25F",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A58,
+  unicodeslot=0x1B25F,
  },
- [0x18A59]={
+ [0x1B260]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-602",
+  description="NUSHU CHARACTER-1B260",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A59,
+  unicodeslot=0x1B260,
  },
- [0x18A5A]={
+ [0x1B261]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-603",
+  description="NUSHU CHARACTER-1B261",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A5A,
+  unicodeslot=0x1B261,
  },
- [0x18A5B]={
+ [0x1B262]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-604",
+  description="NUSHU CHARACTER-1B262",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A5B,
+  unicodeslot=0x1B262,
  },
- [0x18A5C]={
+ [0x1B263]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-605",
+  description="NUSHU CHARACTER-1B263",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A5C,
+  unicodeslot=0x1B263,
  },
- [0x18A5D]={
+ [0x1B264]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-606",
+  description="NUSHU CHARACTER-1B264",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A5D,
+  unicodeslot=0x1B264,
  },
- [0x18A5E]={
+ [0x1B265]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-607",
+  description="NUSHU CHARACTER-1B265",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A5E,
+  unicodeslot=0x1B265,
  },
- [0x18A5F]={
+ [0x1B266]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-608",
+  description="NUSHU CHARACTER-1B266",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A5F,
+  unicodeslot=0x1B266,
  },
- [0x18A60]={
+ [0x1B267]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-609",
+  description="NUSHU CHARACTER-1B267",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A60,
+  unicodeslot=0x1B267,
  },
- [0x18A61]={
+ [0x1B268]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-610",
+  description="NUSHU CHARACTER-1B268",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A61,
+  unicodeslot=0x1B268,
  },
- [0x18A62]={
+ [0x1B269]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-611",
+  description="NUSHU CHARACTER-1B269",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A62,
+  unicodeslot=0x1B269,
  },
- [0x18A63]={
+ [0x1B26A]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-612",
+  description="NUSHU CHARACTER-1B26A",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A63,
+  unicodeslot=0x1B26A,
  },
- [0x18A64]={
+ [0x1B26B]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-613",
+  description="NUSHU CHARACTER-1B26B",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A64,
+  unicodeslot=0x1B26B,
  },
- [0x18A65]={
+ [0x1B26C]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-614",
+  description="NUSHU CHARACTER-1B26C",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A65,
+  unicodeslot=0x1B26C,
  },
- [0x18A66]={
+ [0x1B26D]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-615",
+  description="NUSHU CHARACTER-1B26D",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A66,
+  unicodeslot=0x1B26D,
  },
- [0x18A67]={
+ [0x1B26E]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-616",
+  description="NUSHU CHARACTER-1B26E",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A67,
+  unicodeslot=0x1B26E,
  },
- [0x18A68]={
+ [0x1B26F]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-617",
+  description="NUSHU CHARACTER-1B26F",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A68,
+  unicodeslot=0x1B26F,
  },
- [0x18A69]={
+ [0x1B270]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-618",
+  description="NUSHU CHARACTER-1B270",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A69,
+  unicodeslot=0x1B270,
  },
- [0x18A6A]={
+ [0x1B271]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-619",
+  description="NUSHU CHARACTER-1B271",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A6A,
+  unicodeslot=0x1B271,
  },
- [0x18A6B]={
+ [0x1B272]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-620",
+  description="NUSHU CHARACTER-1B272",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A6B,
+  unicodeslot=0x1B272,
  },
- [0x18A6C]={
+ [0x1B273]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-621",
+  description="NUSHU CHARACTER-1B273",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A6C,
+  unicodeslot=0x1B273,
  },
- [0x18A6D]={
+ [0x1B274]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-622",
+  description="NUSHU CHARACTER-1B274",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A6D,
+  unicodeslot=0x1B274,
  },
- [0x18A6E]={
+ [0x1B275]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-623",
+  description="NUSHU CHARACTER-1B275",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A6E,
+  unicodeslot=0x1B275,
  },
- [0x18A6F]={
+ [0x1B276]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-624",
+  description="NUSHU CHARACTER-1B276",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A6F,
+  unicodeslot=0x1B276,
  },
- [0x18A70]={
+ [0x1B277]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-625",
+  description="NUSHU CHARACTER-1B277",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A70,
+  unicodeslot=0x1B277,
  },
- [0x18A71]={
+ [0x1B278]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-626",
+  description="NUSHU CHARACTER-1B278",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A71,
+  unicodeslot=0x1B278,
  },
- [0x18A72]={
+ [0x1B279]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-627",
+  description="NUSHU CHARACTER-1B279",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A72,
+  unicodeslot=0x1B279,
  },
- [0x18A73]={
+ [0x1B27A]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-628",
+  description="NUSHU CHARACTER-1B27A",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A73,
+  unicodeslot=0x1B27A,
  },
- [0x18A74]={
+ [0x1B27B]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-629",
+  description="NUSHU CHARACTER-1B27B",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A74,
+  unicodeslot=0x1B27B,
  },
- [0x18A75]={
+ [0x1B27C]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-630",
+  description="NUSHU CHARACTER-1B27C",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A75,
+  unicodeslot=0x1B27C,
  },
- [0x18A76]={
+ [0x1B27D]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-631",
+  description="NUSHU CHARACTER-1B27D",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A76,
+  unicodeslot=0x1B27D,
  },
- [0x18A77]={
+ [0x1B27E]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-632",
+  description="NUSHU CHARACTER-1B27E",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A77,
+  unicodeslot=0x1B27E,
  },
- [0x18A78]={
+ [0x1B27F]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-633",
+  description="NUSHU CHARACTER-1B27F",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A78,
+  unicodeslot=0x1B27F,
  },
- [0x18A79]={
+ [0x1B280]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-634",
+  description="NUSHU CHARACTER-1B280",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A79,
+  unicodeslot=0x1B280,
  },
- [0x18A7A]={
+ [0x1B281]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-635",
+  description="NUSHU CHARACTER-1B281",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A7A,
+  unicodeslot=0x1B281,
  },
- [0x18A7B]={
+ [0x1B282]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-636",
+  description="NUSHU CHARACTER-1B282",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A7B,
+  unicodeslot=0x1B282,
  },
- [0x18A7C]={
+ [0x1B283]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-637",
+  description="NUSHU CHARACTER-1B283",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A7C,
+  unicodeslot=0x1B283,
  },
- [0x18A7D]={
+ [0x1B284]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-638",
+  description="NUSHU CHARACTER-1B284",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A7D,
+  unicodeslot=0x1B284,
  },
- [0x18A7E]={
+ [0x1B285]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-639",
+  description="NUSHU CHARACTER-1B285",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A7E,
+  unicodeslot=0x1B285,
  },
- [0x18A7F]={
+ [0x1B286]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-640",
+  description="NUSHU CHARACTER-1B286",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A7F,
+  unicodeslot=0x1B286,
  },
- [0x18A80]={
+ [0x1B287]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-641",
+  description="NUSHU CHARACTER-1B287",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A80,
+  unicodeslot=0x1B287,
  },
- [0x18A81]={
+ [0x1B288]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-642",
+  description="NUSHU CHARACTER-1B288",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A81,
+  unicodeslot=0x1B288,
  },
- [0x18A82]={
+ [0x1B289]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-643",
+  description="NUSHU CHARACTER-1B289",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A82,
+  unicodeslot=0x1B289,
  },
- [0x18A83]={
+ [0x1B28A]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-644",
+  description="NUSHU CHARACTER-1B28A",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A83,
+  unicodeslot=0x1B28A,
  },
- [0x18A84]={
+ [0x1B28B]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-645",
+  description="NUSHU CHARACTER-1B28B",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A84,
+  unicodeslot=0x1B28B,
  },
- [0x18A85]={
+ [0x1B28C]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-646",
+  description="NUSHU CHARACTER-1B28C",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A85,
+  unicodeslot=0x1B28C,
  },
- [0x18A86]={
+ [0x1B28D]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-647",
+  description="NUSHU CHARACTER-1B28D",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A86,
+  unicodeslot=0x1B28D,
  },
- [0x18A87]={
+ [0x1B28E]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-648",
+  description="NUSHU CHARACTER-1B28E",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A87,
+  unicodeslot=0x1B28E,
  },
- [0x18A88]={
+ [0x1B28F]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-649",
+  description="NUSHU CHARACTER-1B28F",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A88,
+  unicodeslot=0x1B28F,
  },
- [0x18A89]={
+ [0x1B290]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-650",
+  description="NUSHU CHARACTER-1B290",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A89,
+  unicodeslot=0x1B290,
  },
- [0x18A8A]={
+ [0x1B291]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-651",
+  description="NUSHU CHARACTER-1B291",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A8A,
+  unicodeslot=0x1B291,
  },
- [0x18A8B]={
+ [0x1B292]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-652",
+  description="NUSHU CHARACTER-1B292",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A8B,
+  unicodeslot=0x1B292,
  },
- [0x18A8C]={
+ [0x1B293]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-653",
+  description="NUSHU CHARACTER-1B293",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A8C,
+  unicodeslot=0x1B293,
  },
- [0x18A8D]={
+ [0x1B294]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-654",
+  description="NUSHU CHARACTER-1B294",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A8D,
+  unicodeslot=0x1B294,
  },
- [0x18A8E]={
+ [0x1B295]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-655",
+  description="NUSHU CHARACTER-1B295",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A8E,
+  unicodeslot=0x1B295,
  },
- [0x18A8F]={
+ [0x1B296]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-656",
+  description="NUSHU CHARACTER-1B296",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A8F,
+  unicodeslot=0x1B296,
  },
- [0x18A90]={
+ [0x1B297]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-657",
+  description="NUSHU CHARACTER-1B297",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A90,
+  unicodeslot=0x1B297,
  },
- [0x18A91]={
+ [0x1B298]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-658",
+  description="NUSHU CHARACTER-1B298",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A91,
+  unicodeslot=0x1B298,
  },
- [0x18A92]={
+ [0x1B299]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-659",
+  description="NUSHU CHARACTER-1B299",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A92,
+  unicodeslot=0x1B299,
  },
- [0x18A93]={
+ [0x1B29A]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-660",
+  description="NUSHU CHARACTER-1B29A",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A93,
+  unicodeslot=0x1B29A,
  },
- [0x18A94]={
+ [0x1B29B]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-661",
+  description="NUSHU CHARACTER-1B29B",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A94,
+  unicodeslot=0x1B29B,
  },
- [0x18A95]={
+ [0x1B29C]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-662",
+  description="NUSHU CHARACTER-1B29C",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A95,
+  unicodeslot=0x1B29C,
  },
- [0x18A96]={
+ [0x1B29D]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-663",
+  description="NUSHU CHARACTER-1B29D",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A96,
+  unicodeslot=0x1B29D,
  },
- [0x18A97]={
+ [0x1B29E]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-664",
+  description="NUSHU CHARACTER-1B29E",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A97,
+  unicodeslot=0x1B29E,
  },
- [0x18A98]={
+ [0x1B29F]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-665",
+  description="NUSHU CHARACTER-1B29F",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A98,
+  unicodeslot=0x1B29F,
  },
- [0x18A99]={
+ [0x1B2A0]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-666",
+  description="NUSHU CHARACTER-1B2A0",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A99,
+  unicodeslot=0x1B2A0,
  },
- [0x18A9A]={
+ [0x1B2A1]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-667",
+  description="NUSHU CHARACTER-1B2A1",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A9A,
+  unicodeslot=0x1B2A1,
  },
- [0x18A9B]={
+ [0x1B2A2]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-668",
+  description="NUSHU CHARACTER-1B2A2",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A9B,
+  unicodeslot=0x1B2A2,
  },
- [0x18A9C]={
+ [0x1B2A3]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-669",
+  description="NUSHU CHARACTER-1B2A3",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A9C,
+  unicodeslot=0x1B2A3,
  },
- [0x18A9D]={
+ [0x1B2A4]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-670",
+  description="NUSHU CHARACTER-1B2A4",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A9D,
+  unicodeslot=0x1B2A4,
  },
- [0x18A9E]={
+ [0x1B2A5]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-671",
+  description="NUSHU CHARACTER-1B2A5",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A9E,
+  unicodeslot=0x1B2A5,
  },
- [0x18A9F]={
+ [0x1B2A6]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-672",
+  description="NUSHU CHARACTER-1B2A6",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18A9F,
+  unicodeslot=0x1B2A6,
  },
- [0x18AA0]={
+ [0x1B2A7]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-673",
+  description="NUSHU CHARACTER-1B2A7",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AA0,
+  unicodeslot=0x1B2A7,
  },
- [0x18AA1]={
+ [0x1B2A8]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-674",
+  description="NUSHU CHARACTER-1B2A8",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AA1,
+  unicodeslot=0x1B2A8,
  },
- [0x18AA2]={
+ [0x1B2A9]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-675",
+  description="NUSHU CHARACTER-1B2A9",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AA2,
+  unicodeslot=0x1B2A9,
  },
- [0x18AA3]={
+ [0x1B2AA]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-676",
+  description="NUSHU CHARACTER-1B2AA",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AA3,
+  unicodeslot=0x1B2AA,
  },
- [0x18AA4]={
+ [0x1B2AB]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-677",
+  description="NUSHU CHARACTER-1B2AB",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AA4,
+  unicodeslot=0x1B2AB,
  },
- [0x18AA5]={
+ [0x1B2AC]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-678",
+  description="NUSHU CHARACTER-1B2AC",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AA5,
+  unicodeslot=0x1B2AC,
  },
- [0x18AA6]={
+ [0x1B2AD]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-679",
+  description="NUSHU CHARACTER-1B2AD",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AA6,
+  unicodeslot=0x1B2AD,
  },
- [0x18AA7]={
+ [0x1B2AE]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-680",
+  description="NUSHU CHARACTER-1B2AE",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AA7,
+  unicodeslot=0x1B2AE,
  },
- [0x18AA8]={
+ [0x1B2AF]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-681",
+  description="NUSHU CHARACTER-1B2AF",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AA8,
+  unicodeslot=0x1B2AF,
  },
- [0x18AA9]={
+ [0x1B2B0]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-682",
+  description="NUSHU CHARACTER-1B2B0",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AA9,
+  unicodeslot=0x1B2B0,
  },
- [0x18AAA]={
+ [0x1B2B1]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-683",
+  description="NUSHU CHARACTER-1B2B1",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AAA,
+  unicodeslot=0x1B2B1,
  },
- [0x18AAB]={
+ [0x1B2B2]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-684",
+  description="NUSHU CHARACTER-1B2B2",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AAB,
+  unicodeslot=0x1B2B2,
  },
- [0x18AAC]={
+ [0x1B2B3]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-685",
+  description="NUSHU CHARACTER-1B2B3",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AAC,
+  unicodeslot=0x1B2B3,
  },
- [0x18AAD]={
+ [0x1B2B4]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-686",
+  description="NUSHU CHARACTER-1B2B4",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AAD,
+  unicodeslot=0x1B2B4,
  },
- [0x18AAE]={
+ [0x1B2B5]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-687",
+  description="NUSHU CHARACTER-1B2B5",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AAE,
+  unicodeslot=0x1B2B5,
  },
- [0x18AAF]={
+ [0x1B2B6]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-688",
+  description="NUSHU CHARACTER-1B2B6",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AAF,
+  unicodeslot=0x1B2B6,
  },
- [0x18AB0]={
+ [0x1B2B7]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-689",
+  description="NUSHU CHARACTER-1B2B7",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AB0,
+  unicodeslot=0x1B2B7,
  },
- [0x18AB1]={
+ [0x1B2B8]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-690",
+  description="NUSHU CHARACTER-1B2B8",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AB1,
+  unicodeslot=0x1B2B8,
  },
- [0x18AB2]={
+ [0x1B2B9]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-691",
+  description="NUSHU CHARACTER-1B2B9",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AB2,
+  unicodeslot=0x1B2B9,
  },
- [0x18AB3]={
+ [0x1B2BA]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-692",
+  description="NUSHU CHARACTER-1B2BA",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AB3,
+  unicodeslot=0x1B2BA,
  },
- [0x18AB4]={
+ [0x1B2BB]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-693",
+  description="NUSHU CHARACTER-1B2BB",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AB4,
+  unicodeslot=0x1B2BB,
  },
- [0x18AB5]={
+ [0x1B2BC]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-694",
+  description="NUSHU CHARACTER-1B2BC",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AB5,
+  unicodeslot=0x1B2BC,
  },
- [0x18AB6]={
+ [0x1B2BD]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-695",
+  description="NUSHU CHARACTER-1B2BD",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AB6,
+  unicodeslot=0x1B2BD,
  },
- [0x18AB7]={
+ [0x1B2BE]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-696",
+  description="NUSHU CHARACTER-1B2BE",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AB7,
+  unicodeslot=0x1B2BE,
  },
- [0x18AB8]={
+ [0x1B2BF]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-697",
+  description="NUSHU CHARACTER-1B2BF",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AB8,
+  unicodeslot=0x1B2BF,
  },
- [0x18AB9]={
+ [0x1B2C0]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-698",
+  description="NUSHU CHARACTER-1B2C0",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AB9,
+  unicodeslot=0x1B2C0,
  },
- [0x18ABA]={
+ [0x1B2C1]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-699",
+  description="NUSHU CHARACTER-1B2C1",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ABA,
+  unicodeslot=0x1B2C1,
  },
- [0x18ABB]={
+ [0x1B2C2]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-700",
+  description="NUSHU CHARACTER-1B2C2",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ABB,
+  unicodeslot=0x1B2C2,
  },
- [0x18ABC]={
+ [0x1B2C3]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-701",
+  description="NUSHU CHARACTER-1B2C3",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ABC,
+  unicodeslot=0x1B2C3,
  },
- [0x18ABD]={
+ [0x1B2C4]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-702",
+  description="NUSHU CHARACTER-1B2C4",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ABD,
+  unicodeslot=0x1B2C4,
  },
- [0x18ABE]={
+ [0x1B2C5]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-703",
+  description="NUSHU CHARACTER-1B2C5",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ABE,
+  unicodeslot=0x1B2C5,
  },
- [0x18ABF]={
+ [0x1B2C6]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-704",
+  description="NUSHU CHARACTER-1B2C6",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ABF,
+  unicodeslot=0x1B2C6,
  },
- [0x18AC0]={
+ [0x1B2C7]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-705",
+  description="NUSHU CHARACTER-1B2C7",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AC0,
+  unicodeslot=0x1B2C7,
  },
- [0x18AC1]={
+ [0x1B2C8]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-706",
+  description="NUSHU CHARACTER-1B2C8",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AC1,
+  unicodeslot=0x1B2C8,
  },
- [0x18AC2]={
+ [0x1B2C9]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-707",
+  description="NUSHU CHARACTER-1B2C9",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AC2,
+  unicodeslot=0x1B2C9,
  },
- [0x18AC3]={
+ [0x1B2CA]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-708",
+  description="NUSHU CHARACTER-1B2CA",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AC3,
+  unicodeslot=0x1B2CA,
  },
- [0x18AC4]={
+ [0x1B2CB]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-709",
+  description="NUSHU CHARACTER-1B2CB",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AC4,
+  unicodeslot=0x1B2CB,
  },
- [0x18AC5]={
+ [0x1B2CC]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-710",
+  description="NUSHU CHARACTER-1B2CC",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AC5,
+  unicodeslot=0x1B2CC,
  },
- [0x18AC6]={
+ [0x1B2CD]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-711",
+  description="NUSHU CHARACTER-1B2CD",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AC6,
+  unicodeslot=0x1B2CD,
  },
- [0x18AC7]={
+ [0x1B2CE]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-712",
+  description="NUSHU CHARACTER-1B2CE",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AC7,
+  unicodeslot=0x1B2CE,
  },
- [0x18AC8]={
+ [0x1B2CF]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-713",
+  description="NUSHU CHARACTER-1B2CF",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AC8,
+  unicodeslot=0x1B2CF,
  },
- [0x18AC9]={
+ [0x1B2D0]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-714",
+  description="NUSHU CHARACTER-1B2D0",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AC9,
+  unicodeslot=0x1B2D0,
  },
- [0x18ACA]={
+ [0x1B2D1]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-715",
+  description="NUSHU CHARACTER-1B2D1",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ACA,
+  unicodeslot=0x1B2D1,
  },
- [0x18ACB]={
+ [0x1B2D2]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-716",
+  description="NUSHU CHARACTER-1B2D2",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ACB,
+  unicodeslot=0x1B2D2,
  },
- [0x18ACC]={
+ [0x1B2D3]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-717",
+  description="NUSHU CHARACTER-1B2D3",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ACC,
+  unicodeslot=0x1B2D3,
  },
- [0x18ACD]={
+ [0x1B2D4]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-718",
+  description="NUSHU CHARACTER-1B2D4",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ACD,
+  unicodeslot=0x1B2D4,
  },
- [0x18ACE]={
+ [0x1B2D5]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-719",
+  description="NUSHU CHARACTER-1B2D5",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ACE,
+  unicodeslot=0x1B2D5,
  },
- [0x18ACF]={
+ [0x1B2D6]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-720",
+  description="NUSHU CHARACTER-1B2D6",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ACF,
+  unicodeslot=0x1B2D6,
  },
- [0x18AD0]={
+ [0x1B2D7]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-721",
+  description="NUSHU CHARACTER-1B2D7",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AD0,
+  unicodeslot=0x1B2D7,
  },
- [0x18AD1]={
+ [0x1B2D8]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-722",
+  description="NUSHU CHARACTER-1B2D8",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AD1,
+  unicodeslot=0x1B2D8,
  },
- [0x18AD2]={
+ [0x1B2D9]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-723",
+  description="NUSHU CHARACTER-1B2D9",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AD2,
+  unicodeslot=0x1B2D9,
  },
- [0x18AD3]={
+ [0x1B2DA]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-724",
+  description="NUSHU CHARACTER-1B2DA",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AD3,
+  unicodeslot=0x1B2DA,
  },
- [0x18AD4]={
+ [0x1B2DB]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-725",
+  description="NUSHU CHARACTER-1B2DB",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AD4,
+  unicodeslot=0x1B2DB,
  },
- [0x18AD5]={
+ [0x1B2DC]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-726",
+  description="NUSHU CHARACTER-1B2DC",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AD5,
+  unicodeslot=0x1B2DC,
  },
- [0x18AD6]={
+ [0x1B2DD]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-727",
+  description="NUSHU CHARACTER-1B2DD",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AD6,
+  unicodeslot=0x1B2DD,
  },
- [0x18AD7]={
+ [0x1B2DE]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-728",
+  description="NUSHU CHARACTER-1B2DE",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AD7,
+  unicodeslot=0x1B2DE,
  },
- [0x18AD8]={
+ [0x1B2DF]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-729",
+  description="NUSHU CHARACTER-1B2DF",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AD8,
+  unicodeslot=0x1B2DF,
  },
- [0x18AD9]={
+ [0x1B2E0]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-730",
+  description="NUSHU CHARACTER-1B2E0",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AD9,
+  unicodeslot=0x1B2E0,
  },
- [0x18ADA]={
+ [0x1B2E1]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-731",
+  description="NUSHU CHARACTER-1B2E1",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ADA,
+  unicodeslot=0x1B2E1,
  },
- [0x18ADB]={
+ [0x1B2E2]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-732",
+  description="NUSHU CHARACTER-1B2E2",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ADB,
+  unicodeslot=0x1B2E2,
  },
- [0x18ADC]={
+ [0x1B2E3]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-733",
+  description="NUSHU CHARACTER-1B2E3",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ADC,
+  unicodeslot=0x1B2E3,
  },
- [0x18ADD]={
+ [0x1B2E4]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-734",
+  description="NUSHU CHARACTER-1B2E4",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ADD,
+  unicodeslot=0x1B2E4,
  },
- [0x18ADE]={
+ [0x1B2E5]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-735",
+  description="NUSHU CHARACTER-1B2E5",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ADE,
+  unicodeslot=0x1B2E5,
  },
- [0x18ADF]={
+ [0x1B2E6]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-736",
+  description="NUSHU CHARACTER-1B2E6",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18ADF,
+  unicodeslot=0x1B2E6,
  },
- [0x18AE0]={
+ [0x1B2E7]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-737",
+  description="NUSHU CHARACTER-1B2E7",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AE0,
+  unicodeslot=0x1B2E7,
  },
- [0x18AE1]={
+ [0x1B2E8]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-738",
+  description="NUSHU CHARACTER-1B2E8",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AE1,
+  unicodeslot=0x1B2E8,
  },
- [0x18AE2]={
+ [0x1B2E9]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-739",
+  description="NUSHU CHARACTER-1B2E9",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AE2,
+  unicodeslot=0x1B2E9,
  },
- [0x18AE3]={
+ [0x1B2EA]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-740",
+  description="NUSHU CHARACTER-1B2EA",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AE3,
+  unicodeslot=0x1B2EA,
  },
- [0x18AE4]={
+ [0x1B2EB]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-741",
+  description="NUSHU CHARACTER-1B2EB",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AE4,
+  unicodeslot=0x1B2EB,
  },
- [0x18AE5]={
+ [0x1B2EC]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-742",
+  description="NUSHU CHARACTER-1B2EC",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AE5,
+  unicodeslot=0x1B2EC,
  },
- [0x18AE6]={
+ [0x1B2ED]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-743",
+  description="NUSHU CHARACTER-1B2ED",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AE6,
+  unicodeslot=0x1B2ED,
  },
- [0x18AE7]={
+ [0x1B2EE]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-744",
+  description="NUSHU CHARACTER-1B2EE",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AE7,
+  unicodeslot=0x1B2EE,
  },
- [0x18AE8]={
+ [0x1B2EF]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-745",
+  description="NUSHU CHARACTER-1B2EF",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AE8,
+  unicodeslot=0x1B2EF,
  },
- [0x18AE9]={
+ [0x1B2F0]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-746",
+  description="NUSHU CHARACTER-1B2F0",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AE9,
+  unicodeslot=0x1B2F0,
  },
- [0x18AEA]={
+ [0x1B2F1]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-747",
+  description="NUSHU CHARACTER-1B2F1",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AEA,
+  unicodeslot=0x1B2F1,
  },
- [0x18AEB]={
+ [0x1B2F2]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-748",
+  description="NUSHU CHARACTER-1B2F2",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AEB,
+  unicodeslot=0x1B2F2,
  },
- [0x18AEC]={
+ [0x1B2F3]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-749",
+  description="NUSHU CHARACTER-1B2F3",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AEC,
+  unicodeslot=0x1B2F3,
  },
- [0x18AED]={
+ [0x1B2F4]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-750",
+  description="NUSHU CHARACTER-1B2F4",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AED,
+  unicodeslot=0x1B2F4,
  },
- [0x18AEE]={
+ [0x1B2F5]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-751",
+  description="NUSHU CHARACTER-1B2F5",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AEE,
+  unicodeslot=0x1B2F5,
  },
- [0x18AEF]={
+ [0x1B2F6]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-752",
+  description="NUSHU CHARACTER-1B2F6",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AEF,
+  unicodeslot=0x1B2F6,
  },
- [0x18AF0]={
+ [0x1B2F7]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-753",
+  description="NUSHU CHARACTER-1B2F7",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AF0,
+  unicodeslot=0x1B2F7,
  },
- [0x18AF1]={
+ [0x1B2F8]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-754",
+  description="NUSHU CHARACTER-1B2F8",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AF1,
+  unicodeslot=0x1B2F8,
  },
- [0x18AF2]={
+ [0x1B2F9]={
   category="lo",
   cjkwd="w",
-  description="TANGUT COMPONENT-755",
+  description="NUSHU CHARACTER-1B2F9",
   direction="l",
   linebreak="id",
-  unicodeslot=0x18AF2,
+  unicodeslot=0x1B2F9,
  },
- [0x1B000]={
+ [0x1B2FA]={
   category="lo",
   cjkwd="w",
-  description="KATAKANA LETTER ARCHAIC E",
+  description="NUSHU CHARACTER-1B2FA",
   direction="l",
   linebreak="id",
-  unicodeslot=0x1B000,
+  unicodeslot=0x1B2FA,
  },
- [0x1B001]={
+ [0x1B2FB]={
   category="lo",
   cjkwd="w",
-  description="HIRAGANA LETTER ARCHAIC YE",
+  description="NUSHU CHARACTER-1B2FB",
   direction="l",
   linebreak="id",
-  unicodeslot=0x1B001,
+  unicodeslot=0x1B2FB,
  },
  [0x1BC00]={
   category="lo",
@@ -222452,6 +229794,54 @@ characters.data={
   specials={ "circle", 0x53EF },
   unicodeslot=0x1F251,
  },
+ [0x1F260]={
+  category="so",
+  cjkwd="w",
+  description="ROUNDED SYMBOL FOR FU",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F260,
+ },
+ [0x1F261]={
+  category="so",
+  cjkwd="w",
+  description="ROUNDED SYMBOL FOR LU",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F261,
+ },
+ [0x1F262]={
+  category="so",
+  cjkwd="w",
+  description="ROUNDED SYMBOL FOR SHOU",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F262,
+ },
+ [0x1F263]={
+  category="so",
+  cjkwd="w",
+  description="ROUNDED SYMBOL FOR XI",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F263,
+ },
+ [0x1F264]={
+  category="so",
+  cjkwd="w",
+  description="ROUNDED SYMBOL FOR SHUANGXI",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F264,
+ },
+ [0x1F265]={
+  category="so",
+  cjkwd="w",
+  description="ROUNDED SYMBOL FOR CAI",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F265,
+ },
  [0x1F300]={
   category="so",
   cjkwd="w",
@@ -224008,7 +231398,7 @@ characters.data={
   cjkwd="w",
   description="SNOWBOARDER",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F3C2,
  },
  [0x1F3C3]={
@@ -224048,7 +231438,7 @@ characters.data={
   cjkwd="w",
   description="HORSE RACING",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F3C7,
  },
  [0x1F3C8]={
@@ -224087,7 +231477,7 @@ characters.data={
   category="so",
   description="GOLFER",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F3CC,
   variants=variants_emoji,
  },
@@ -227468,7 +234858,7 @@ characters.data={
   category="so",
   description="MAN IN BUSINESS SUIT LEVITATING",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F574,
   variants=variants_emoji,
  },
@@ -230074,7 +237464,7 @@ characters.data={
   cjkwd="w",
   description="SLEEPING ACCOMMODATION",
   direction="on",
-  linebreak="id",
+  linebreak="eb",
   unicodeslot=0x1F6CC,
  },
  [0x1F6CD]={
@@ -230127,6 +237517,20 @@ characters.data={
   synonyms={ "shopping cart" },
   unicodeslot=0x1F6D2,
  },
+ [0x1F6D3]={
+  category="so",
+  description="STUPA",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F6D3,
+ },
+ [0x1F6D4]={
+  category="so",
+  description="PAGODA",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F6D4,
+ },
  [0x1F6E0]={
   category="so",
   description="HAMMER AND WRENCH",
@@ -230281,6 +237685,22 @@ characters.data={
   linebreak="id",
   unicodeslot=0x1F6F6,
  },
+ [0x1F6F7]={
+  category="so",
+  cjkwd="w",
+  description="SLED",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F6F7,
+ },
+ [0x1F6F8]={
+  category="so",
+  cjkwd="w",
+  description="FLYING SAUCER",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F6F8,
+ },
  [0x1F700]={
   category="so",
   description="ALCHEMICAL SYMBOL FOR QUINTESSENCE",
@@ -232725,6 +240145,90 @@ characters.data={
   linebreak="al",
   unicodeslot=0x1F8AD,
  },
+ [0x1F900]={
+  category="so",
+  description="CIRCLED CROSS FORMEE WITH FOUR DOTS",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F900,
+ },
+ [0x1F901]={
+  category="so",
+  description="CIRCLED CROSS FORMEE WITH TWO DOTS",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F901,
+ },
+ [0x1F902]={
+  category="so",
+  description="CIRCLED CROSS FORMEE",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F902,
+ },
+ [0x1F903]={
+  category="so",
+  description="LEFT HALF CIRCLE WITH FOUR DOTS",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F903,
+ },
+ [0x1F904]={
+  category="so",
+  description="LEFT HALF CIRCLE WITH THREE DOTS",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F904,
+ },
+ [0x1F905]={
+  category="so",
+  description="LEFT HALF CIRCLE WITH TWO DOTS",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F905,
+ },
+ [0x1F906]={
+  category="so",
+  description="LEFT HALF CIRCLE WITH DOT",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F906,
+ },
+ [0x1F907]={
+  category="so",
+  description="LEFT HALF CIRCLE",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F907,
+ },
+ [0x1F908]={
+  category="so",
+  description="DOWNWARD FACING HOOK",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F908,
+ },
+ [0x1F909]={
+  category="so",
+  description="DOWNWARD FACING NOTCHED HOOK",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F909,
+ },
+ [0x1F90A]={
+  category="so",
+  description="DOWNWARD FACING HOOK WITH DOT",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F90A,
+ },
+ [0x1F90B]={
+  category="so",
+  description="DOWNWARD FACING NOTCHED HOOK WITH DOT",
+  direction="on",
+  linebreak="al",
+  unicodeslot=0x1F90B,
+ },
  [0x1F910]={
   category="so",
   cjkwd="w",
@@ -232834,7 +240338,7 @@ characters.data={
   cjkwd="w",
   description="HANDSHAKE",
   direction="on",
-  linebreak="eb",
+  linebreak="id",
   unicodeslot=0x1F91D,
  },
  [0x1F91E]={
@@ -232846,6 +240350,15 @@ characters.data={
   synonyms={ "crossed fingers", "fingers crossed" },
   unicodeslot=0x1F91E,
  },
+ [0x1F91F]={
+  category="so",
+  cjkwd="w",
+  description="I LOVE YOU HAND SIGN",
+  direction="on",
+  linebreak="eb",
+  synonyms={ "hand sign love" },
+  unicodeslot=0x1F91F,
+ },
  [0x1F920]={
   category="so",
   cjkwd="w",
@@ -232911,6 +240424,70 @@ characters.data={
   linebreak="id",
   unicodeslot=0x1F927,
  },
+ [0x1F928]={
+  category="so",
+  cjkwd="w",
+  description="FACE WITH ONE EYEBROW RAISED",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F928,
+ },
+ [0x1F929]={
+  category="so",
+  cjkwd="w",
+  description="GRINNING FACE WITH STAR EYES",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F929,
+ },
+ [0x1F92A]={
+  category="so",
+  cjkwd="w",
+  description="GRINNING FACE WITH ONE LARGE AND ONE SMALL EYE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F92A,
+ },
+ [0x1F92B]={
+  category="so",
+  cjkwd="w",
+  description="FACE WITH FINGER COVERING CLOSED LIPS",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F92B,
+ },
+ [0x1F92C]={
+  category="so",
+  cjkwd="w",
+  description="SERIOUS FACE WITH SYMBOLS COVERING MOUTH",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F92C,
+ },
+ [0x1F92D]={
+  category="so",
+  cjkwd="w",
+  description="SMILING FACE WITH SMILING EYES AND HAND COVERING MOUTH",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F92D,
+ },
+ [0x1F92E]={
+  category="so",
+  cjkwd="w",
+  description="FACE WITH OPEN MOUTH VOMITING",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F92E,
+ },
+ [0x1F92F]={
+  category="so",
+  cjkwd="w",
+  description="SHOCKED FACE WITH EXPLODING HEAD",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F92F,
+ },
  [0x1F930]={
   category="so",
   cjkwd="w",
@@ -232919,6 +240496,22 @@ characters.data={
   linebreak="eb",
   unicodeslot=0x1F930,
  },
+ [0x1F931]={
+  category="so",
+  cjkwd="w",
+  description="BREAST-FEEDING",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F931,
+ },
+ [0x1F932]={
+  category="so",
+  cjkwd="w",
+  description="PALMS UP TOGETHER",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F932,
+ },
  [0x1F933]={
   category="so",
   cjkwd="w",
@@ -232996,7 +240589,7 @@ characters.data={
   cjkwd="w",
   description="WRESTLERS",
   direction="on",
-  linebreak="eb",
+  linebreak="id",
   unicodeslot=0x1F93C,
  },
  [0x1F93D]={
@@ -233114,6 +240707,14 @@ characters.data={
   linebreak="id",
   unicodeslot=0x1F94B,
  },
+ [0x1F94C]={
+  category="so",
+  cjkwd="w",
+  description="CURLING STONE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F94C,
+ },
  [0x1F950]={
   category="so",
   cjkwd="w",
@@ -233235,6 +240836,110 @@ characters.data={
   linebreak="id",
   unicodeslot=0x1F95E,
  },
+ [0x1F95F]={
+  category="so",
+  cjkwd="w",
+  description="DUMPLING",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F95F,
+ },
+ [0x1F960]={
+  category="so",
+  cjkwd="w",
+  description="FORTUNE COOKIE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F960,
+ },
+ [0x1F961]={
+  category="so",
+  cjkwd="w",
+  description="TAKEOUT BOX",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F961,
+ },
+ [0x1F962]={
+  category="so",
+  cjkwd="w",
+  description="CHOPSTICKS",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F962,
+ },
+ [0x1F963]={
+  category="so",
+  cjkwd="w",
+  description="BOWL WITH SPOON",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F963,
+ },
+ [0x1F964]={
+  category="so",
+  cjkwd="w",
+  description="CUP WITH STRAW",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F964,
+ },
+ [0x1F965]={
+  category="so",
+  cjkwd="w",
+  description="COCONUT",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F965,
+ },
+ [0x1F966]={
+  category="so",
+  cjkwd="w",
+  description="BROCCOLI",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F966,
+ },
+ [0x1F967]={
+  category="so",
+  cjkwd="w",
+  description="PIE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F967,
+ },
+ [0x1F968]={
+  category="so",
+  cjkwd="w",
+  description="PRETZEL",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F968,
+ },
+ [0x1F969]={
+  category="so",
+  cjkwd="w",
+  description="CUT OF MEAT",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F969,
+ },
+ [0x1F96A]={
+  category="so",
+  cjkwd="w",
+  description="SANDWICH",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F96A,
+ },
+ [0x1F96B]={
+  category="so",
+  cjkwd="w",
+  description="CANNED FOOD",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F96B,
+ },
  [0x1F980]={
   category="so",
   cjkwd="w",
@@ -233379,6 +241084,55 @@ characters.data={
   linebreak="id",
   unicodeslot=0x1F991,
  },
+ [0x1F992]={
+  category="so",
+  cjkwd="w",
+  description="GIRAFFE FACE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F992,
+ },
+ [0x1F993]={
+  category="so",
+  cjkwd="w",
+  description="ZEBRA FACE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F993,
+ },
+ [0x1F994]={
+  category="so",
+  cjkwd="w",
+  description="HEDGEHOG",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F994,
+ },
+ [0x1F995]={
+  category="so",
+  cjkwd="w",
+  description="SAUROPOD",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F995,
+ },
+ [0x1F996]={
+  category="so",
+  cjkwd="w",
+  description="T-REX",
+  direction="on",
+  linebreak="id",
+  synonyms={ "tyrannosaurus rex" },
+  unicodeslot=0x1F996,
+ },
+ [0x1F997]={
+  category="so",
+  cjkwd="w",
+  description="CRICKET",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F997,
+ },
  [0x1F9C0]={
   category="so",
   cjkwd="w",
@@ -233387,6 +241141,190 @@ characters.data={
   linebreak="id",
   unicodeslot=0x1F9C0,
  },
+ [0x1F9D0]={
+  category="so",
+  cjkwd="w",
+  description="FACE WITH MONOCLE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F9D0,
+ },
+ [0x1F9D1]={
+  category="so",
+  cjkwd="w",
+  description="ADULT",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9D1,
+ },
+ [0x1F9D2]={
+  category="so",
+  cjkwd="w",
+  description="CHILD",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9D2,
+ },
+ [0x1F9D3]={
+  category="so",
+  cjkwd="w",
+  description="OLDER ADULT",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9D3,
+ },
+ [0x1F9D4]={
+  category="so",
+  cjkwd="w",
+  description="BEARDED PERSON",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9D4,
+ },
+ [0x1F9D5]={
+  category="so",
+  cjkwd="w",
+  description="PERSON WITH HEADSCARF",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9D5,
+ },
+ [0x1F9D6]={
+  category="so",
+  cjkwd="w",
+  description="PERSON IN STEAMY ROOM",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9D6,
+ },
+ [0x1F9D7]={
+  category="so",
+  cjkwd="w",
+  description="PERSON CLIMBING",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9D7,
+ },
+ [0x1F9D8]={
+  category="so",
+  cjkwd="w",
+  description="PERSON IN LOTUS POSITION",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9D8,
+ },
+ [0x1F9D9]={
+  category="so",
+  cjkwd="w",
+  description="MAGE",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9D9,
+ },
+ [0x1F9DA]={
+  category="so",
+  cjkwd="w",
+  description="FAIRY",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9DA,
+ },
+ [0x1F9DB]={
+  category="so",
+  cjkwd="w",
+  description="VAMPIRE",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9DB,
+ },
+ [0x1F9DC]={
+  category="so",
+  cjkwd="w",
+  description="MERPERSON",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9DC,
+ },
+ [0x1F9DD]={
+  category="so",
+  cjkwd="w",
+  description="ELF",
+  direction="on",
+  linebreak="eb",
+  unicodeslot=0x1F9DD,
+ },
+ [0x1F9DE]={
+  category="so",
+  cjkwd="w",
+  description="GENIE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F9DE,
+ },
+ [0x1F9DF]={
+  category="so",
+  cjkwd="w",
+  description="ZOMBIE",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F9DF,
+ },
+ [0x1F9E0]={
+  category="so",
+  cjkwd="w",
+  description="BRAIN",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F9E0,
+ },
+ [0x1F9E1]={
+  category="so",
+  cjkwd="w",
+  description="ORANGE HEART",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F9E1,
+ },
+ [0x1F9E2]={
+  category="so",
+  cjkwd="w",
+  description="BILLED CAP",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F9E2,
+ },
+ [0x1F9E3]={
+  category="so",
+  cjkwd="w",
+  description="SCARF",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F9E3,
+ },
+ [0x1F9E4]={
+  category="so",
+  cjkwd="w",
+  description="GLOVES",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F9E4,
+ },
+ [0x1F9E5]={
+  category="so",
+  cjkwd="w",
+  description="COAT",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F9E5,
+ },
+ [0x1F9E6]={
+  category="so",
+  cjkwd="w",
+  description="SOCKS",
+  direction="on",
+  linebreak="id",
+  unicodeslot=0x1F9E6,
+ },
  [0x2F800]={
   category="lo",
   cjkwd="w",
diff --git a/tex/context/base/mkiv/char-ini.lua b/tex/context/base/mkiv/char-ini.lua
index 8fe852b58..07fb604c1 100644
--- a/tex/context/base/mkiv/char-ini.lua
+++ b/tex/context/base/mkiv/char-ini.lua
@@ -233,6 +233,7 @@ local blocks = allocate {
     ["cjkunifiedideographsextensionc"]             = { first = 0x2A700, last = 0x2B73F,             description = "CJK Unified Ideographs Extension C" },
     ["cjkunifiedideographsextensiond"]             = { first = 0x2B740, last = 0x2B81F,             description = "CJK Unified Ideographs Extension D" },
     ["cjkunifiedideographsextensione"]             = { first = 0x2B820, last = 0x2CEAF,             description = "CJK Unified Ideographs Extension E" },
+    ["cjkunifiedideographsextensionf"]             = { first = 0x2CEB0, last = 0x2EBEF,             description = "CJK Unified Ideographs Extension F" },
     ["combiningdiacriticalmarks"]                  = { first = 0x00300, last = 0x0036F,             description = "Combining Diacritical Marks" },
     ["combiningdiacriticalmarksextended"]          = { first = 0x01AB0, last = 0x01AFF,             description = "Combining Diacritical Marks Extended" },
     ["combiningdiacriticalmarksforsymbols"]        = { first = 0x020D0, last = 0x020FF,             description = "Combining Diacritical Marks for Symbols" },
@@ -328,6 +329,7 @@ local blocks = allocate {
     ["ipaextensions"]                              = { first = 0x00250, last = 0x002AF,              description = "IPA Extensions" },
     ["javanese"]                                   = { first = 0x0A980, last = 0x0A9DF,              description = "Javanese" },
     ["kaithi"]                                     = { first = 0x11080, last = 0x110CF,              description = "Kaithi" },
+    ["kanaextendeda"]                              = { first = 0x1B100, last = 0x1B12F,              description = "Kana Extended-A" },
     ["kanasupplement"]                             = { first = 0x1B000, last = 0x1B0FF,              description = "Kana Supplement" },
     ["kanbun"]                                     = { first = 0x03190, last = 0x0319F,              description = "Kanbun" },
     ["kangxiradicals"]                             = { first = 0x02F00, last = 0x02FDF,              description = "Kangxi Radicals" },
@@ -384,6 +386,7 @@ local blocks = allocate {
     ["mandaic"]                                    = { first = 0x00840, last = 0x0085F, otf="mand",  description = "Mandaic" },
     ["manichaean"]                                 = { first = 0x10AC0, last = 0x10AFF,              description = "Manichaean" },
     ["marchen"]                                    = { first = 0x11C70, last = 0x11CBF,              description = "Marchen" },
+    ["masaramgondi"]                               = { first = 0x11D00, last = 0x11D5F,              description = "Masaram Gondi" },
     ["mathematicalalphanumericsymbols"]            = { first = 0x1D400, last = 0x1D7FF, math = true, description = "Mathematical Alphanumeric Symbols" },
     ["mathematicaloperators"]                      = { first = 0x02200, last = 0x022FF, math = true, description = "Mathematical Operators" },
     ["meeteimayek"]                                = { first = 0x0ABC0, last = 0x0ABFF,              description = "Meetei Mayek" },
@@ -413,6 +416,7 @@ local blocks = allocate {
     ["newtailue"]                                  = { first = 0x01980, last = 0x019DF,              description = "New Tai Lue" },
     ["nko"]                                        = { first = 0x007C0, last = 0x007FF, otf="nko",   description = "NKo" },
     ["numberforms"]                                = { first = 0x02150, last = 0x0218F,              description = "Number Forms" },
+    ["nushu"]                                      = { first = 0x1B170, last = 0x1B2FF,              description = "Nushu" },
     ["ogham"]                                      = { first = 0x01680, last = 0x0169F, otf="ogam",  description = "Ogham" },
     ["olchiki"]                                    = { first = 0x01C50, last = 0x01C7F,              description = "Ol Chiki" },
     ["oldhungarian"]                               = { first = 0x10C80, last = 0x10CFF,              description = "Old Hungarian" },
@@ -451,6 +455,7 @@ local blocks = allocate {
     ["sinhalaarchaicnumbers"]                      = { first = 0x111E0, last = 0x111FF,              description = "Sinhala Archaic Numbers" },
     ["smallformvariants"]                          = { first = 0x0FE50, last = 0x0FE6F,              description = "Small Form Variants" },
     ["sorasompeng"]                                = { first = 0x110D0, last = 0x110FF,              description = "Sora Sompeng" },
+    ["soyombo"]                                    = { first = 0x11A50, last = 0x11AAF,              description = "Soyombo" },
     ["spacingmodifierletters"]                     = { first = 0x002B0, last = 0x002FF,              description = "Spacing Modifier Letters" },
     ["specials"]                                   = { first = 0x0FFF0, last = 0x0FFFF,              description = "Specials" },
     ["sundanese"]                                  = { first = 0x01B80, last = 0x01BBF,              description = "Sundanese" },
@@ -467,6 +472,7 @@ local blocks = allocate {
     ["suttonsignwriting"]                          = { first = 0x1D800, last = 0x1DAAF,              description = "Sutton SignWriting" },
     ["sylotinagri"]                                = { first = 0x0A800, last = 0x0A82F, otf="sylo",  description = "Syloti Nagri" },
     ["syriac"]                                     = { first = 0x00700, last = 0x0074F, otf="syrc",  description = "Syriac" },
+    ["syriacsupplement"]                           = { first = 0x00860, last = 0x0086F,              description = "Syriac Supplement" },
     ["tagalog"]                                    = { first = 0x01700, last = 0x0171F, otf="tglg",  description = "Tagalog" },
     ["tagbanwa"]                                   = { first = 0x01760, last = 0x0177F, otf="tagb",  description = "Tagbanwa" },
     ["tags"]                                       = { first = 0xE0000, last = 0xE007F,              description = "Tags" },
@@ -517,6 +523,7 @@ local blocks = allocate {
     ["yijinghexagramsymbols"]                      = { first = 0x04DC0, last = 0x04DFF, otf="yi",    description = "Yijing Hexagram Symbols" },
     ["yiradicals"]                                 = { first = 0x0A490, last = 0x0A4CF, otf="yi",    description = "Yi Radicals" },
     ["yisyllables"]                                = { first = 0x0A000, last = 0x0A48F, otf="yi",    description = "Yi Syllables" },
+    ["zanabazarsquare"]                            = { first = 0x11A00, last = 0x11A4F,              description = "Zanabazar Square" },
 }
 
 characters.blocks = blocks
@@ -1544,35 +1551,35 @@ local cache = setmetatable({ }, { __mode = "k" } )
         if h then
             return h
         end
-local h = cache[name]
-if h then
-    return h
-elseif h == false then
-    return
-end
+        local h = cache[name]
+        if h then
+            return h
+        elseif h == false then
+            return
+        end
         -- expand shortcuts
         local name = lpegmatch(pattern_0,name) or name
         -- expand some 25K variants
         local h = lpegmatch(p_special,name)
         if h then
-cache[name] = h
+            cache[name] = h
             return h
         end
         -- simplify
         local s = lpegmatch(pattern_1,name)
         local h = hash[s]
         if h then
-cache[name] = h
+            cache[name] = h
             return h
         end
         -- simplify
         local s = lpegmatch(pattern_2,name)
         local h = hash[s]
         if h then
-cache[name] = h
+            cache[name] = h
             return h
         end
-cache[name] = false
+        cache[name] = false
     end
 
     function emoji.known()
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index bb8da4b5d..03e69e0a5 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -11,7 +11,7 @@
 %C therefore copyrighted by \PRAGMA. See mreadme.pdf for
 %C details.
 
-\newcontextversion{2017.06.21 23:03}
+\newcontextversion{2017.06.27 18:05}
 
 %D This file is loaded at runtime, thereby providing an excellent place for
 %D hacks, patches, extensions and new features.
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 9c7b16b7d..e7ad05eb5 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -41,7 +41,7 @@
 %D up and the dependencies are more consistent.
 
 \edef\contextformat {\jobname}
-\edef\contextversion{2017.06.21 23:03}
+\edef\contextversion{2017.06.27 18:05}
 \edef\contextkind   {beta}
 
 %D For those who want to use this:
diff --git a/tex/context/base/mkiv/font-ctx.lua b/tex/context/base/mkiv/font-ctx.lua
index f2b3b001c..8f7eed4b9 100644
--- a/tex/context/base/mkiv/font-ctx.lua
+++ b/tex/context/base/mkiv/font-ctx.lua
@@ -2543,25 +2543,7 @@ end
 
 -- a fontkern plug:
 
-do
-
-    local kerncodes = nodes.kerncodes
-    local copy_node = nuts.copy
-    local kern      = nuts.pool.register(nuts.pool.kern())
-
-    setattr(kern,attributes.private('fontkern'),1) -- no gain in setprop as it's shared
-
-    nodes.injections.installnewkern(function(k)
-        local c = copy_node(kern)
-        setfield(c,"kern",k)
-        return c
-    end)
-
-    directives.register("fonts.injections.fontkern", function(v)
-        setsubtype(kern,v and kerncodes.fontkern or kerncodes.userkern)
-    end)
-
-end
+nodes.injections.installnewkern(nuts.pool.fontkern)
 
 do
 
diff --git a/tex/context/base/mkiv/font-ext.lua b/tex/context/base/mkiv/font-ext.lua
index da629c045..85e39e877 100644
--- a/tex/context/base/mkiv/font-ext.lua
+++ b/tex/context/base/mkiv/font-ext.lua
@@ -7,9 +7,9 @@ if not modules then modules = { } end modules ['font-ext'] = {
 }
 
 local next, type, tonumber = next, type, tonumber
-local formatters = string.formatters
-local byte = string.byte
+local byte, find, formatters = string.byte, string.find, string.formatters
 local utfchar = utf.char
+local sortedhash, sortedkeys, sort = table.sortedhash, table.sortedkeys, table.sort
 
 local context            = context
 local fonts              = fonts
@@ -1350,3 +1350,162 @@ do
     }
 
 end
+
+do
+
+    -- This is a rather special test-only feature that I added for the sake of testing
+    -- Idris's husayni. We wanted to know if uniscribe obeys the order of lookups in a
+    -- font, in spite of what the description of handling arabic suggests. And indeed,
+    -- mixed-in lookups of other features (like all these ss* in husayni) are handled
+    -- the same in context as in uniscribe. If one sets reorderlookups=arab then we sort
+    -- according to the "assumed" order so e.g. the ss* move to after the standard
+    -- features. The observed difference in rendering is an indication that uniscribe is
+    -- quite faithful to the font (while e.g. tests with the hb plugin demonstrate some
+    -- interference, apart from some hard coded init etc expectations). Anyway, it means
+    -- that we're okay with the (generic) node processor. A pitfall is that in context
+    -- we can actually control more, so we can trigger an analyze pass with e.g.
+    -- dflt/dflt while the libraries depend on the script settings for that. Uniscribe
+    -- probably also parses the string and when seeing arabic will follow a different
+    -- code path, although it seems to treat all features equal.
+
+    local trace_reorder  = trackers.register("fonts.reorderlookups",function(v) trace_reorder = v end)
+    local report_reorder = logs.reporter("fonts","reorder")
+
+    local vectors = { }
+
+    vectors.arab = {
+        gsub = {
+            ccmp =  1,
+            init =  2,
+            medi =  3,
+            fina =  4,
+            isol =  5,
+            rlig =  6,
+            rclt =  7,
+            calt =  8,
+            liga =  9,
+            dlig = 10,
+            cswh = 11,
+            mset = 12,
+        },
+        gpos = {
+            curs =  1,
+            kern =  2,
+            mark =  3,
+            mkmk =  4,
+        },
+    }
+
+    function otf.reorderlookups(tfmdata,vector)
+        local order = vectors[vector]
+        if not order then
+            return
+        end
+        local oldsequences = tfmdata.resources.sequences
+        if oldsequences then
+            local sequences = { }
+            for i=1,#oldsequences do
+                sequences[i] = oldsequences[i]
+            end
+            for i=1,#sequences do
+                local s = sequences[i]
+                local features = s.features
+                local kind     = s.type
+                local index    = s.index
+                if features then
+                    local when
+                    local what
+                    for feature in sortedhash(features) do
+                        if not what then
+                            what = find(kind,"^gsub") and "gsub" or "gpos"
+                        end
+                        local newwhen = order[what][feature]
+                        if not newwhen then
+                            -- skip
+                        elseif not when then
+                            when = newwhen
+                        elseif newwhen < when then
+                            when = newwhen
+                        end
+                    end
+                    s.ondex = s.index
+                    s.index = i
+                    s.what  = what == "gsub" and 1 or 2
+                    s.when  = when or 99
+                else
+                    s.ondex = s.index
+                    s.index = i
+                    s.what  = 1
+                    s.when  = 99
+                end
+            end
+            sort(sequences,function(a,b)
+                local what_a = a.what
+                local what_b = b.what
+                if what_a ~= what_b then
+                    return a.index < b.index
+                end
+                local when_a = a.when
+                local when_b = b.when
+                if when_a == when_b then
+                    return a.index < b.index
+                else
+                    return when_a < when_b
+                end
+            end)
+            local swapped = 0
+            for i=1,#sequences do
+                local sequence = sequences[i]
+                local features = sequence.features
+                if features then
+                    local index = sequence.index
+                    if index ~= i then
+                        swapped = swapped + 1
+                    end
+                    if trace_reorder then
+                        if swapped == 1 then
+                            report_reorder()
+                            report_reorder("start swapping lookups in font %!font:name!",tfmdata)
+                            report_reorder()
+                            report_reorder("gsub order: % t",table.swapped(order.gsub))
+                            report_reorder("gpos order: % t",table.swapped(order.gpos))
+                            report_reorder()
+                        end
+                        report_reorder("%03i : lookup %03i, type %s, sorted %2i, moved %s, % t",
+                            i,index,sequence.what == 1 and "gsub" or "gpos",sequence.when or 99,
+                            (index > i and "-") or (index < i and "+") or "=",sortedkeys(features))
+                    end
+                end
+                sequence.what  = nil
+                sequence.when  = nil
+                sequence.index = sequence.ondex
+            end
+            if swapped > 0 then
+                if trace_reorder then
+                    report_reorder()
+                    report_reorder("stop swapping lookups, %i lookups swapped",swapped)
+                    report_reorder()
+                end
+                tfmdata.resources.sequences = sequences
+            end
+        end
+    end
+
+    -- maybe delay till ra is filled
+
+    local function reorderlookups(tfmdata,key,value)
+        if value then
+            otf.reorderlookups(tfmdata,value)
+        end
+    end
+
+    registerotffeature {
+        name        = "reorderlookups",
+        description = "reorder lookups",
+        manipulators = {
+            base = reorderlookups,
+            node = reorderlookups,
+        }
+    }
+
+end
diff --git a/tex/context/base/mkiv/font-nod.lua b/tex/context/base/mkiv/font-nod.lua
index 9166970b8..b629a51d1 100644
--- a/tex/context/base/mkiv/font-nod.lua
+++ b/tex/context/base/mkiv/font-nod.lua
@@ -366,7 +366,7 @@ function step_tracers.codes(i,command,space)
             local d = d and d[c]
             context[command](f,c,d and d.class or "")
         else
-            context("[%s:U+%05X]",f,c)
+            context("[%s:U+%X]",f,c)
         end
     end
 
diff --git a/tex/context/base/mkiv/font-otd.lua b/tex/context/base/mkiv/font-otd.lua
index 64cb1bcb4..412aad528 100644
--- a/tex/context/base/mkiv/font-otd.lua
+++ b/tex/context/base/mkiv/font-otd.lua
@@ -142,6 +142,7 @@ local function initialize(sequence,script,language,s_enabled,a_enabled,font,attr
         local order = sequence.order
         if order then
             local featuretype = featuretypes[sequence.type or "unknown"]
+            local lookupdone  = false
             for i=1,#order do --
                 local kind = order[i] --
                 local e_e
@@ -152,16 +153,14 @@ local function initialize(sequence,script,language,s_enabled,a_enabled,font,attr
                     e_e = s_enabled and s_enabled[kind] -- the value (font)
                 end
                 if e_e then
+                    local usedattribute, usedscript, usedlanguage, usedlookup
                     local valid = type(e_e) == "string" and lpegmatch(pattern,e_e)
                     if valid then
                         -- we have hit always
-                        local attribute = autofeatures[kind] or false
-                        if trace_applied then
-                            report_process(
-                                "font %s, dynamic %a (%a), feature %a, script %a, language %a, lookup %a, value %a",
-                                    font,attr or 0,dynamic,kind,"*","*",sequence.name,valid)
-                        end
-                        ra[#ra+1] = { valid, attribute, sequence, kind }
+                        usedattribute = autofeatures[kind] or false
+                        usedlanguage  = "*"
+                        usedscript    = "*"
+                        usedlookup    = { valid, usedattribute, sequence, kind }
                     else
                         -- we already checked for e_e
                         local scripts   = features[kind] --
@@ -170,7 +169,7 @@ local function initialize(sequence,script,language,s_enabled,a_enabled,font,attr
                             langages = defaultscript(featuretype,autoscript,scripts)
                         end
                         if languages then
-                            -- we need detailed control over default becase we want to trace
+                            -- we need detailed control over default because we want to trace
                             -- only first attribute match check, so we assume simple fina's
                          -- local valid = false
                             if languages[language] then
@@ -182,14 +181,30 @@ local function initialize(sequence,script,language,s_enabled,a_enabled,font,attr
                             end
                         end
                         if valid then
-                            local attribute = autofeatures[kind] or false
-                            if trace_applied then
-                                report_process(
-                                    "font %s, dynamic %a (%a), feature %a, script %a, language %a, lookup %a, value %a",
-                                        font,attr or 0,dynamic,kind,script,language,sequence.name,valid)
-                            end
-                            ra[#ra+1] = { valid, attribute, sequence, kind }
+                            usedattribute = autofeatures[kind] or false
+                            usedlanguage  = script
+                            usedscript    = language
+                            usedlookup    = { valid, usedattribute, sequence, kind }
+                        end
+                    end
+                    if not usedlookup then
+                        -- go on
+                    elseif lookupdone then
+                        if trace_applied then
+                            report_process(
+                                "font %s, dynamic %a (%a), feature %a, script %a, language %a, lookup %a, value %a, lookup already set by %a",
+                                    font,attr or 0,dynamic,kind,usedscript,usedlanguage,sequence.name,valid,ra[#ra][4])
+                        end
+                    else
+                        ra[#ra+1] = usedlookup
+                        if trace_applied then
+                            report_process(
+                                "font %s, dynamic %a (%a), feature %a, script %a, language %a, lookup %a, value %a",
+                                    font,attr or 0,dynamic,kind,usedscript,usedlanguage,sequence.name,valid)
+                        else
+                            return -- no need to look further
                         end
+                        lookupdone = true
                     end
                 end
             end
diff --git a/tex/context/base/mkiv/font-otj.lua b/tex/context/base/mkiv/font-otj.lua
index 458e307ec..6275f81b8 100644
--- a/tex/context/base/mkiv/font-otj.lua
+++ b/tex/context/base/mkiv/font-otj.lua
@@ -21,11 +21,11 @@ if not modules then modules = { } end modules ['font-otj'] = {
 -- The use_advance code was just a test and is meant for testing and manuals. There is no
 -- performance (or whatever) gain and using kerns is somewhat cleaner (at least for now).
 
--- Maybe: subtype fontkern when pure kerns.
-
 -- An alternative is to have a list per base of all marks and then do a run over the node
 -- list that resolves the accumulated l/r/x/y and then do an inject pass.
 
+-- if needed we can flag a kern node as immutable
+
 if not nodes.properties then return end
 
 local next, rawget, tonumber = next, rawget, tonumber
@@ -65,8 +65,6 @@ local glue_code          = nodecodes.glue
 local nuts               = nodes.nuts
 local nodepool           = nuts.pool
 
-local newkern            = nodepool.kern
-
 local tonode             = nuts.tonode
 local tonut              = nuts.tonut
 
@@ -96,9 +94,23 @@ local insert_node_after  = nuts.insert_after
 
 local properties         = nodes.properties.data
 
-function injections.installnewkern(nk)
-    newkern = nk or newkern
-end
+local fontkern           = nuts.pool and nuts.pool.fontkern -- context
+
+do if not fontkern then -- generic
+
+    local thekern   = nuts.new("kern",0) -- fontkern
+    local setkern   = nuts.setkern
+    local copy_node = nuts.copy_node
+
+    fontkern = function(k)
+        local n = copy_node(thekern)
+        setkern(n,k)
+        return n
+    end
+
+end end
+
+function injections.installnewkern() end -- obsolete
 
 local nofregisteredkerns    = 0
 local nofregisteredpairs    = 0
@@ -279,7 +291,7 @@ function injections.setcursive(start,nxt,factor,rlmode,exit,entry,tfmstart,tfmne
     return dx, dy, nofregisteredcursives
 end
 
-function injections.setpair(current,factor,rlmode,r2lflag,spec,injection) -- r2lflag & tfmchr not used
+function injections.setpair(current,factor,rlmode,r2lflag,spec,injection) -- r2lflag not used
     local x = factor*spec[1]
     local y = factor*spec[2]
     local w = factor*spec[3]
@@ -354,22 +366,43 @@ function injections.setkern(current,factor,rlmode,x,injection)
         if not injection then
             injection = "injections"
         end
-        if p then
-         -- local i = rawget(p,injection)
-            local i = rawget(p,injection)
-            if i then
-                i.leftkern = dx + (i.leftkern or 0)
+        if rlmode and rlmode < 0 then
+            -- for kai to check: this branch is new
+            if p then
+             -- local i = rawget(p,injection)
+                local i = rawget(p,injection)
+                if i then
+                    i.rightkern = dx + (i.rightkern or 0)
+                else
+                    p[injection] = {
+                        rightkern = dx,
+                    }
+                end
             else
-                p[injection] = {
-                    leftkern = dx,
+                properties[current] = {
+                    [injection] = {
+                        rightkern = dx,
+                    },
                 }
             end
         else
-            properties[current] = {
-                [injection] = {
-                    leftkern = dx,
-                },
-            }
+            if p then
+             -- local i = rawget(p,injection)
+                local i = rawget(p,injection)
+                if i then
+                    i.leftkern = dx + (i.leftkern or 0)
+                else
+                    p[injection] = {
+                        leftkern = dx,
+                    }
+                end
+            else
+                properties[current] = {
+                    [injection] = {
+                        leftkern = dx,
+                    },
+                }
+            end
         end
         return dx, nofregisteredkerns
     else
@@ -579,7 +612,7 @@ local function inject_kerns_only(head,where)
                     -- left|glyph|right
                     local leftkern = i.leftkern
                     if leftkern and leftkern ~= 0 then
-                        head = insert_node_before(head,current,newkern(leftkern))
+                        head = insert_node_before(head,current,fontkern(leftkern))
                     end
                 end
                 if prevdisc then
@@ -590,7 +623,7 @@ local function inject_kerns_only(head,where)
                         if i then
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                setlink(posttail,newkern(leftkern))
+                                setlink(posttail,fontkern(leftkern))
                                 done = true
                             end
                         end
@@ -601,7 +634,7 @@ local function inject_kerns_only(head,where)
                         if i then
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                setlink(replacetail,newkern(leftkern))
+                                setlink(replacetail,fontkern(leftkern))
                                 done = true
                             end
                         end
@@ -612,7 +645,7 @@ local function inject_kerns_only(head,where)
                             -- glyph|disc|glyph (special case)
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                setfield(prev,"replace",newkern(leftkern)) -- maybe also leftkern
+                                setfield(prev,"replace",fontkern(leftkern)) -- maybe also leftkern
                             end
                         end
                     end
@@ -640,7 +673,7 @@ local function inject_kerns_only(head,where)
                         if i then
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                pre  = insert_node_before(pre,n,newkern(leftkern))
+                                pre  = insert_node_before(pre,n,fontkern(leftkern))
                                 done = true
                             end
                         end
@@ -657,7 +690,7 @@ local function inject_kerns_only(head,where)
                         if i then
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                post = insert_node_before(post,n,newkern(leftkern))
+                                post = insert_node_before(post,n,fontkern(leftkern))
                                 done = true
                             end
                         end
@@ -674,7 +707,7 @@ local function inject_kerns_only(head,where)
                         if i then
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                replace = insert_node_before(replace,n,newkern(leftkern))
+                                replace = insert_node_before(replace,n,fontkern(leftkern))
                                 done    = true
                             end
                         end
@@ -737,11 +770,11 @@ local function inject_pairs_only(head,where)
                     end
                     local leftkern = i.leftkern
                     if leftkern and leftkern ~= 0 then
-                        head = insert_node_before(head,current,newkern(leftkern))
+                        head = insert_node_before(head,current,fontkern(leftkern))
                     end
                     local rightkern = i.rightkern
                     if rightkern and rightkern ~= 0 then
-                        insert_node_after(head,current,newkern(rightkern))
+                        insert_node_after(head,current,fontkern(rightkern))
                     end
                 else
                  -- local i = rawget(p,"emptyinjections")
@@ -755,7 +788,7 @@ local function inject_pairs_only(head,where)
                                 if replace then
                                     -- error, we expect an empty one
                                 else
-                                    setfield(next,"replace",newkern(rightkern)) -- maybe also leftkern
+                                    setfield(next,"replace",fontkern(rightkern)) -- maybe also leftkern
                                 end
                             end
                         end
@@ -769,7 +802,7 @@ local function inject_pairs_only(head,where)
                         if i then
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                setlink(posttail,newkern(leftkern))
+                                setlink(posttail,fontkern(leftkern))
                                 done = true
                             end
                         end
@@ -780,7 +813,7 @@ local function inject_pairs_only(head,where)
                         if i then
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                setlink(replacetail,newkern(leftkern))
+                                setlink(replacetail,fontkern(leftkern))
                                 done = true
                             end
                         end
@@ -790,7 +823,7 @@ local function inject_pairs_only(head,where)
                             -- new .. okay?
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                setfield(prev,"replace",newkern(leftkern)) -- maybe also leftkern
+                                setfield(prev,"replace",fontkern(leftkern)) -- maybe also leftkern
                             end
                         end
                     end
@@ -821,12 +854,12 @@ local function inject_pairs_only(head,where)
                             end
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                pre  = insert_node_before(pre,n,newkern(leftkern))
+                                pre  = insert_node_before(pre,n,fontkern(leftkern))
                                 done = true
                             end
                             local rightkern = i.rightkern
                             if rightkern and rightkern ~= 0 then
-                                insert_node_after(pre,n,newkern(rightkern))
+                                insert_node_after(pre,n,fontkern(rightkern))
                                 done = true
                             end
                         end
@@ -847,12 +880,12 @@ local function inject_pairs_only(head,where)
                             end
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                post = insert_node_before(post,n,newkern(leftkern))
+                                post = insert_node_before(post,n,fontkern(leftkern))
                                 done = true
                             end
                             local rightkern = i.rightkern
                             if rightkern and rightkern ~= 0 then
-                                insert_node_after(post,n,newkern(rightkern))
+                                insert_node_after(post,n,fontkern(rightkern))
                                 done = true
                             end
                         end
@@ -873,12 +906,12 @@ local function inject_pairs_only(head,where)
                             end
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                replace = insert_node_before(replace,n,newkern(leftkern))
+                                replace = insert_node_before(replace,n,fontkern(leftkern))
                                 done    = true
                             end
                             local rightkern = i.rightkern
                             if rightkern and rightkern ~= 0 then
-                                insert_node_after(replace,n,newkern(rightkern))
+                                insert_node_after(replace,n,fontkern(rightkern))
                                 done = true
                             end
                         end
@@ -895,7 +928,7 @@ local function inject_pairs_only(head,where)
                             -- glyph|pre glyphs
                             local rightkern = i.rightkern
                             if rightkern and rightkern ~= 0 then
-                                pre  = insert_node_before(pre,pre,newkern(rightkern))
+                                pre  = insert_node_before(pre,pre,fontkern(rightkern))
                                 done = true
                             end
                         end
@@ -910,7 +943,7 @@ local function inject_pairs_only(head,where)
                             -- glyph|replace glyphs
                             local rightkern = i.rightkern
                             if rightkern and rightkern ~= 0 then
-                                replace = insert_node_before(replace,replace,newkern(rightkern))
+                                replace = insert_node_before(replace,replace,fontkern(rightkern))
                                 done    = true
                             end
                         end
@@ -1031,7 +1064,9 @@ local function inject_everything(head,where)
             if pn.markdir < 0 then
                 ox = px - pn.markx
 -- pair stuff: husayni needs it
-+ (pn.leftkern or 0)
+if not pn.markmark then -- check or not (no longer needed)
+    ox = ox + (pn.leftkern or 0)
+end
 --
              -- report_injections("r2l case 3: %p",ox)
             else
@@ -1053,14 +1088,16 @@ local function inject_everything(head,where)
                     -- -- we do it the ugly way (no checking if the previous is
                     -- -- already a kern) .. maybe we should fix the font instead
                     -- hm, no head ?
-                    insert_node_before(n,n,newkern(-wn))
-                    insert_node_after(n,n,newkern(-wn))
+                    insert_node_before(n,n,fontkern(-wn))
+                    insert_node_after(n,n,fontkern(-wn))
                 end
             end
         end
         local oy = ny + py + pn.marky
 -- pair stuff: husayni needs it
-oy = oy + (pn.yoffset or 0)
+if not pn.markmark then
+    oy = oy + (pn.yoffset or 0)
+end
 --
         setoffsets(n,ox,oy)
         if trace_marks then
@@ -1139,11 +1176,11 @@ oy = oy + (pn.yoffset or 0)
                         -- left|glyph|right
                         local leftkern = i.leftkern
                         if leftkern and leftkern ~= 0 then
-                            head = insert_node_before(head,current,newkern(leftkern))
+                            head = insert_node_before(head,current,fontkern(leftkern))
                         end
                         local rightkern = i.rightkern
                         if rightkern and rightkern ~= 0 then
-                            insert_node_after(head,current,newkern(rightkern))
+                            insert_node_after(head,current,fontkern(rightkern))
                         end
                     end
                 else
@@ -1158,7 +1195,7 @@ oy = oy + (pn.yoffset or 0)
                                 if replace then
                                     -- error, we expect an empty one
                                 else
-                                    setfield(next,"replace",newkern(rightkern)) -- maybe also leftkern
+                                    setfield(next,"replace",fontkern(rightkern)) -- maybe also leftkern
                                 end
                             end
                         end
@@ -1173,7 +1210,7 @@ oy = oy + (pn.yoffset or 0)
                             if i then
                                 local leftkern = i.leftkern
                                 if leftkern and leftkern ~= 0 then
-                                    setlink(posttail,newkern(leftkern))
+                                    setlink(posttail,fontkern(leftkern))
                                     done = true
                                 end
                             end
@@ -1184,7 +1221,7 @@ oy = oy + (pn.yoffset or 0)
                             if i then
                                 local leftkern = i.leftkern
                                 if leftkern and leftkern ~= 0 then
-                                    setlink(replacetail,newkern(leftkern))
+                                    setlink(replacetail,fontkern(leftkern))
                                     done = true
                                 end
                             end
@@ -1194,7 +1231,7 @@ oy = oy + (pn.yoffset or 0)
                             if i then
                                 local leftkern = i.leftkern
                                 if leftkern and leftkern ~= 0 then
-                                    setfield(prev,"replace",newkern(leftkern)) -- maybe also leftkern
+                                    setfield(prev,"replace",fontkern(leftkern)) -- maybe also leftkern
                                 end
                             end
                         end
@@ -1239,12 +1276,12 @@ oy = oy + (pn.yoffset or 0)
                             end
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                pre  = insert_node_before(pre,n,newkern(leftkern))
+                                pre  = insert_node_before(pre,n,fontkern(leftkern))
                                 done = true
                             end
                             local rightkern = i.rightkern
                             if rightkern and rightkern ~= 0 then
-                                insert_node_after(pre,n,newkern(rightkern))
+                                insert_node_after(pre,n,fontkern(rightkern))
                                 done = true
                             end
                             if hasmarks then
@@ -1271,12 +1308,12 @@ oy = oy + (pn.yoffset or 0)
                             end
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                post = insert_node_before(post,n,newkern(leftkern))
+                                post = insert_node_before(post,n,fontkern(leftkern))
                                 done = true
                             end
                             local rightkern = i.rightkern
                             if rightkern and rightkern ~= 0 then
-                                insert_node_after(post,n,newkern(rightkern))
+                                insert_node_after(post,n,fontkern(rightkern))
                                 done = true
                             end
                             if hasmarks then
@@ -1303,12 +1340,12 @@ oy = oy + (pn.yoffset or 0)
                             end
                             local leftkern = i.leftkern
                             if leftkern and leftkern ~= 0 then
-                                replace = insert_node_before(replace,n,newkern(leftkern))
+                                replace = insert_node_before(replace,n,fontkern(leftkern))
                                 done    = true
                             end
                             local rightkern = i.rightkern
                             if rightkern and rightkern ~= 0 then
-                                insert_node_after(replace,n,newkern(rightkern))
+                                insert_node_after(replace,n,fontkern(rightkern))
                                 done = true
                             end
                             if hasmarks then
@@ -1331,7 +1368,7 @@ oy = oy + (pn.yoffset or 0)
                             -- glyph|pre glyphs
                             local rightkern = i.rightkern
                             if rightkern and rightkern ~= 0 then
-                                pre  = insert_node_before(pre,pre,newkern(rightkern))
+                                pre  = insert_node_before(pre,pre,fontkern(rightkern))
                                 done = true
                             end
                         end
@@ -1346,7 +1383,7 @@ oy = oy + (pn.yoffset or 0)
                             -- glyph|replace glyphs
                             local rightkern = i.rightkern
                             if rightkern and rightkern ~= 0 then
-                                replace = insert_node_before(replace,replace,newkern(rightkern))
+                                replace = insert_node_before(replace,replace,fontkern(rightkern))
                                 done    = true
                             end
                         end
diff --git a/tex/context/base/mkiv/font-ots.lua b/tex/context/base/mkiv/font-ots.lua
index 99c98e175..de296e408 100644
--- a/tex/context/base/mkiv/font-ots.lua
+++ b/tex/context/base/mkiv/font-ots.lua
@@ -302,8 +302,8 @@ local function logwarning(...)
     report_direct(...)
 end
 
-local f_unicode = formatters["%U"]
-local f_uniname = formatters["%U (%s)"]
+local f_unicode = formatters["U+%X"]      -- was ["%U"]
+local f_uniname = formatters["U+%X (%s)"] -- was ["%U (%s)"]
 local f_unilist = formatters["% t (% t)"]
 
 local function gref(n) -- currently the same as in font-otb
@@ -932,8 +932,8 @@ function handlers.gpos_mark2base(head,start,dataset,sequence,markanchors,rlmode)
                     local ma = markanchors[2]
                     local dx, dy, bound = setmark(start,base,factor,rlmode,ba,ma,characters[basechar],false,checkmarks)
                     if trace_marks then
-                        logprocess("%s, anchor %s, bound %s: anchoring mark %s to basechar %s => (%p,%p)",
-                            pref(dataset,sequence),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+                        logprocess("%s, bound %s, anchoring mark %s to basechar %s => (%p,%p)",
+                            pref(dataset,sequence),bound,gref(markchar),gref(basechar),dx,dy)
                     end
                     return head, start, true
                 elseif trace_bugs then
@@ -991,8 +991,8 @@ function handlers.gpos_mark2ligature(head,start,dataset,sequence,markanchors,rlm
                         if ba then
                             local dx, dy, bound = setmark(start,base,factor,rlmode,ba,ma,characters[basechar],false,checkmarks)
                             if trace_marks then
-                                logprocess("%s, anchor %s, index %s, bound %s: anchoring mark %s to baselig %s at index %s => (%p,%p)",
-                                    pref(dataset,sequence),anchor,index,bound,gref(markchar),gref(basechar),index,dx,dy)
+                                logprocess("%s, index %s, bound %s, anchoring mark %s to baselig %s at index %s => (%p,%p)",
+                                    pref(dataset,sequence),index,bound,gref(markchar),gref(basechar),index,dx,dy)
                             end
                             return head, start, true
                         else
@@ -1040,8 +1040,8 @@ function handlers.gpos_mark2mark(head,start,dataset,sequence,markanchors,rlmode)
                     local ma = markanchors[2]
                     local dx, dy, bound = setmark(start,base,factor,rlmode,ba,ma,characters[basechar],true,checkmarks)
                     if trace_marks then
-                        logprocess("%s, anchor %s, bound %s: anchoring mark %s to basemark %s => (%p,%p)",
-                            pref(dataset,sequence),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+                        logprocess("%s, bound %s, anchoring mark %s to basemark %s => (%p,%p)",
+                            pref(dataset,sequence),bound,gref(markchar),gref(basechar),dx,dy)
                     end
                     return head, start, true
                 end
@@ -1539,8 +1539,8 @@ function chainprocs.gpos_mark2base(head,start,stop,dataset,sequence,currentlooku
                             if ma then
                                 local dx, dy, bound = setmark(start,base,factor,rlmode,ba,ma,characters[basechar],false,checkmarks)
                                 if trace_marks then
-                                    logprocess("%s, anchor %s, bound %s: anchoring mark %s to basechar %s => (%p,%p)",
-                                        cref(dataset,sequence),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+                                    logprocess("%s, bound %s, anchoring mark %s to basechar %s => (%p,%p)",
+                                        cref(dataset,sequence),bound,gref(markchar),gref(basechar),dx,dy)
                                 end
                                 return head, start, true
                             end
@@ -1610,8 +1610,8 @@ function chainprocs.gpos_mark2ligature(head,start,stop,dataset,sequence,currentl
                                 if ba then
                                     local dx, dy, bound = setmark(start,base,factor,rlmode,ba,ma,characters[basechar],false,checkmarks)
                                     if trace_marks then
-                                        logprocess("%s, anchor %s, bound %s: anchoring mark %s to baselig %s at index %s => (%p,%p)",
-                                            cref(dataset,sequence),anchor,a or bound,gref(markchar),gref(basechar),index,dx,dy)
+                                        logprocess("%s, bound %s, anchoring mark %s to baselig %s at index %s => (%p,%p)",
+                                            cref(dataset,sequence),a or bound,gref(markchar),gref(basechar),index,dx,dy)
                                     end
                                     return head, start, true
                                 end
@@ -1667,8 +1667,8 @@ function chainprocs.gpos_mark2mark(head,start,stop,dataset,sequence,currentlooku
                             if ma then
                                 local dx, dy, bound = setmark(start,base,factor,rlmode,ba,ma,characters[basechar],true,checkmarks)
                                 if trace_marks then
-                                    logprocess("%s, anchor %s, bound %s: anchoring mark %s to basemark %s => (%p,%p)",
-                                        cref(dataset,sequence),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+                                    logprocess("%s, bound %s, anchoring mark %s to basemark %s => (%p,%p)",
+                                        cref(dataset,sequence),bound,gref(markchar),gref(basechar),dx,dy)
                                 end
                                 return head, start, true
                             end
@@ -1776,13 +1776,26 @@ end
 -- order to handle that we need more complex code which also slows down even more. The main
 -- loop variant could deal with that: test, collapse, backtrack.
 
-local new_kern = nuts.pool.kern
+local userkern = nuts.pool and nuts.pool.newkern -- context
+
+do if not userkern then -- generic
+
+    local thekern = nuts.new("kern",1) -- userkern
+    local setkern = nuts.setkern       -- not injections.setkern
+
+    userkern = function(k)
+        local n = copy_node(thekern)
+        setkern(n,k)
+        return n
+    end
+
+end end
 
 local function checked(head)
     local current = head
     while current do
         if getid(current) == glue_code then
-            local kern = new_kern(getwidth(current))
+            local kern = userkern(getwidth(current))
             if head == current then
                 local next = getnext(current)
                 if next then
diff --git a/tex/context/base/mkiv/font-ott.lua b/tex/context/base/mkiv/font-ott.lua
index 9f9900dc2..59d92f40d 100644
--- a/tex/context/base/mkiv/font-ott.lua
+++ b/tex/context/base/mkiv/font-ott.lua
@@ -1,4 +1,4 @@
-if not modules then modules = { } end modules ['font-ott'] = {
+if not modules then modules = { } end modules ["font-ott"] = {
     version   = 1.001,
     comment   = "companion to font-ini.mkiv",
     author    = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
@@ -26,118 +26,118 @@ local statistics           = otf.statistics or { }
 otf.statistics             = statistics
 
 local scripts = allocate {
-    ['arab'] = 'arabic',
-    ['armi'] = 'imperial aramaic',
-    ['armn'] = 'armenian',
-    ['avst'] = 'avestan',
-    ['bali'] = 'balinese',
-    ['bamu'] = 'bamum',
-    ['batk'] = 'batak',
-    ['beng'] = 'bengali',
-    ['bng2'] = 'bengali variant 2',
-    ['bopo'] = 'bopomofo',
-    ['brah'] = 'brahmi',
-    ['brai'] = 'braille',
-    ['bugi'] = 'buginese',
-    ['buhd'] = 'buhid',
-    ['byzm'] = 'byzantine music',
-    ['cakm'] = 'chakma',
-    ['cans'] = 'canadian syllabics',
-    ['cari'] = 'carian',
-    ['cham'] = 'cham',
-    ['cher'] = 'cherokee',
-    ['copt'] = 'coptic',
-    ['cprt'] = 'cypriot syllabary',
-    ['cyrl'] = 'cyrillic',
-    ['deva'] = 'devanagari',
-    ['dev2'] = 'devanagari variant 2',
-    ['dsrt'] = 'deseret',
-    ['egyp'] = 'egyptian heiroglyphs',
-    ['ethi'] = 'ethiopic',
-    ['geor'] = 'georgian',
-    ['glag'] = 'glagolitic',
-    ['goth'] = 'gothic',
-    ['grek'] = 'greek',
-    ['gujr'] = 'gujarati',
-    ['gjr2'] = 'gujarati variant 2',
-    ['guru'] = 'gurmukhi',
-    ['gur2'] = 'gurmukhi variant 2',
-    ['hang'] = 'hangul',
-    ['hani'] = 'cjk ideographic',
-    ['hano'] = 'hanunoo',
-    ['hebr'] = 'hebrew',
-    ['ital'] = 'old italic',
-    ['jamo'] = 'hangul jamo',
-    ['java'] = 'javanese',
-    ['kali'] = 'kayah li',
-    ['kana'] = 'hiragana and katakana',
-    ['khar'] = 'kharosthi',
-    ['khmr'] = 'khmer',
-    ['knda'] = 'kannada',
-    ['knd2'] = 'kannada variant 2',
-    ['kthi'] = 'kaithi',
-    ['lana'] = 'tai tham',
-    ['lao' ] = 'lao',
-    ['latn'] = 'latin',
-    ['lepc'] = 'lepcha',
-    ['limb'] = 'limbu',
-    ['linb'] = 'linear b',
-    ['lisu'] = 'lisu',
-    ['lyci'] = 'lycian',
-    ['lydi'] = 'lydian',
-    ['mand'] = 'mandaic and mandaean',
-    ['math'] = 'mathematical alphanumeric symbols',
-    ['merc'] = 'meroitic cursive',
-    ['mero'] = 'meroitic hieroglyphs',
-    ['mlym'] = 'malayalam',
-    ['mlm2'] = 'malayalam variant 2',
-    ['mong'] = 'mongolian',
-    ['mtei'] = 'meitei Mayek',
-    ['musc'] = 'musical symbols',
-    ['mym2'] = 'myanmar variant 2',
-    ['mymr'] = 'myanmar',
-    ['nko' ] = "n'ko",
-    ['ogam'] = 'ogham',
-    ['olck'] = 'ol chiki',
-    ['orkh'] = 'old turkic and orkhon runic',
-    ['orya'] = 'oriya',
-    ['ory2'] = 'odia variant 2',
-    ['osma'] = 'osmanya',
-    ['phag'] = 'phags-pa',
-    ['phli'] = 'inscriptional pahlavi',
-    ['phnx'] = 'phoenician',
-    ['prti'] = 'inscriptional parthian',
-    ['rjng'] = 'rejang',
-    ['runr'] = 'runic',
-    ['samr'] = 'samaritan',
-    ['sarb'] = 'old south arabian',
-    ['saur'] = 'saurashtra',
-    ['shaw'] = 'shavian',
-    ['shrd'] = 'sharada',
-    ['sinh'] = 'sinhala',
-    ['sora'] = 'sora sompeng',
-    ['sund'] = 'sundanese',
-    ['sylo'] = 'syloti nagri',
-    ['syrc'] = 'syriac',
-    ['tagb'] = 'tagbanwa',
-    ['takr'] = 'takri',
-    ['tale'] = 'tai le',
-    ['talu'] = 'tai lu',
-    ['taml'] = 'tamil',
-    ['tavt'] = 'tai viet',
-    ['telu'] = 'telugu',
-    ['tel2'] = 'telugu variant 2',
-    ['tfng'] = 'tifinagh',
-    ['tglg'] = 'tagalog',
-    ['thaa'] = 'thaana',
-    ['thai'] = 'thai',
-    ['tibt'] = 'tibetan',
-    ['tml2'] = 'tamil variant 2',
-    ['ugar'] = 'ugaritic cuneiform',
-    ['vai' ] = 'vai',
-    ['xpeo'] = 'old persian cuneiform',
-    ['xsux'] = 'sumero-akkadian cuneiform',
-    ['yi'  ] = 'yi',
+    ["arab"] = "arabic",
+    ["armi"] = "imperial aramaic",
+    ["armn"] = "armenian",
+    ["avst"] = "avestan",
+    ["bali"] = "balinese",
+    ["bamu"] = "bamum",
+    ["batk"] = "batak",
+    ["beng"] = "bengali",
+    ["bng2"] = "bengali variant 2",
+    ["bopo"] = "bopomofo",
+    ["brah"] = "brahmi",
+    ["brai"] = "braille",
+    ["bugi"] = "buginese",
+    ["buhd"] = "buhid",
+    ["byzm"] = "byzantine music",
+    ["cakm"] = "chakma",
+    ["cans"] = "canadian syllabics",
+    ["cari"] = "carian",
+    ["cham"] = "cham",
+    ["cher"] = "cherokee",
+    ["copt"] = "coptic",
+    ["cprt"] = "cypriot syllabary",
+    ["cyrl"] = "cyrillic",
+    ["deva"] = "devanagari",
+    ["dev2"] = "devanagari variant 2",
+    ["dsrt"] = "deseret",
+    ["egyp"] = "egyptian heiroglyphs",
+    ["ethi"] = "ethiopic",
+    ["geor"] = "georgian",
+    ["glag"] = "glagolitic",
+    ["goth"] = "gothic",
+    ["grek"] = "greek",
+    ["gujr"] = "gujarati",
+    ["gjr2"] = "gujarati variant 2",
+    ["guru"] = "gurmukhi",
+    ["gur2"] = "gurmukhi variant 2",
+    ["hang"] = "hangul",
+    ["hani"] = "cjk ideographic",
+    ["hano"] = "hanunoo",
+    ["hebr"] = "hebrew",
+    ["ital"] = "old italic",
+    ["jamo"] = "hangul jamo",
+    ["java"] = "javanese",
+    ["kali"] = "kayah li",
+    ["kana"] = "hiragana and katakana",
+    ["khar"] = "kharosthi",
+    ["khmr"] = "khmer",
+    ["knda"] = "kannada",
+    ["knd2"] = "kannada variant 2",
+    ["kthi"] = "kaithi",
+    ["lana"] = "tai tham",
+    ["lao" ] = "lao",
+    ["latn"] = "latin",
+    ["lepc"] = "lepcha",
+    ["limb"] = "limbu",
+    ["linb"] = "linear b",
+    ["lisu"] = "lisu",
+    ["lyci"] = "lycian",
+    ["lydi"] = "lydian",
+    ["mand"] = "mandaic and mandaean",
+    ["math"] = "mathematical alphanumeric symbols",
+    ["merc"] = "meroitic cursive",
+    ["mero"] = "meroitic hieroglyphs",
+    ["mlym"] = "malayalam",
+    ["mlm2"] = "malayalam variant 2",
+    ["mong"] = "mongolian",
+    ["mtei"] = "meitei Mayek",
+    ["musc"] = "musical symbols",
+    ["mym2"] = "myanmar variant 2",
+    ["mymr"] = "myanmar",
+    ["nko" ] = 'n"ko',
+    ["ogam"] = "ogham",
+    ["olck"] = "ol chiki",
+    ["orkh"] = "old turkic and orkhon runic",
+    ["orya"] = "oriya",
+    ["ory2"] = "odia variant 2",
+    ["osma"] = "osmanya",
+    ["phag"] = "phags-pa",
+    ["phli"] = "inscriptional pahlavi",
+    ["phnx"] = "phoenician",
+    ["prti"] = "inscriptional parthian",
+    ["rjng"] = "rejang",
+    ["runr"] = "runic",
+    ["samr"] = "samaritan",
+    ["sarb"] = "old south arabian",
+    ["saur"] = "saurashtra",
+    ["shaw"] = "shavian",
+    ["shrd"] = "sharada",
+    ["sinh"] = "sinhala",
+    ["sora"] = "sora sompeng",
+    ["sund"] = "sundanese",
+    ["sylo"] = "syloti nagri",
+    ["syrc"] = "syriac",
+    ["tagb"] = "tagbanwa",
+    ["takr"] = "takri",
+    ["tale"] = "tai le",
+    ["talu"] = "tai lu",
+    ["taml"] = "tamil",
+    ["tavt"] = "tai viet",
+    ["telu"] = "telugu",
+    ["tel2"] = "telugu variant 2",
+    ["tfng"] = "tifinagh",
+    ["tglg"] = "tagalog",
+    ["thaa"] = "thaana",
+    ["thai"] = "thai",
+    ["tibt"] = "tibetan",
+    ["tml2"] = "tamil variant 2",
+    ["ugar"] = "ugaritic cuneiform",
+    ["vai" ] = "vai",
+    ["xpeo"] = "old persian cuneiform",
+    ["xsux"] = "sumero-akkadian cuneiform",
+    ["yi"  ] = "yi",
 }
 
 local languages = allocate {
@@ -302,7 +302,7 @@ local languages = allocate {
     ["gez" ] = "ge'ez",
     ["gih" ] = "githabul",
     ["gil" ] = "gilyak",
-    ["gil0"] = " kiribati (gilbertese)",
+    ["gil0"] = "kiribati (gilbertese)",
     ["gkp" ] = "kpelle (guinea)",
     ["glk" ] = "gilaki",
     ["gmz" ] = "gumuz",
@@ -726,165 +726,166 @@ local languages = allocate {
 }
 
 local features = allocate {
-    ['aalt'] = 'access all alternates',
-    ['abvf'] = 'above-base forms',
-    ['abvm'] = 'above-base mark positioning',
-    ['abvs'] = 'above-base substitutions',
-    ['afrc'] = 'alternative fractions',
-    ['akhn'] = 'akhands',
-    ['blwf'] = 'below-base forms',
-    ['blwm'] = 'below-base mark positioning',
-    ['blws'] = 'below-base substitutions',
-    ['c2pc'] = 'petite capitals from capitals',
-    ['c2sc'] = 'small capitals from capitals',
-    ['calt'] = 'contextual alternates',
-    ['case'] = 'case-sensitive forms',
-    ['ccmp'] = 'glyph composition/decomposition',
-    ['cfar'] = 'conjunct form after ro',
-    ['cjct'] = 'conjunct forms',
-    ['clig'] = 'contextual ligatures',
-    ['cpct'] = 'centered cjk punctuation',
-    ['cpsp'] = 'capital spacing',
-    ['cswh'] = 'contextual swash',
-    ['curs'] = 'cursive positioning',
-    ['dflt'] = 'default processing',
-    ['dist'] = 'distances',
-    ['dlig'] = 'discretionary ligatures',
-    ['dnom'] = 'denominators',
-    ['dtls'] = 'dotless forms', -- math
-    ['expt'] = 'expert forms',
-    ['falt'] = 'final glyph alternates',
-    ['fin2'] = 'terminal forms #2',
-    ['fin3'] = 'terminal forms #3',
-    ['fina'] = 'terminal forms',
-    ['flac'] = 'flattened accents over capitals', -- math
-    ['frac'] = 'fractions',
-    ['fwid'] = 'full width',
-    ['half'] = 'half forms',
-    ['haln'] = 'halant forms',
-    ['halt'] = 'alternate half width',
-    ['hist'] = 'historical forms',
-    ['hkna'] = 'horizontal kana alternates',
-    ['hlig'] = 'historical ligatures',
-    ['hngl'] = 'hangul',
-    ['hojo'] = 'hojo kanji forms',
-    ['hwid'] = 'half width',
-    ['init'] = 'initial forms',
-    ['isol'] = 'isolated forms',
-    ['ital'] = 'italics',
-    ['jalt'] = 'justification alternatives',
-    ['jp04'] = 'jis2004 forms',
-    ['jp78'] = 'jis78 forms',
-    ['jp83'] = 'jis83 forms',
-    ['jp90'] = 'jis90 forms',
-    ['kern'] = 'kerning',
-    ['lfbd'] = 'left bounds',
-    ['liga'] = 'standard ligatures',
-    ['ljmo'] = 'leading jamo forms',
-    ['lnum'] = 'lining figures',
-    ['locl'] = 'localized forms',
-    ['ltra'] = 'left-to-right alternates',
-    ['ltrm'] = 'left-to-right mirrored forms',
-    ['mark'] = 'mark positioning',
-    ['med2'] = 'medial forms #2',
-    ['medi'] = 'medial forms',
-    ['mgrk'] = 'mathematical greek',
-    ['mkmk'] = 'mark to mark positioning',
-    ['mset'] = 'mark positioning via substitution',
-    ['nalt'] = 'alternate annotation forms',
-    ['nlck'] = 'nlc kanji forms',
-    ['nukt'] = 'nukta forms',
-    ['numr'] = 'numerators',
-    ['onum'] = 'old style figures',
-    ['opbd'] = 'optical bounds',
-    ['ordn'] = 'ordinals',
-    ['ornm'] = 'ornaments',
-    ['palt'] = 'proportional alternate width',
-    ['pcap'] = 'petite capitals',
-    ['pkna'] = 'proportional kana',
-    ['pnum'] = 'proportional figures',
-    ['pref'] = 'pre-base forms',
-    ['pres'] = 'pre-base substitutions',
-    ['pstf'] = 'post-base forms',
-    ['psts'] = 'post-base substitutions',
-    ['pwid'] = 'proportional widths',
-    ['qwid'] = 'quarter widths',
-    ['rand'] = 'randomize',
-    ['rclt'] = 'required contextual alternates',
-    ['rkrf'] = 'rakar forms',
-    ['rlig'] = 'required ligatures',
-    ['rphf'] = 'reph form',
-    ['rtbd'] = 'right bounds',
-    ['rtla'] = 'right-to-left alternates',
-    ['rtlm'] = 'right to left math', -- math
-    ['ruby'] = 'ruby notation forms',
-    ['salt'] = 'stylistic alternates',
-    ['sinf'] = 'scientific inferiors',
-    ['size'] = 'optical size',
-    ['smcp'] = 'small capitals',
-    ['smpl'] = 'simplified forms',
- -- ['ss01'] = 'stylistic set 1',
- -- ['ss02'] = 'stylistic set 2',
- -- ['ss03'] = 'stylistic set 3',
- -- ['ss04'] = 'stylistic set 4',
- -- ['ss05'] = 'stylistic set 5',
- -- ['ss06'] = 'stylistic set 6',
- -- ['ss07'] = 'stylistic set 7',
- -- ['ss08'] = 'stylistic set 8',
- -- ['ss09'] = 'stylistic set 9',
- -- ['ss10'] = 'stylistic set 10',
- -- ['ss11'] = 'stylistic set 11',
- -- ['ss12'] = 'stylistic set 12',
- -- ['ss13'] = 'stylistic set 13',
- -- ['ss14'] = 'stylistic set 14',
- -- ['ss15'] = 'stylistic set 15',
- -- ['ss16'] = 'stylistic set 16',
- -- ['ss17'] = 'stylistic set 17',
- -- ['ss18'] = 'stylistic set 18',
- -- ['ss19'] = 'stylistic set 19',
- -- ['ss20'] = 'stylistic set 20',
-    ['ssty'] = 'script style', -- math
-    ['stch'] = 'stretching glyph decomposition',
-    ['subs'] = 'subscript',
-    ['sups'] = 'superscript',
-    ['swsh'] = 'swash',
-    ['titl'] = 'titling',
-    ['tjmo'] = 'trailing jamo forms',
-    ['tnam'] = 'traditional name forms',
-    ['tnum'] = 'tabular figures',
-    ['trad'] = 'traditional forms',
-    ['twid'] = 'third widths',
-    ['unic'] = 'unicase',
-    ['valt'] = 'alternate vertical metrics',
-    ['vatu'] = 'vattu variants',
-    ['vert'] = 'vertical writing',
-    ['vhal'] = 'alternate vertical half metrics',
-    ['vjmo'] = 'vowel jamo forms',
-    ['vkna'] = 'vertical kana alternates',
-    ['vkrn'] = 'vertical kerning',
-    ['vpal'] = 'proportional alternate vertical metrics',
-    ['vrt2'] = 'vertical rotation',
-    ['zero'] = 'slashed zero',
+    ["aalt"] = "access all alternates",
+    ["abvf"] = "above-base forms",
+    ["abvm"] = "above-base mark positioning",
+    ["abvs"] = "above-base substitutions",
+    ["afrc"] = "alternative fractions",
+    ["akhn"] = "akhands",
+    ["blwf"] = "below-base forms",
+    ["blwm"] = "below-base mark positioning",
+    ["blws"] = "below-base substitutions",
+    ["c2pc"] = "petite capitals from capitals",
+    ["c2sc"] = "small capitals from capitals",
+    ["calt"] = "contextual alternates",
+    ["case"] = "case-sensitive forms",
+    ["ccmp"] = "glyph composition/decomposition",
+    ["cfar"] = "conjunct form after ro",
+    ["cjct"] = "conjunct forms",
+    ["clig"] = "contextual ligatures",
+    ["cpct"] = "centered cjk punctuation",
+    ["cpsp"] = "capital spacing",
+    ["cswh"] = "contextual swash",
+    ["curs"] = "cursive positioning",
+    ["dflt"] = "default processing",
+    ["dist"] = "distances",
+    ["dlig"] = "discretionary ligatures",
+    ["dnom"] = "denominators",
+    ["dtls"] = "dotless forms", -- math
+    ["expt"] = "expert forms",
+    ["falt"] = "final glyph alternates",
+    ["fin2"] = "terminal forms #2",
+    ["fin3"] = "terminal forms #3",
+    ["fina"] = "terminal forms",
+    ["flac"] = "flattened accents over capitals", -- math
+    ["frac"] = "fractions",
+    ["fwid"] = "full width",
+    ["half"] = "half forms",
+    ["haln"] = "halant forms",
+    ["halt"] = "alternate half width",
+    ["hist"] = "historical forms",
+    ["hkna"] = "horizontal kana alternates",
+    ["hlig"] = "historical ligatures",
+    ["hngl"] = "hangul",
+    ["hojo"] = "hojo kanji forms",
+    ["hwid"] = "half width",
+    ["init"] = "initial forms",
+    ["isol"] = "isolated forms",
+    ["ital"] = "italics",
+    ["jalt"] = "justification alternatives",
+    ["jp04"] = "jis2004 forms",
+    ["jp78"] = "jis78 forms",
+    ["jp83"] = "jis83 forms",
+    ["jp90"] = "jis90 forms",
+    ["kern"] = "kerning",
+    ["lfbd"] = "left bounds",
+    ["liga"] = "standard ligatures",
+    ["ljmo"] = "leading jamo forms",
+    ["lnum"] = "lining figures",
+    ["locl"] = "localized forms",
+    ["ltra"] = "left-to-right alternates",
+    ["ltrm"] = "left-to-right mirrored forms",
+    ["mark"] = "mark positioning",
+    ["med2"] = "medial forms #2",
+    ["medi"] = "medial forms",
+    ["mgrk"] = "mathematical greek",
+    ["mkmk"] = "mark to mark positioning",
+    ["mset"] = "mark positioning via substitution",
+    ["nalt"] = "alternate annotation forms",
+    ["nlck"] = "nlc kanji forms",
+    ["nukt"] = "nukta forms",
+    ["numr"] = "numerators",
+    ["onum"] = "old style figures",
+    ["opbd"] = "optical bounds",
+    ["ordn"] = "ordinals",
+    ["ornm"] = "ornaments",
+    ["palt"] = "proportional alternate width",
+    ["pcap"] = "petite capitals",
+    ["pkna"] = "proportional kana",
+    ["pnum"] = "proportional figures",
+    ["pref"] = "pre-base forms",
+    ["pres"] = "pre-base substitutions",
+    ["pstf"] = "post-base forms",
+    ["psts"] = "post-base substitutions",
+    ["pwid"] = "proportional widths",
+    ["qwid"] = "quarter widths",
+    ["rand"] = "randomize",
+    ["rclt"] = "required contextual alternates",
+    ["rkrf"] = "rakar forms",
+    ["rlig"] = "required ligatures",
+    ["rphf"] = "reph form",
+    ["rtbd"] = "right bounds",
+    ["rtla"] = "right-to-left alternates",
+    ["rtlm"] = "right to left mirrored forms",
+    ["rvrn"] = "required variation alternates",
+    ["ruby"] = "ruby notation forms",
+    ["salt"] = "stylistic alternates",
+    ["sinf"] = "scientific inferiors",
+    ["size"] = "optical size", -- now stat table
+    ["smcp"] = "small capitals",
+    ["smpl"] = "simplified forms",
+ -- ["ss01"] = "stylistic set 1",
+ -- ["ss02"] = "stylistic set 2",
+ -- ["ss03"] = "stylistic set 3",
+ -- ["ss04"] = "stylistic set 4",
+ -- ["ss05"] = "stylistic set 5",
+ -- ["ss06"] = "stylistic set 6",
+ -- ["ss07"] = "stylistic set 7",
+ -- ["ss08"] = "stylistic set 8",
+ -- ["ss09"] = "stylistic set 9",
+ -- ["ss10"] = "stylistic set 10",
+ -- ["ss11"] = "stylistic set 11",
+ -- ["ss12"] = "stylistic set 12",
+ -- ["ss13"] = "stylistic set 13",
+ -- ["ss14"] = "stylistic set 14",
+ -- ["ss15"] = "stylistic set 15",
+ -- ["ss16"] = "stylistic set 16",
+ -- ["ss17"] = "stylistic set 17",
+ -- ["ss18"] = "stylistic set 18",
+ -- ["ss19"] = "stylistic set 19",
+ -- ["ss20"] = "stylistic set 20",
+    ["ssty"] = "script style", -- math
+    ["stch"] = "stretching glyph decomposition",
+    ["subs"] = "subscript",
+    ["sups"] = "superscript",
+    ["swsh"] = "swash",
+    ["titl"] = "titling",
+    ["tjmo"] = "trailing jamo forms",
+    ["tnam"] = "traditional name forms",
+    ["tnum"] = "tabular figures",
+    ["trad"] = "traditional forms",
+    ["twid"] = "third widths",
+    ["unic"] = "unicase",
+    ["valt"] = "alternate vertical metrics",
+    ["vatu"] = "vattu variants",
+    ["vert"] = "vertical writing",
+    ["vhal"] = "alternate vertical half metrics",
+    ["vjmo"] = "vowel jamo forms",
+    ["vkna"] = "vertical kana alternates",
+    ["vkrn"] = "vertical kerning",
+    ["vpal"] = "proportional alternate vertical metrics",
+    ["vrt2"] = "vertical rotation",
+    ["zero"] = "slashed zero",
 
-    ['trep'] = 'traditional tex replacements',
-    ['tlig'] = 'traditional tex ligatures',
+    ["trep"] = "traditional tex replacements",
+    ["tlig"] = "traditional tex ligatures",
 
-    ['ss..'] = 'stylistic set ..',
-    ['cv..'] = 'character variant ..',
-    ['js..'] = 'justification ..',
+    ["ss.."] = "stylistic set ..",
+    ["cv.."] = "character variant ..",
+    ["js.."] = "justification ..",
 
     ["dv.."] = "devanagari ..",
     ["ml.."] = "malayalam ..",
 }
 
 local baselines = allocate {
-    ['hang'] = 'hanging baseline',
-    ['icfb'] = 'ideographic character face bottom edge baseline',
-    ['icft'] = 'ideographic character face tope edige baseline',
-    ['ideo'] = 'ideographic em-box bottom edge baseline',
-    ['idtp'] = 'ideographic em-box top edge baseline',
-    ['math'] = 'mathematical centered baseline',
-    ['romn'] = 'roman baseline'
+    ["hang"] = "hanging baseline",
+    ["icfb"] = "ideographic character face bottom edge baseline",
+    ["icft"] = "ideographic character face tope edige baseline",
+    ["ideo"] = "ideographic em-box bottom edge baseline",
+    ["idtp"] = "ideographic em-box top edge baseline",
+    ["math"] = "mathematical centered baseline",
+    ["romn"] = "roman baseline"
 }
 
 tables.scripts   = scripts
diff --git a/tex/context/base/mkiv/font-pre.mkiv b/tex/context/base/mkiv/font-pre.mkiv
index 45f933dd5..ead98e391 100644
--- a/tex/context/base/mkiv/font-pre.mkiv
+++ b/tex/context/base/mkiv/font-pre.mkiv
@@ -19,7 +19,33 @@
 
 % beware, base mode + dynamics can give weird effects
 
-% rlig ccmp
+% frac : with numr dnom
+%
+% vkrn valt vert vrt2 vpal : when vertical
+%
+% rtlm rtla : in r2l runs
+% ltrm ltra : in l2r runs
+%
+% rvrn : variable fonts
+%
+% rtbd lfbd : opbd
+%
+% rkrf rphf vatu vjmo tjmo rclt psts pstf ljmo haln
+% pres pref nukt
+% abvs abvm blwm blws cjct blwf akhn (indic)
+% half
+% abvf cfar (khmer)
+%
+% ccmp locl calt clig liga rlig
+%
+% mkmk mark kern (palt pwid) curs (by choice but some fonts need it)
+%
+% init medi isol fina (unicode)
+% fin3 fin2 med2 : syriac
+%
+% cpsp : percentage spacing (todo)
+%
+% dtls flac :math
 
 \definefontfeature
   [always]
@@ -27,7 +53,10 @@
    script=auto,  % on speed; 'base' just doesn't play well with dynamics; some day we can even
    autoscript=position,
    autolanguage=position,
+% ccmp=yes,
    kern=yes,     % consider skipping the base passes when no base mode is used
+% palt=yes,
+% pwid=yes,
    mark=yes,
    mkmk=yes,
    curs=yes]
@@ -36,6 +65,11 @@
   [default]
   [always]
   [liga=yes,
+% ccmp=yes, % maybe too
+% locl=yes, % maybe too
+% calt=yes, % maybe too
+% clig=yes, % maybe too
+% rlig=yes, % maybe too
    tlig=yes,
    trep=yes] % texligatures=yes,texquotes=yes
 
@@ -101,6 +135,11 @@
   [always]
   [compose=yes,
    liga=yes,
+% ccmp=yes,
+% locl=yes,
+% calt=yes,
+% clig=yes,
+% rlig=yes,
    tlig=yes,
    trep=yes]
 
@@ -114,6 +153,7 @@
   [mode=node,analyze=yes,language=dflt,ccmp=yes,
    autoscript=position,autolanguage=position,
    init=yes,medi=yes,fina=yes,isol=yes,
+% fin2=yes,fin3=yes,med2=yes,
    mark=yes,mkmk=yes,kern=yes,curs=yes,
    liga=yes,dlig=yes,rlig=yes,clig=yes,calt=yes]
 
@@ -122,6 +162,7 @@
   [mode=node,analyze=yes,language=dflt,ccmp=yes,
    autoscript=position,autolanguage=position,
    init=yes,medi=yes,fina=yes,isol=yes,
+% fin2=yes,fin3=yes,med2=yes,
    mark=yes,mkmk=yes,kern=yes,curs=yes,
    rlig=yes,calt=yes]
 
diff --git a/tex/context/base/mkiv/font-sol.lua b/tex/context/base/mkiv/font-sol.lua
index d89f41441..4e6604e12 100644
--- a/tex/context/base/mkiv/font-sol.lua
+++ b/tex/context/base/mkiv/font-sol.lua
@@ -336,7 +336,6 @@ local splitter_one = usernodeids["splitters.one"]
 local splitter_two = usernodeids["splitters.two"]
 
 local a_word       = attributes.private('word')
-local a_fontkern   = attributes.private('fontkern')
 
 local encapsulate  = false
 
@@ -500,7 +499,7 @@ local function collect_words(list) -- can be made faster for attributes
                         report_splitters("skipped: %C",current.char)
                     end
                 end
-            elseif id == kern_code and (getsubtype(current) == fontkern_code or getattr(current,a_fontkern)) then
+            elseif id == kern_code and getsubtype(current) == fontkern_code then
                 if first then
                     last = current
                 else
diff --git a/tex/context/base/mkiv/font-tra.mkiv b/tex/context/base/mkiv/font-tra.mkiv
index a03d30799..8ca4bf3e4 100644
--- a/tex/context/base/mkiv/font-tra.mkiv
+++ b/tex/context/base/mkiv/font-tra.mkiv
@@ -286,6 +286,9 @@
 \letvalue{\??otfcompositiondir  +1}\lefttoright
 \letvalue{\??otfcompositiondir   1}\lefttoright
 
+\unexpanded\def\setotfcompositiondirection#1%
+ {\getvalue{\??otfcompositiondir#1}}
+
 \unexpanded\def\showotfcomposition#1#2#3% {font*features at size}, rl=-1, text
   {\begingroup
    \forgetparindent
@@ -294,7 +297,7 @@
    \setupalign[\v!verytolerant,\v!flushleft]%
    \startotfsample
    \nohyphens
-   \global\setbox\otfcompositionbox\hbox{\definedfont[#1]\relax\getvalue{\??otfcompositiondir#2}\relax#3}%
+   \global\setbox\otfcompositionbox\hbox{\definedfont[#1]\relax\setotfcompositiondirection{#2}\relax#3}%
    \stopotfsample
    \endgroup}
 
diff --git a/tex/context/base/mkiv/lang-wrd.lua b/tex/context/base/mkiv/lang-wrd.lua
index 666f39338..2ec5d68eb 100644
--- a/tex/context/base/mkiv/lang-wrd.lua
+++ b/tex/context/base/mkiv/lang-wrd.lua
@@ -32,17 +32,18 @@ local registered      = languages.registered
 local nuts            = nodes.nuts
 local tonut           = nuts.tonut
 
-local getfield        = nuts.getfield
+----- getfield        = nuts.getfield
 local getnext         = nuts.getnext
 local getid           = nuts.getid
-local getsubtype      = nuts.getsubtype
+----- getsubtype      = nuts.getsubtype
 local getchar         = nuts.getchar
 local setattr         = nuts.setattr
+----- getattr         = nuts.getattr
 local getlang         = nuts.getlang
-local isglyph         = nuts.isglyph
+local ischar          = nuts.ischar
 
 local traverse_nodes  = nuts.traverse
-local traverse_ids    = nuts.traverse_id
+----- traverse_ids    = nuts.traverse_id
 
 local wordsdata       = words.data
 local chardata        = characters.data
@@ -51,13 +52,14 @@ local enableaction    = nodes.tasks.enableaction
 local unsetvalue      = attributes.unsetvalue
 
 local nodecodes       = nodes.nodecodes
-local kerncodes       = nodes.kerncodes
+----- kerncodes       = nodes.kerncodes
 
 local glyph_code      = nodecodes.glyph
-local disc_code       = nodecodes.disc
-local kern_code       = nodecodes.kern
+----- disc_code       = nodecodes.disc
+----- kern_code       = nodecodes.kern
+
+----- fontkern_code   = kerncodes.fontkern
 
-local kerning_code    = kerncodes.kerning
 local lowerchar       = characters.lower
 
 local a_color         = attributes.private('color')
@@ -160,8 +162,8 @@ local function mark_words(head,whenfound) -- can be optimized and shared
     -- we haven't done the fonts yet so we have characters (otherwise
     -- we'd have to use the tounicodes)
     while current do
-        local code, id = isglyph(current)
-        if code then
+        local code, id = ischar(current) -- not isglyph because otherwise we can run into
+        if code then                     -- processed streams (\about[foo] does that)
             local a = getlang(current)
             if a then
                 if a ~= language then
@@ -183,25 +185,29 @@ local function mark_words(head,whenfound) -- can be optimized and shared
             elseif s > 0 then
                 action()
             end
-        elseif id == disc_code then -- take the replace
-            if n > 0 then
-                local r = getfield(current,"replace")
-                if r then
-                    -- also disc itself
-                    n = n + 1
-                    nds[n] = current
-                    --
-                    for current in traverse_ids(glyph_code,r) do
-                        local code = getchar(current)
-                        n = n + 1
-                        nds[n] = current
-                        s = s + 1
-                        str[s] = utfchar(code)
-                    end
-                end
-        end
-        elseif id == kern_code and getsubtype(current) == kerning_code and s > 0 then
-            -- ok
+     -- elseif id == disc_code then
+     --     -- take the replace .. we kick in before we hyphenate so we're
+     --     -- not yet seeing many discs and we only handle explicit ones
+     --     -- in fact we could as well decide to ignore words with a disc
+     --     -- because we then have a compound word
+     --     if n > 0 then
+     --         local r = getfield(current,"replace")
+     --         if r then
+     --             -- also disc itself
+     --             n = n + 1
+     --             nds[n] = current
+     --             --
+     --             for current in traverse_ids(glyph_code,r) do
+     --                 local code = getchar(current)
+     --                 n = n + 1
+     --                 nds[n] = current
+     --                 s = s + 1
+     --                 str[s] = utfchar(code)
+     --             end
+     --         end
+     --     end
+     -- elseif id == kern_code and getsubtype(current) == fontkern_code and s > 0 then
+     --     -- ok
         elseif s > 0 then
             action()
         end
diff --git a/tex/context/base/mkiv/math-tag.lua b/tex/context/base/mkiv/math-tag.lua
index 13c8fffc7..9bb1f1428 100644
--- a/tex/context/base/mkiv/math-tag.lua
+++ b/tex/context/base/mkiv/math-tag.lua
@@ -74,7 +74,6 @@ local processnoads        = noads.process
 local a_tagged            = attributes.private('tagged')
 local a_mathcategory      = attributes.private('mathcategory')
 local a_mathmode          = attributes.private('mathmode')
-local a_fontkern          = attributes.private('fontkern')
 
 local tags                = structures.tags
 
@@ -190,7 +189,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
                 mtexttag = start_tagged("mtext")
             end
             setattr(start,a_tagged,mtexttag)
-        elseif mtexttag and id == kern_code and (getsubtype(start) == fontkern_code or getattr(start,a_fontkern)) then
+        elseif mtexttag and id == kern_code and getsubtype(start) == fontkern_code then
             setattr(start,a_tagged,mtexttag)
         else
             if mtexttag then
diff --git a/tex/context/base/mkiv/node-ltp.lua b/tex/context/base/mkiv/node-ltp.lua
index 22a4799ad..560e72878 100644
--- a/tex/context/base/mkiv/node-ltp.lua
+++ b/tex/context/base/mkiv/node-ltp.lua
@@ -232,8 +232,8 @@ local setkern              = nuts.setkern
 local setdir               = nuts.setdir
 local setshift             = nuts.setshift
 local setwidth             = nuts.setwidth
------ getheight            = nuts.getheight
------ getdepth             = nuts.getdepth
+----- setheight            = nuts.setheight
+----- setdepth             = nuts.setdepth
 
 local slide_node_list      = nuts.slide -- get rid of this, probably ok > 78.2
 local find_tail            = nuts.tail
@@ -282,9 +282,10 @@ local leaders_code         = gluecodes.leaders
 
 local localpar_code        = nodecodes.localpar
 
-local kerning_code         = kerncodes.kerning -- font kern
 local userkern_code        = kerncodes.userkern
 local italickern_code      = kerncodes.italiccorrection
+local fontkern_code        = kerncodes.fontkern
+local accentkern_code      = kerncodes.accentkern
 
 local ligature_code        = glyphcodes.ligature
 
@@ -344,8 +345,6 @@ local dir_pops             = nodes.dir_is_pop
 local dir_negations        = nodes.dir_negation
 local is_skipable          = nuts.protrusion_skippable
 
-local a_fontkern           = attributes.private('fontkern')
-
 -- helpers --
 
 -- It makes more sense to move the somewhat messy dir state tracking
@@ -774,7 +773,7 @@ local function add_to_width(line_break_dir,checked_expansion,s) -- split into tw
         elseif id == kern_code then
             local kern = getkern(s)
             if kern ~= 0 then
-                if checked_expansion and expand_kerns and (getsubtype(s) == kerning_code or getattr(a_fontkern)) then
+                if checked_expansion and expand_kerns and getsubtype(s) == fontkern_code then
                     local stretch, shrink = kern_stretch_shrink(s,kern)
                     if expand_kerns == "stretch" then
                         adjust_stretch = adjust_stretch + stretch
@@ -1491,7 +1490,7 @@ local function post_line_break(par)
                     break
                 elseif id == kern_code then
                     local subtype = getsubtype(next)
-                    if subtype ~= userkern_code and subtype ~= italickern_code and not getattr(next,a_fontkern) then
+                    if subtype == fontkern_code or subtype == accentkern_code then
                         -- fontkerns and accent kerns as well as otf injections
                         break
                     end
@@ -2394,7 +2393,7 @@ function constructors.methods.basic(head,d)
                     local kern = getkern(current)
                     if kern ~= 0 then
                         active_width.size = active_width.size + kern
-                        if checked_expansion and expand_kerns and (getsubtype(current) == kerning_code or getattr(current,a_fontkern)) then
+                        if checked_expansion and expand_kerns and getsubtype(current) == fontkern_code then
                             local stretch, shrink = kern_stretch_shrink(current,kern)
                             if expand_kerns == "stretch" then
                                 active_width.adjust_stretch = active_width.adjust_stretch + stretch
@@ -2555,7 +2554,7 @@ do
                 write(target," ")
             elseif id == kern_code then
                 local s = getsubtype(a)
-                if s == userkern_code or s == italickern_code or getattr(a,a_fontkern) then
+                if s == fontkern_code or s == accentkern_code then
                     if verbose then
                         write(target,"[|]")
                  -- else
@@ -2850,7 +2849,7 @@ do
     --                 end
     --             elseif id == kern_code then
     --                 local kern = getkern(current)
-    --                 if kern ~= 0 and getsubtype(current) == kerning_code then
+    --                 if kern ~= 0 and getsubtype(current) == fontkern_code then
     --                     setkern(current,font_expand_ratio * kern)
     --                 end
     --             end
@@ -2873,7 +2872,7 @@ do
     --                 end
     --             elseif id == kern_code then
     --                 local kern = getkern(current)
-    --                 if kern ~= 0 and getsubtype(current) == kerning_code then
+    --                 if kern ~= 0 and getsubtype(current) == fontkern_code then
     --                     setkern(current,font_expand_ratio * kern)
     --                 end
     --             end
@@ -2971,7 +2970,7 @@ do
                     local kern = getkern(current)
                     if kern == 0 then
                         -- no kern
-                    elseif getsubtype(current) == kerning_code then -- check getkern(p)
+                    elseif getsubtype(current) == fontkern_code then -- check getkern(p)
                         if cal_expand_ratio then
                             local stretch, shrink = kern_stretch_shrink(current,kern)
                             font_stretch = font_stretch + stretch
diff --git a/tex/context/base/mkiv/node-scn.lua b/tex/context/base/mkiv/node-scn.lua
index 67a0badec..b294b3013 100644
--- a/tex/context/base/mkiv/node-scn.lua
+++ b/tex/context/base/mkiv/node-scn.lua
@@ -48,14 +48,13 @@ local spaceskip_code     = gluecodes.spaceskip
 local xspaceskip_code    = gluecodes.xspaceskip
 local leader_code        = gluecodes.leaders
 
-local kerning_code       = kerncodes.kern
+local fontkern_code      = kerncodes.fontkern
 
 local variables          = interfaces.variables
 
 local privateattributes  = attributes.private
 
 local a_runningtext      = privateattributes('runningtext')
-local a_fontkern         = privateattributes('fontkern')
 
 local v_yes              = variables.yes
 local v_all              = variables.all
@@ -173,7 +172,7 @@ local function processwords(attribute,data,flush,head,parent,skip) -- we have hl
                 if f then
                     l = n
                 end
-            elseif id == kern_code and (getsubtype(n) == kerning_code or getattr(n,a_fontkern)) then
+            elseif id == kern_code and getsubtype(n) == fontkern_code then
                 if f then
                     l = n
                 end
@@ -276,7 +275,7 @@ local function processranges(attribute,flush,head,parent,depth,skip)
                 else
                     -- weird
                 end
-            elseif id == kern_code and (getsubtype(n) == kerning_code or getattr(n,a_fontkern)) then
+            elseif id == kern_code and getsubtype(n) == fontkern_code then
                 if f then
                     l = n
                 end
diff --git a/tex/context/base/mkiv/node-syn.lua b/tex/context/base/mkiv/node-syn.lua
index 401cd4349..2fdea49c1 100644
--- a/tex/context/base/mkiv/node-syn.lua
+++ b/tex/context/base/mkiv/node-syn.lua
@@ -44,7 +44,6 @@ local getnext            = nuts.getnext
 local getwhd             = nuts.getwhd
 local getwidth           = nuts.getwidth
 local getsubtype         = nuts.getsubtype
-local getattr            = nuts.getattr
 
 local nodecodes          = nodes.nodecodes
 local kerncodes          = nodes.kerncodes
@@ -70,8 +69,6 @@ local new_hlist          = nodepool.hlist
 local getdimensions      = nuts.dimensions
 local getrangedimensions = nuts.rangedimensions
 
-local a_fontkern         = attributes.private("fontkern")
-
 local get_synctex_fields = nuts.get_synctex_fields
 local set_synctex_fields = nuts.set_synctex_fields
 local set_synctex_line   = tex.set_synctex_line
@@ -348,7 +345,7 @@ local function collect(head,t,l,dp,ht)
                         t, l = tc, lc
                     end
                     last = current
-                elseif id == kern_code and (getsubtype(current) == fontkern_code or getattr(current,a_fontkern)) then
+                elseif id == kern_code and getsubtype(current) == fontkern_code then
                     local tc, lc = get_synctex_fields(current)
                     if tc and tc > 0 then
                         t, l = tc, lc
diff --git a/tex/context/base/mkiv/scrn-wid.mkvi b/tex/context/base/mkiv/scrn-wid.mkvi
index fc0f9fd3e..d7351eb09 100644
--- a/tex/context/base/mkiv/scrn-wid.mkvi
+++ b/tex/context/base/mkiv/scrn-wid.mkvi
@@ -86,7 +86,7 @@
   %\c!method=, % \v!hidden = not in menu
   %\c!buffer=
    \c!symbol=,
-   \c!distance=1em,
+   \c!distance=\emwidth,
    \c!width=\v!fit,
    \c!height=\v!fit,
    \c!depth=\v!fit,
@@ -249,7 +249,7 @@
   {\global\setbox\b_scrn_attachment_collect\hbox\bgroup
      \ifvoid\b_scrn_attachment_collect\else
        \box\b_scrn_attachment_collect
-       \hskip\attachmentparameter\c!distance
+       \hskip\attachmentparameter\c!distance\relax
      \fi
      #content%
    \egroup}
@@ -372,7 +372,7 @@
 
 \setupcomment
   [\c!state=\v!start,
-   \c!distance=1em,
+   \c!distance=\emwidth,
    \c!color=\interactionparameter\c!color,
    \c!space=\v!no,
    \c!symbol=,
@@ -505,7 +505,7 @@
   {\global\setbox\b_scrn_comment_collect\hbox\bgroup
      \ifvoid\b_scrn_comment_collect\else
        \box\b_scrn_comment_collect
-       \hskip\commentparameter\c!distance
+       \hskip\commentparameter\c!distance\relax
      \fi
      \box\b_scrn_comment_link
    \egroup}
@@ -702,7 +702,7 @@
 %    \iflocation
 %      \edef\currentlinkedlist{#1}%
 %      \ifcsname\??lk\currentlinkedlist\s!parent\endcsname
-%        \hskip\linkedlistparameter\c!distance
+%        \hskip\linkedlistparameter\c!distance\relax
 %        \clf_addlinklistelement{\currentlinkedlist}%
 %        \expanded{\ctxlatecommand{enhancelinkedlist("\currentlinkedlist",\currentlink)}}% can also be done at the lua end
 %        \dogotosomepage  {\??lk\currentlinkedlist}\gotobegincharacter \firstlink
diff --git a/tex/context/base/mkiv/sort-lan.lua b/tex/context/base/mkiv/sort-lan.lua
index 21aabf3eb..1aa173d1b 100644
--- a/tex/context/base/mkiv/sort-lan.lua
+++ b/tex/context/base/mkiv/sort-lan.lua
@@ -710,11 +710,11 @@ definitions["it"] = {
     entries = {
         ["a"] = "a", ["á"] = "a", ["b"] = "b", ["c"] = "c", ["d"] = "d",
         ["e"] = "e", ["é"] = "e", ["è"] = "e", ["f"] = "f", ["g"] = "g",
-        ["h"] = "h", ["i"] = "i", ["í"] = "i", ["ì"] = "i", ["j"] = "i",
+        ["h"] = "h", ["i"] = "i", ["í"] = "i", ["ì"] = "i", ["j"] = "j",
         ["k"] = "k", ["l"] = "l", ["m"] = "m", ["n"] = "n", ["o"] = "o",
         ["ó"] = "o", ["ò"] = "o", ["p"] = "p", ["q"] = "q", ["r"] = "r",
         ["s"] = "s", ["t"] = "t", ["u"] = "u", ["ú"] = "u", ["ù"] = "u",
-        ["v"] = "u", ["w"] = "w", ["x"] = "x", ["y"] = "y", ["z"] = "z",
+        ["v"] = "v", ["w"] = "w", ["x"] = "x", ["y"] = "y", ["z"] = "z",
     },
     orders = {
         "a", "á", "b", "c", "d", "e", "é", "è", "f", "g",
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index cbf98e2ef..f895df337 100644
Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 3b7a6a9b7..2a8de95c2 100644
Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf differ
diff --git a/tex/context/base/mkiv/task-ini.lua b/tex/context/base/mkiv/task-ini.lua
index 1d17148c3..321528033 100644
--- a/tex/context/base/mkiv/task-ini.lua
+++ b/tex/context/base/mkiv/task-ini.lua
@@ -39,11 +39,8 @@ appendaction("processors",   "characters",  "typesetters.breakpoints.handler")
 appendaction("processors",   "characters",  "scripts.injectors.handler")                         -- disabled
 
 appendaction("processors",   "words",       "languages.replacements.handler")                    -- disabled
-
-appendaction("processors",   "words",       "languages.hyphenators.handler")                     -- always on
-
 appendaction("processors",   "words",       "languages.words.check")                             -- disabled  -- might move up, no disc check needed then
-
+appendaction("processors",   "words",       "languages.hyphenators.handler")                     -- always on
 appendaction("processors",   "words",       "typesetters.initials.handler")                      -- disabled  -- might move up
 appendaction("processors",   "words",       "typesetters.firstlines.handler")                    -- disabled  -- might move down
 
diff --git a/tex/context/base/mkiv/trac-vis.lua b/tex/context/base/mkiv/trac-vis.lua
index 5d98bc24f..d58114d71 100644
--- a/tex/context/base/mkiv/trac-vis.lua
+++ b/tex/context/base/mkiv/trac-vis.lua
@@ -144,7 +144,6 @@ local starttiming         = statistics.starttiming
 local stoptiming          = statistics.stoptiming
 
 local a_visual            = attributes.private("visual")
-local a_fontkern          = attributes.private("fontkern")
 local a_layer             = attributes.private("viewerlayer")
 
 local hasbit              = number.hasbit
@@ -1015,8 +1014,7 @@ local function visualize(head,vertical,forced,parent)
             setdisc(current,pre,post,replace)
         elseif id == kern_code then
             local subtype = getsubtype(current)
-            -- tricky ... we don't copy the trace attribute in node-inj (yet)
-            if subtype == font_kern_code or getattr(current,a_fontkern) then
+            if subtype == font_kern_code then
                 if trace_fontkern or prev_trace_fontkern then
                     head, current = fontkern(head,current)
                 end
diff --git a/tex/context/base/mkiv/typo-cap.lua b/tex/context/base/mkiv/typo-cap.lua
index 6bf4669df..e10b9df9c 100644
--- a/tex/context/base/mkiv/typo-cap.lua
+++ b/tex/context/base/mkiv/typo-cap.lua
@@ -52,7 +52,7 @@ local kern_code       = nodecodes.kern
 local disc_code       = nodecodes.disc
 local math_code       = nodecodes.math
 
-local kerning_code    = kerncodes.kerning
+local fontkern_code   = kerncodes.fontkern
 
 local enableaction    = nodes.tasks.enableaction
 
@@ -427,7 +427,7 @@ function cases.handler(head) -- not real fast but also not used on much data
         elseif id == math_code then
             start = end_of_math(start)
             count = 0
-        elseif prev_id == kern_code and getsubtype(prev) == kerning_code then
+        elseif prev_id == kern_code and getsubtype(prev) == fontkern_code then
             -- still inside a word ...normally kerns are added later
         else
             count = 0
@@ -535,7 +535,7 @@ end
 --             elseif id == math_code then
 --                 start = end_of_math(start)
 --                 count = 0
---             elseif prev_id == kern_code and getsubtype(prev) == kerning_code then
+--             elseif prev_id == kern_code and getsubtype(prev) == fontkern_code then
 --                 -- still inside a word ...normally kerns are added later
 --             else
 --                 count = 0
diff --git a/tex/context/base/mkiv/typo-krn.lua b/tex/context/base/mkiv/typo-krn.lua
index 24a91d6b6..8806a99b5 100644
--- a/tex/context/base/mkiv/typo-krn.lua
+++ b/tex/context/base/mkiv/typo-krn.lua
@@ -8,6 +8,8 @@ if not modules then modules = { } end modules ['typo-krn'] = {
 
 -- glue is still somewhat suboptimal
 -- components: better split on tounicode
+--
+-- maybe ignore when properties[n].injections.cursivex (or mark)
 
 local next, type, tonumber = next, type, tonumber
 
@@ -79,7 +81,7 @@ local user_list_code     = listcodes.unknown
 local discretionary_code = disccodes.discretionary
 local automatic_code     = disccodes.automatic
 
-local kerning_code       = kerncodes.kerning
+local fontkern_code      = kerncodes.fontkern
 local userkern_code      = kerncodes.userkern
 local userskip_code      = skipcodes.userskip
 local spaceskip_code     = skipcodes.spaceskip
@@ -113,7 +115,6 @@ local trace_ligatures_d  = false  trackers.register("typesetters.kerns.ligatures
 kerns.mapping            = kerns.mapping or { }
 kerns.factors            = kerns.factors or { }
 local a_kerns            = attributes.private("kern")
-local a_fontkern         = attributes.private('fontkern')
 
 local contextsetups      = fonts.specifiers.contextsetups
 
@@ -223,7 +224,7 @@ end
 local function inject_begin(boundary,prev,keeptogether,krn,ok) -- prev is a glyph
     local char, id = isglyph(boundary)
     if id == kern_code then
-        if getsubtype(boundary) == kerning_code or getattr(boundary,a_fontkern) then
+        if getsubtype(boundary) == fontkern_code then
             local inject = true
             if keeptogether then
                 local next = getnext(boundary)
@@ -259,7 +260,7 @@ local function inject_end(boundary,next,keeptogether,krn,ok)
     local tail = find_node_tail(boundary)
     local char, id = getid(tail)
     if id == kern_code then
-        if getsubtype(tail) == kerning_code or getattr(tail,a_fontkern) then
+        if getsubtype(tail) == fontkern_code then
             local inject = true
             if keeptogether then
                 local prev = getprev(tail)
@@ -309,7 +310,7 @@ local function process_list(head,keeptogether,krn,font,okay)
                 if mark[char] then
                     -- skip
                 elseif pid == kern_code then
-                    if getsubtype(prev) == kerning_code or getattr(prev,a_fontkern) then
+                    if getsubtype(prev) == fontkern_code then
                         local inject = true
                         if keeptogether then
                             local prevprev = getprev(prev)
@@ -408,7 +409,7 @@ function kerns.handler(head)
                 elseif mark[char] then
                     -- skip
                 elseif previd == kern_code then
-                    if getsubtype(prev) == kerning_code or getattr(prev,a_fontkern) then
+                    if getsubtype(prev) == fontkern_code then
                         local inject = true
                         if keeptogether then
                             if previd == glyph_code and keeptogether(prev,start) then
@@ -518,7 +519,7 @@ function kerns.handler(head)
                 end
                 bound = false
             elseif id == kern_code then
-                bound  = getsubtype(start) == kerning_code or getattr(start,a_fontkern)
+                bound  = getsubtype(start) == fontkern_code
                 prev   = start
                 previd = id
             elseif id == glue_code then
@@ -564,7 +565,7 @@ function kerns.handler(head)
                 start = getnext(start)
             end
         elseif id == kern_code then
-            bound  = getsubtype(start) == kerning_code or getattr(start,a_fontkern)
+            bound  = getsubtype(start) == fontkern_code
             prev   = start
             previd = id
             start  = getnext(start)
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 7cb008805..0a55fc4cc 100644
Binary files a/tex/context/interface/mkiv/i-context.pdf and b/tex/context/interface/mkiv/i-context.pdf differ
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index 9b2c03c97..ec3987b83 100644
Binary files a/tex/context/interface/mkiv/i-readme.pdf and b/tex/context/interface/mkiv/i-readme.pdf differ
diff --git a/tex/context/modules/common/s-abr-01.tex b/tex/context/modules/common/s-abr-01.tex
index d71df6c0a..9a6679066 100644
--- a/tex/context/modules/common/s-abr-01.tex
+++ b/tex/context/modules/common/s-abr-01.tex
@@ -33,6 +33,7 @@
 
 %logo [FGA]           {fga}
 %logo [FGBBS]         {fgbbs}
+\logo [AI]            {ai}
 \logo [ACROBAT]       {Acro\-bat}
 \logo [APA]           {apa}
 \logo [AFM]           {afm}
@@ -75,6 +76,8 @@
 \logo [CWEB]          {cweb}
 \logo [CSTUG]         {cstug}
 \logo [DANTE]         {Dante}
+\logo [DECTEN]        {dec-10}
+\logo [DNA]           {dna}
 \logo [DISTILLER]     {distiller}
 \logo [DRATEX]        {Dra\TeXsuffix}
 \logo [DSC]           {dsc}
@@ -229,6 +232,7 @@
 \logo [PSTOPDF]       {pstopdf}
 \logo [PSTRICKS]      {pstricks}
 \logo [RAM]           {ram}
+\logo [RCA]           {RCA}
 \logo [READER]        {Acro\-bat Reader}
 \logo [RELAXNG]       {Relax\kern.125emNG}
 \logo [RGB]           {rgb}
@@ -321,6 +325,7 @@
 \logo [XSLT]          {xslt}
 \logo [XSLTPROC]      {xsltproc}
 \logo [XYPIC]         {XYPIC} % wrong logo
+\logo [VAX]           {vax}
 \logo [VMWARE]        {VMWare}
 \logo [YandY]         {y\&y}
 \logo [ZIP]           {zip}
diff --git a/tex/context/modules/mkiv/s-fnt-20.mkiv b/tex/context/modules/mkiv/s-fnt-20.mkiv
index 584043099..5d6ac75ef 100644
--- a/tex/context/modules/mkiv/s-fnt-20.mkiv
+++ b/tex/context/modules/mkiv/s-fnt-20.mkiv
@@ -136,6 +136,7 @@
                 {\getvariable{otftracker}{font}*\getvariable{otftracker}{features} at \getvariable{otftracker}{size}}
                 {\getvariable{otftracker}{direction}}
                 {\getvariable{otftracker}{sample}}
+            \directsetup{otftracker-extra}
         \stopchapter
     \stoptext
 \stopsetups
diff --git a/tex/generic/context/luatex/luatex-basics-nod.lua b/tex/generic/context/luatex/luatex-basics-nod.lua
index 35fc96b48..e2d91af41 100644
--- a/tex/generic/context/luatex/luatex-basics-nod.lua
+++ b/tex/generic/context/luatex/luatex-basics-nod.lua
@@ -48,7 +48,6 @@ end
 -- Nodes (a subset of context so that we don't get too much unused code):
 
 nodes              = { }
-nodes.pool         = { }
 nodes.handlers     = { }
 
 local nodecodes    = { }
@@ -73,7 +72,6 @@ nodes.disccodes    = disccodes
 
 local flush_node   = node.flush_node
 local remove_node  = node.remove
-local new_node     = node.new
 local traverse_id  = node.traverse_id
 
 nodes.handlers.protectglyphs   = node.protect_glyphs
@@ -108,12 +106,6 @@ function nodes.delete(head,current)
     return nodes.remove(head,current,true)
 end
 
-function nodes.pool.kern(k)
-    local n = new_node("kern",1)
-    n.kern = k
-    return n
-end
-
 local getfield = node.getfield
 local setfield = node.setfield
 
@@ -294,20 +286,11 @@ nuts.traverse_id         = direct.traverse_id
 nuts.traverse_char       = direct.traverse_char
 nuts.ligaturing          = direct.ligaturing
 nuts.kerning             = direct.kerning
+nuts.new                 = direct.new
 
 nuts.getprop             = nuts.getattr
 nuts.setprop             = nuts.setattr
 
-local new_nut            = direct.new
-nuts.new                 = new_nut
-nuts.pool                = { }
-
-function nuts.pool.kern(k)
-    local n = new_nut("kern",1)
-    setfield(n,"kern",k)
-    return n
-end
-
 -- properties as used in the (new) injector:
 
 local propertydata = direct.get_properties_table()
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 43577b42c..5d67d8059 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -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  : 06/21/17 23:03:59
+-- merge date  : 06/27/17 18:05:12
 
 do -- begin closure to overcome local limits and interference
 
@@ -4966,7 +4966,6 @@ attributes.private=attributes.private or function(name)
   return number
 end
 nodes={}
-nodes.pool={}
 nodes.handlers={}
 local nodecodes={}
 local glyphcodes=node.subtypes("glyph")
@@ -4987,7 +4986,6 @@ nodes.glyphcodes=glyphcodes
 nodes.disccodes=disccodes
 local flush_node=node.flush_node
 local remove_node=node.remove
-local new_node=node.new
 local traverse_id=node.traverse_id
 nodes.handlers.protectglyphs=node.protect_glyphs
 nodes.handlers.unprotectglyphs=node.unprotect_glyphs
@@ -5016,11 +5014,6 @@ end
 function nodes.delete(head,current)
   return nodes.remove(head,current,true)
 end
-function nodes.pool.kern(k)
-  local n=new_node("kern",1)
-  n.kern=k
-  return n
-end
 local getfield=node.getfield
 local setfield=node.setfield
 nodes.getfield=getfield
@@ -5172,16 +5165,9 @@ nuts.traverse_id=direct.traverse_id
 nuts.traverse_char=direct.traverse_char
 nuts.ligaturing=direct.ligaturing
 nuts.kerning=direct.kerning
+nuts.new=direct.new
 nuts.getprop=nuts.getattr
 nuts.setprop=nuts.setattr
-local new_nut=direct.new
-nuts.new=new_nut
-nuts.pool={}
-function nuts.pool.kern(k)
-  local n=new_nut("kern",1)
-  setfield(n,"kern",k)
-  return n
-end
 local propertydata=direct.get_properties_table()
 nodes.properties={ data=propertydata }
 direct.set_properties_mode(true,true)   
@@ -20547,7 +20533,6 @@ local kern_code=nodecodes.kern
 local glue_code=nodecodes.glue
 local nuts=nodes.nuts
 local nodepool=nuts.pool
-local newkern=nodepool.kern
 local tonode=nuts.tonode
 local tonut=nuts.tonut
 local getfield=nuts.getfield
@@ -20573,9 +20558,18 @@ local traverse_char=nuts.traverse_char
 local insert_node_before=nuts.insert_before
 local insert_node_after=nuts.insert_after
 local properties=nodes.properties.data
-function injections.installnewkern(nk)
-  newkern=nk or newkern
-end
+local fontkern=nuts.pool and nuts.pool.fontkern 
+do if not fontkern then 
+  local thekern=nuts.new("kern",0) 
+  local setkern=nuts.setkern
+  local copy_node=nuts.copy_node
+  fontkern=function(k)
+    local n=copy_node(thekern)
+    setkern(n,k)
+    return n
+  end
+end end
+function injections.installnewkern() end 
 local nofregisteredkerns=0
 local nofregisteredpairs=0
 local nofregisteredmarks=0
@@ -20778,21 +20772,40 @@ function injections.setkern(current,factor,rlmode,x,injection)
     if not injection then
       injection="injections"
     end
-    if p then
-      local i=rawget(p,injection)
-      if i then
-        i.leftkern=dx+(i.leftkern or 0)
+    if rlmode and rlmode<0 then
+      if p then
+        local i=rawget(p,injection)
+        if i then
+          i.rightkern=dx+(i.rightkern or 0)
+        else
+          p[injection]={
+            rightkern=dx,
+          }
+        end
       else
-        p[injection]={
-          leftkern=dx,
+        properties[current]={
+          [injection]={
+            rightkern=dx,
+          },
         }
       end
     else
-      properties[current]={
-        [injection]={
-          leftkern=dx,
-        },
-      }
+      if p then
+        local i=rawget(p,injection)
+        if i then
+          i.leftkern=dx+(i.leftkern or 0)
+        else
+          p[injection]={
+            leftkern=dx,
+          }
+        end
+      else
+        properties[current]={
+          [injection]={
+            leftkern=dx,
+          },
+        }
+      end
     end
     return dx,nofregisteredkerns
   else
@@ -20980,7 +20993,7 @@ local function inject_kerns_only(head,where)
         if i then
           local leftkern=i.leftkern
           if leftkern and leftkern~=0 then
-            head=insert_node_before(head,current,newkern(leftkern))
+            head=insert_node_before(head,current,fontkern(leftkern))
           end
         end
         if prevdisc then
@@ -20990,7 +21003,7 @@ local function inject_kerns_only(head,where)
             if i then
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                setlink(posttail,newkern(leftkern))
+                setlink(posttail,fontkern(leftkern))
                 done=true
               end
             end
@@ -21000,7 +21013,7 @@ local function inject_kerns_only(head,where)
             if i then
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                setlink(replacetail,newkern(leftkern))
+                setlink(replacetail,fontkern(leftkern))
                 done=true
               end
             end
@@ -21009,7 +21022,7 @@ local function inject_kerns_only(head,where)
             if i then
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                setfield(prev,"replace",newkern(leftkern)) 
+                setfield(prev,"replace",fontkern(leftkern)) 
               end
             end
           end
@@ -21034,7 +21047,7 @@ local function inject_kerns_only(head,where)
             if i then
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                pre=insert_node_before(pre,n,newkern(leftkern))
+                pre=insert_node_before(pre,n,fontkern(leftkern))
                 done=true
               end
             end
@@ -21049,7 +21062,7 @@ local function inject_kerns_only(head,where)
             if i then
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                post=insert_node_before(post,n,newkern(leftkern))
+                post=insert_node_before(post,n,fontkern(leftkern))
                 done=true
               end
             end
@@ -21064,7 +21077,7 @@ local function inject_kerns_only(head,where)
             if i then
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                replace=insert_node_before(replace,n,newkern(leftkern))
+                replace=insert_node_before(replace,n,fontkern(leftkern))
                 done=true
               end
             end
@@ -21123,11 +21136,11 @@ local function inject_pairs_only(head,where)
           end
           local leftkern=i.leftkern
           if leftkern and leftkern~=0 then
-            head=insert_node_before(head,current,newkern(leftkern))
+            head=insert_node_before(head,current,fontkern(leftkern))
           end
           local rightkern=i.rightkern
           if rightkern and rightkern~=0 then
-            insert_node_after(head,current,newkern(rightkern))
+            insert_node_after(head,current,fontkern(rightkern))
           end
         else
           local i=p.emptyinjections
@@ -21137,7 +21150,7 @@ local function inject_pairs_only(head,where)
               if next and getid(next)==disc_code then
                 if replace then
                 else
-                  setfield(next,"replace",newkern(rightkern)) 
+                  setfield(next,"replace",fontkern(rightkern)) 
                 end
               end
             end
@@ -21150,7 +21163,7 @@ local function inject_pairs_only(head,where)
             if i then
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                setlink(posttail,newkern(leftkern))
+                setlink(posttail,fontkern(leftkern))
                 done=true
               end
             end
@@ -21160,7 +21173,7 @@ local function inject_pairs_only(head,where)
             if i then
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                setlink(replacetail,newkern(leftkern))
+                setlink(replacetail,fontkern(leftkern))
                 done=true
               end
             end
@@ -21169,7 +21182,7 @@ local function inject_pairs_only(head,where)
             if i then
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                setfield(prev,"replace",newkern(leftkern)) 
+                setfield(prev,"replace",fontkern(leftkern)) 
               end
             end
           end
@@ -21198,12 +21211,12 @@ local function inject_pairs_only(head,where)
               end
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                pre=insert_node_before(pre,n,newkern(leftkern))
+                pre=insert_node_before(pre,n,fontkern(leftkern))
                 done=true
               end
               local rightkern=i.rightkern
               if rightkern and rightkern~=0 then
-                insert_node_after(pre,n,newkern(rightkern))
+                insert_node_after(pre,n,fontkern(rightkern))
                 done=true
               end
             end
@@ -21222,12 +21235,12 @@ local function inject_pairs_only(head,where)
               end
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                post=insert_node_before(post,n,newkern(leftkern))
+                post=insert_node_before(post,n,fontkern(leftkern))
                 done=true
               end
               local rightkern=i.rightkern
               if rightkern and rightkern~=0 then
-                insert_node_after(post,n,newkern(rightkern))
+                insert_node_after(post,n,fontkern(rightkern))
                 done=true
               end
             end
@@ -21246,12 +21259,12 @@ local function inject_pairs_only(head,where)
               end
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                replace=insert_node_before(replace,n,newkern(leftkern))
+                replace=insert_node_before(replace,n,fontkern(leftkern))
                 done=true
               end
               local rightkern=i.rightkern
               if rightkern and rightkern~=0 then
-                insert_node_after(replace,n,newkern(rightkern))
+                insert_node_after(replace,n,fontkern(rightkern))
                 done=true
               end
             end
@@ -21266,7 +21279,7 @@ local function inject_pairs_only(head,where)
             if i then
               local rightkern=i.rightkern
               if rightkern and rightkern~=0 then
-                pre=insert_node_before(pre,pre,newkern(rightkern))
+                pre=insert_node_before(pre,pre,fontkern(rightkern))
                 done=true
               end
             end
@@ -21279,7 +21292,7 @@ local function inject_pairs_only(head,where)
             if i then
               local rightkern=i.rightkern
               if rightkern and rightkern~=0 then
-                replace=insert_node_before(replace,replace,newkern(rightkern))
+                replace=insert_node_before(replace,replace,fontkern(rightkern))
                 done=true
               end
             end
@@ -21371,7 +21384,9 @@ local function inject_everything(head,where)
     else
       if pn.markdir<0 then
         ox=px-pn.markx
-+(pn.leftkern or 0)
+if not pn.markmark then 
+  ox=ox+(pn.leftkern or 0)
+end
       else
         ox=px-pn.markx
       end
@@ -21382,13 +21397,15 @@ local function inject_everything(head,where)
           if trace_injections then
             report_injections("correcting non zero width mark %C",getchar(n))
           end
-          insert_node_before(n,n,newkern(-wn))
-          insert_node_after(n,n,newkern(-wn))
+          insert_node_before(n,n,fontkern(-wn))
+          insert_node_after(n,n,fontkern(-wn))
         end
       end
     end
     local oy=ny+py+pn.marky
-oy=oy+(pn.yoffset or 0)
+if not pn.markmark then
+  oy=oy+(pn.yoffset or 0)
+end
     setoffsets(n,ox,oy)
     if trace_marks then
       showoffset(n,true)
@@ -21464,11 +21481,11 @@ oy=oy+(pn.yoffset or 0)
             end
             local leftkern=i.leftkern
             if leftkern and leftkern~=0 then
-              head=insert_node_before(head,current,newkern(leftkern))
+              head=insert_node_before(head,current,fontkern(leftkern))
             end
             local rightkern=i.rightkern
             if rightkern and rightkern~=0 then
-              insert_node_after(head,current,newkern(rightkern))
+              insert_node_after(head,current,fontkern(rightkern))
             end
           end
         else
@@ -21479,7 +21496,7 @@ oy=oy+(pn.yoffset or 0)
               if next and getid(next)==disc_code then
                 if replace then
                 else
-                  setfield(next,"replace",newkern(rightkern)) 
+                  setfield(next,"replace",fontkern(rightkern)) 
                 end
               end
             end
@@ -21493,7 +21510,7 @@ oy=oy+(pn.yoffset or 0)
               if i then
                 local leftkern=i.leftkern
                 if leftkern and leftkern~=0 then
-                  setlink(posttail,newkern(leftkern))
+                  setlink(posttail,fontkern(leftkern))
                   done=true
                 end
               end
@@ -21503,7 +21520,7 @@ oy=oy+(pn.yoffset or 0)
               if i then
                 local leftkern=i.leftkern
                 if leftkern and leftkern~=0 then
-                  setlink(replacetail,newkern(leftkern))
+                  setlink(replacetail,fontkern(leftkern))
                   done=true
                 end
               end
@@ -21512,7 +21529,7 @@ oy=oy+(pn.yoffset or 0)
               if i then
                 local leftkern=i.leftkern
                 if leftkern and leftkern~=0 then
-                  setfield(prev,"replace",newkern(leftkern)) 
+                  setfield(prev,"replace",fontkern(leftkern)) 
                 end
               end
             end
@@ -21554,12 +21571,12 @@ oy=oy+(pn.yoffset or 0)
               end
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                pre=insert_node_before(pre,n,newkern(leftkern))
+                pre=insert_node_before(pre,n,fontkern(leftkern))
                 done=true
               end
               local rightkern=i.rightkern
               if rightkern and rightkern~=0 then
-                insert_node_after(pre,n,newkern(rightkern))
+                insert_node_after(pre,n,fontkern(rightkern))
                 done=true
               end
               if hasmarks then
@@ -21584,12 +21601,12 @@ oy=oy+(pn.yoffset or 0)
               end
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                post=insert_node_before(post,n,newkern(leftkern))
+                post=insert_node_before(post,n,fontkern(leftkern))
                 done=true
               end
               local rightkern=i.rightkern
               if rightkern and rightkern~=0 then
-                insert_node_after(post,n,newkern(rightkern))
+                insert_node_after(post,n,fontkern(rightkern))
                 done=true
               end
               if hasmarks then
@@ -21614,12 +21631,12 @@ oy=oy+(pn.yoffset or 0)
               end
               local leftkern=i.leftkern
               if leftkern and leftkern~=0 then
-                replace=insert_node_before(replace,n,newkern(leftkern))
+                replace=insert_node_before(replace,n,fontkern(leftkern))
                 done=true
               end
               local rightkern=i.rightkern
               if rightkern and rightkern~=0 then
-                insert_node_after(replace,n,newkern(rightkern))
+                insert_node_after(replace,n,fontkern(rightkern))
                 done=true
               end
               if hasmarks then
@@ -21640,7 +21657,7 @@ oy=oy+(pn.yoffset or 0)
             if i then
               local rightkern=i.rightkern
               if rightkern and rightkern~=0 then
-                pre=insert_node_before(pre,pre,newkern(rightkern))
+                pre=insert_node_before(pre,pre,fontkern(rightkern))
                 done=true
               end
             end
@@ -21653,7 +21670,7 @@ oy=oy+(pn.yoffset or 0)
             if i then
               local rightkern=i.rightkern
               if rightkern and rightkern~=0 then
-                replace=insert_node_before(replace,replace,newkern(rightkern))
+                replace=insert_node_before(replace,replace,fontkern(rightkern))
                 done=true
               end
             end
@@ -22393,8 +22410,8 @@ end
 local function logwarning(...)
   report_direct(...)
 end
-local f_unicode=formatters["%U"]
-local f_uniname=formatters["%U (%s)"]
+local f_unicode=formatters["U+%X"]   
+local f_uniname=formatters["U+%X (%s)"] 
 local f_unilist=formatters["% t (% t)"]
 local function gref(n) 
   if type(n)=="number" then
@@ -22944,8 +22961,8 @@ function handlers.gpos_mark2base(head,start,dataset,sequence,markanchors,rlmode)
           local ma=markanchors[2]
           local dx,dy,bound=setmark(start,base,factor,rlmode,ba,ma,characters[basechar],false,checkmarks)
           if trace_marks then
-            logprocess("%s, anchor %s, bound %s: anchoring mark %s to basechar %s => (%p,%p)",
-              pref(dataset,sequence),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+            logprocess("%s, bound %s, anchoring mark %s to basechar %s => (%p,%p)",
+              pref(dataset,sequence),bound,gref(markchar),gref(basechar),dx,dy)
           end
           return head,start,true
         elseif trace_bugs then
@@ -23001,8 +23018,8 @@ function handlers.gpos_mark2ligature(head,start,dataset,sequence,markanchors,rlm
             if ba then
               local dx,dy,bound=setmark(start,base,factor,rlmode,ba,ma,characters[basechar],false,checkmarks)
               if trace_marks then
-                logprocess("%s, anchor %s, index %s, bound %s: anchoring mark %s to baselig %s at index %s => (%p,%p)",
-                  pref(dataset,sequence),anchor,index,bound,gref(markchar),gref(basechar),index,dx,dy)
+                logprocess("%s, index %s, bound %s, anchoring mark %s to baselig %s at index %s => (%p,%p)",
+                  pref(dataset,sequence),index,bound,gref(markchar),gref(basechar),index,dx,dy)
               end
               return head,start,true
             else
@@ -23048,8 +23065,8 @@ function handlers.gpos_mark2mark(head,start,dataset,sequence,markanchors,rlmode)
           local ma=markanchors[2]
           local dx,dy,bound=setmark(start,base,factor,rlmode,ba,ma,characters[basechar],true,checkmarks)
           if trace_marks then
-            logprocess("%s, anchor %s, bound %s: anchoring mark %s to basemark %s => (%p,%p)",
-              pref(dataset,sequence),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+            logprocess("%s, bound %s, anchoring mark %s to basemark %s => (%p,%p)",
+              pref(dataset,sequence),bound,gref(markchar),gref(basechar),dx,dy)
           end
           return head,start,true
         end
@@ -23456,8 +23473,8 @@ function chainprocs.gpos_mark2base(head,start,stop,dataset,sequence,currentlooku
               if ma then
                 local dx,dy,bound=setmark(start,base,factor,rlmode,ba,ma,characters[basechar],false,checkmarks)
                 if trace_marks then
-                  logprocess("%s, anchor %s, bound %s: anchoring mark %s to basechar %s => (%p,%p)",
-                    cref(dataset,sequence),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+                  logprocess("%s, bound %s, anchoring mark %s to basechar %s => (%p,%p)",
+                    cref(dataset,sequence),bound,gref(markchar),gref(basechar),dx,dy)
                 end
                 return head,start,true
               end
@@ -23526,8 +23543,8 @@ function chainprocs.gpos_mark2ligature(head,start,stop,dataset,sequence,currentl
                 if ba then
                   local dx,dy,bound=setmark(start,base,factor,rlmode,ba,ma,characters[basechar],false,checkmarks)
                   if trace_marks then
-                    logprocess("%s, anchor %s, bound %s: anchoring mark %s to baselig %s at index %s => (%p,%p)",
-                      cref(dataset,sequence),anchor,a or bound,gref(markchar),gref(basechar),index,dx,dy)
+                    logprocess("%s, bound %s, anchoring mark %s to baselig %s at index %s => (%p,%p)",
+                      cref(dataset,sequence),a or bound,gref(markchar),gref(basechar),index,dx,dy)
                   end
                   return head,start,true
                 end
@@ -23582,8 +23599,8 @@ function chainprocs.gpos_mark2mark(head,start,stop,dataset,sequence,currentlooku
               if ma then
                 local dx,dy,bound=setmark(start,base,factor,rlmode,ba,ma,characters[basechar],true,checkmarks)
                 if trace_marks then
-                  logprocess("%s, anchor %s, bound %s: anchoring mark %s to basemark %s => (%p,%p)",
-                    cref(dataset,sequence),anchor,bound,gref(markchar),gref(basechar),dx,dy)
+                  logprocess("%s, bound %s, anchoring mark %s to basemark %s => (%p,%p)",
+                    cref(dataset,sequence),bound,gref(markchar),gref(basechar),dx,dy)
                 end
                 return head,start,true
               end
@@ -23657,12 +23674,21 @@ end
 local function show_skip(dataset,sequence,char,ck,class)
   logwarning("%s: skipping char %s, class %a, rule %a, lookuptype %a",cref(dataset,sequence),gref(char),class,ck[1],ck[8] or ck[2])
 end
-local new_kern=nuts.pool.kern
+local userkern=nuts.pool and nuts.pool.newkern 
+do if not userkern then 
+  local thekern=nuts.new("kern",1) 
+  local setkern=nuts.setkern    
+  userkern=function(k)
+    local n=copy_node(thekern)
+    setkern(n,k)
+    return n
+  end
+end end
 local function checked(head)
   local current=head
   while current do
     if getid(current)==glue_code then
-      local kern=new_kern(getwidth(current))
+      local kern=userkern(getwidth(current))
       if head==current then
         local next=getnext(current)
         if next then
-- 
cgit v1.2.3