socsvn commit: r271972 - in soc2014/ghostmansd/head/lib: libc/locale libc/string libc/unicode libcolldb
ghostmansd at FreeBSD.org
ghostmansd at FreeBSD.org
Wed Aug 6 01:01:12 UTC 2014
Author: ghostmansd
Date: Wed Aug 6 01:01:08 2014
New Revision: 271972
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=271972
Log:
collation database implementation
libcolldb provides both fast and clear interface to work
with collation-specific data. It is used in the implementation
of the Unicode Collation Algorithm. I was not sure where to put
all these files (especially Python's bindings), so I put it
to lib/libcolldb for some time.
Added:
soc2014/ghostmansd/head/lib/libcolldb/
soc2014/ghostmansd/head/lib/libcolldb/CLDR.src
soc2014/ghostmansd/head/lib/libcolldb/DUCET.src
soc2014/ghostmansd/head/lib/libcolldb/colldb.c
soc2014/ghostmansd/head/lib/libcolldb/colldb.h
soc2014/ghostmansd/head/lib/libcolldb/colldb.py
Deleted:
soc2014/ghostmansd/head/lib/libc/unicode/ducet.h
Modified:
soc2014/ghostmansd/head/lib/libc/locale/xlocale_private.h
soc2014/ghostmansd/head/lib/libc/string/wcscoll.c
soc2014/ghostmansd/head/lib/libc/string/wcsxfrm.c
soc2014/ghostmansd/head/lib/libc/unicode/ccclass.h
soc2014/ghostmansd/head/lib/libc/unicode/ucscoll.c
soc2014/ghostmansd/head/lib/libc/unicode/ucsxfrm.c
Modified: soc2014/ghostmansd/head/lib/libc/locale/xlocale_private.h
==============================================================================
--- soc2014/ghostmansd/head/lib/libc/locale/xlocale_private.h Wed Aug 6 00:36:04 2014 (r271971)
+++ soc2014/ghostmansd/head/lib/libc/locale/xlocale_private.h Wed Aug 6 01:01:08 2014 (r271972)
@@ -42,6 +42,8 @@
#ifdef _UNICODE_SOURCE
+#include <colldb.h>
+#include <stdint.h>
#include <unistd.h>
/* Unicode canonicalization. */
@@ -55,20 +57,8 @@
#define __UC_NFKC 4
size_t __ucsnorm(uint32_t*, const uint32_t*, size_t, int);
-/* Unicode collation. */
-struct __collation {
- uint32_t hash;
- size_t count;
- const uint8_t *alternate;
- const uint32_t *elements;
-};
-size_t __ucsxfrm(uint32_t*, const uint32_t*, size_t,
- const struct __collation*, size_t);
-int __ucscoll(const uint32_t*, const uint32_t*,
- const struct __collation*, size_t);
-
-/* Various helper functions. */
-uint32_t __uchash(const uint32_t*, size_t);
+size_t __ucsxfrm(uint32_t*, const uint32_t*, size_t, struct __collation*);
+int __ucscoll(const uint32_t*, const uint32_t*, struct __collation*);
#endif
Modified: soc2014/ghostmansd/head/lib/libc/string/wcscoll.c
==============================================================================
--- soc2014/ghostmansd/head/lib/libc/string/wcscoll.c Wed Aug 6 00:36:04 2014 (r271971)
+++ soc2014/ghostmansd/head/lib/libc/string/wcscoll.c Wed Aug 6 01:01:08 2014 (r271972)
@@ -68,13 +68,13 @@
wcscoll_l(const wchar_t *ws1, const wchar_t *ws2, locale_t locale)
{
#ifdef _UNICODE_SOURCE
- const __unichar_t *ucs1 = (const __unichar_t*)ws1;
- const __unichar_t *ucs2 = (const __unichar_t*)ws2;
- const struct __collation *table =
+ const uint32_t *ucs1 = (const uint32_t*)ws1;
+ const uint32_t *ucs2 = (const uint32_t*)ws2;
+ const struct __collation *colltable =
(const struct __collation*)locale->colltable;
- size_t count = locale->collsize;
+ size_t collsize = locale->collsize;
- return __ucscoll(ucs1, ucs2, table, size);
+ return __ucscoll(ucs1, ucs2, colltable, collsize);
#else /* !_UNICODE_SOURCE */
char *mbs1, *mbs2;
Modified: soc2014/ghostmansd/head/lib/libc/string/wcsxfrm.c
==============================================================================
--- soc2014/ghostmansd/head/lib/libc/string/wcsxfrm.c Wed Aug 6 00:36:04 2014 (r271971)
+++ soc2014/ghostmansd/head/lib/libc/string/wcsxfrm.c Wed Aug 6 01:01:08 2014 (r271972)
@@ -43,13 +43,19 @@
static char *__mbsdup(const wchar_t *);
-/*
- * Placeholder wcsxfrm() implementation. See wcscoll.c for a description of
- * the logic used.
- */
+
size_t
wcsxfrm_l(wchar_t * __restrict dest, const wchar_t * __restrict src, size_t len, locale_t locale)
{
+#ifdef _UNICODE_SOURCE
+ uint32_t *udst = (uint32_t*)dest;
+ const uint32_t *usrc = (const uint32_t*)src;
+ const struct __collation *colltable =
+ (const struct __collation*)locale->colltable;
+ size_t collsize = locale->collsize;
+
+ return __ucsxfrm(udst, usrc, len, colltable, collsize);
+#else
int prim, sec, l;
size_t slen;
char *mbsrc, *s, *ss;
@@ -100,7 +106,9 @@
*dest = L'\0';
return (slen);
+#endif
}
+
size_t
wcsxfrm(wchar_t * __restrict dest, const wchar_t * __restrict src, size_t len)
{
Modified: soc2014/ghostmansd/head/lib/libc/unicode/ccclass.h
==============================================================================
--- soc2014/ghostmansd/head/lib/libc/unicode/ccclass.h Wed Aug 6 00:36:04 2014 (r271971)
+++ soc2014/ghostmansd/head/lib/libc/unicode/ccclass.h Wed Aug 6 01:01:08 2014 (r271972)
@@ -24,7 +24,7 @@
* SUCH DAMAGE.
*/
-#include "xlocale_private.h"
+// #include "xlocale_private.h"
#define COMBINING_CLASS_MIN 0x000300
Modified: soc2014/ghostmansd/head/lib/libc/unicode/ucscoll.c
==============================================================================
--- soc2014/ghostmansd/head/lib/libc/unicode/ucscoll.c Wed Aug 6 00:36:04 2014 (r271971)
+++ soc2014/ghostmansd/head/lib/libc/unicode/ucscoll.c Wed Aug 6 01:01:08 2014 (r271972)
@@ -31,7 +31,7 @@
int
__ucscoll(const uint32_t *lhs, const uint32_t *rhs,
- const struct __collation* tableptr, size_t tablesize)
+ const struct __collation_data *colldata, size_t collsize)
{
int error = 0;
int result = 0;
@@ -41,8 +41,8 @@
uint32_t *rcoll = NULL;
error = errno;
- lsize = __ucsxfrm(NULL, lhs, 0, tableptr, tablesize);
- rsize = __ucsxfrm(NULL, rhs, 0, tableptr, tablesize);
+ lsize = __ucsxfrm(NULL, lhs, 0, colldata, collsize);
+ rsize = __ucsxfrm(NULL, rhs, 0, colldata, collsize);
errno = error;
lcoll = malloc(lsize * sizeof(uint32_t));
rcoll = malloc(rsize * sizeof(uint32_t));
Modified: soc2014/ghostmansd/head/lib/libc/unicode/ucsxfrm.c
==============================================================================
--- soc2014/ghostmansd/head/lib/libc/unicode/ucsxfrm.c Wed Aug 6 00:36:04 2014 (r271971)
+++ soc2014/ghostmansd/head/lib/libc/unicode/ucsxfrm.c Wed Aug 6 01:01:08 2014 (r271972)
@@ -27,15 +27,11 @@
#include <errno.h>
#include <string.h>
#include "xlocale_private.h"
-#include "ducet.h"
-
-
-#define NFD_MAX 18
size_t
__ucsxfrm(uint32_t *buffer, const uint32_t *str, size_t size,
- const struct __collation* tableptr, size_t tablesize)
+ const struct __collation *colldata, size_t collsize)
{
int error = 0;
size_t mid = 0;
@@ -46,11 +42,11 @@
uint32_t hash = 0;
size_t reqsize = 0;
size_t normsize = 0;
- size_t seqmax = NFD_MAX;
uint32_t *normstr = NULL;
const uint32_t *iter = str;
const int init_error = errno;
const uint32_t *elements = NULL;
+ size_t seqmax = 18; /* maximal decomposition length */
uint32_t generic[6] = {0x00, 0x00, 0x20, 0x01, 0x02, 0x01};
if ((str == NULL) || ((buffer != NULL) && (size == 0)))
@@ -58,11 +54,11 @@
errno = EINVAL;
return 0;
}
- if (tableptr == NULL)
+ if (colldata == NULL)
{
- tableptr = DUCET;
- tablesize = DUCET_SIZE;
- seqmax = DUCET_SEQ_MAX;
+ colldata = __DUCET_COLLDATA;
+ collsize = __DUCET_COLLSIZE;
+ seqmax = 3; /* max DUCET sequence length */
}
error = errno;
normsize = __ucsnorm(NULL, str, 0, __UC_NFD);
@@ -83,52 +79,73 @@
while (*iter != 0)
{
+
+ /*
+ * Try to determine if collation table contains a sequence
+ * which consists from 1 to 18 characters.
+ * If DUCET is used, maximal count of characters is 3.
+ */
for (shift = 1; shift != seqmax; ++shift)
{
low = 0;
elements = NULL;
- high = tablesize;
+ high = collsize;
if (*(iter + shift - 1) == 0)
break;
hash = __uchash(iter, shift);
-
- /* Try to find entry in the given collation table. */
while (low <= high)
{
mid = (low + ((high - low) / 2));
- if (hash < tableptr[mid].hash)
+ if (hash < colldata[mid].hash)
high = (mid - 1);
- else if (hash > tableptr[mid].hash)
+ else if (hash > colldata[mid].hash)
low = (mid + 1);
else
{
- count = tableptr[mid].count;
- elements = tableptr[mid].elements;
+ count = colldata[mid].count;
+ elements = colldata[mid].elements;
break;
}
}
+ if (elements != NULL)
+ break;
+ }
- /* Try to find entry in the DUCET. */
- if ((elements != NULL) && (tableptr != DUCET))
+ /*
+ * If collation table does not contain a sequence and
+ * current collation table is not DUCET, repeat the algorithm
+ * for DUCET with limit up to 3 characters.
+ */
+ if ((elements == NULL) && (colldata != __DUCET_COLLDATA))
+ {
+ for (shift = 1; shift != 3; ++shift)
{
+ low = 0;
+ elements = NULL;
+ collsize = __DUCET_COLLSIZE;
+ if (*(iter + shift - 1) == 0)
+ break;
+ hash = __uchash(iter, shift);
while (low <= high)
{
mid = (low + ((high - low) / 2));
- if (hash < DUCET[mid].hash)
+ if (hash < __DUCET_COLLDATA[mid].hash)
high = (mid - 1);
- else if (hash > DUCET[mid].hash)
+ else if (hash > __DUCET_COLLDATA[mid].hash)
low = (mid + 1);
else
{
- count = DUCET[mid].count;
- elements = DUCET[mid].elements;
+ count = __DUCET_COLLDATA[mid].count;
+ elements = __DUCET_COLLDATA[mid].elements;
break;
}
}
+ if (elements != NULL)
+ break;
}
- if (elements != NULL)
- break;
}
+
+ /* If no sequence was matched, generate default collation. */
if (elements == NULL)
{
shift = 1;
@@ -153,13 +170,15 @@
}
else
count *= 3;
+
+ /* Write found or generated sequence into the buffer. */
if (((reqsize + count) > size) && (buffer != NULL))
{
size = (size - reqsize - 1);
memcpy(buffer, elements, (size * sizeof(uint32_t)));
*(buffer + size) = 0;
free(normstr);
- return __ucsxfrm(NULL, str, 0, tableptr, tablesize);
+ return __ucsxfrm(NULL, str, 0, colldata, collsize);
}
if (buffer != NULL)
{
Added: soc2014/ghostmansd/head/lib/libcolldb/CLDR.src
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ soc2014/ghostmansd/head/lib/libcolldb/CLDR.src Wed Aug 6 01:01:08 2014 (r271972)
@@ -0,0 +1,25152 @@
+# File: allkeys_CLDR.txt
+# UCA Version: 6.2.0
+# UCD Version: 6.2.0
+# Generated: 2012-09-21, 19:14:26 GMT [MD]
+# For a description of the format and usage, see CollationAuxiliary.html
+
+ at version 6.2.0
+
+0000 ; [.0000.0000.0000.0000] # <NULL>
+0001 ; [.0000.0000.0000.0000] # <START OF HEADING>
+0002 ; [.0000.0000.0000.0000] # <START OF TEXT>
+0003 ; [.0000.0000.0000.0000] # <END OF TEXT>
+0004 ; [.0000.0000.0000.0000] # <END OF TRANSMISSION>
+0005 ; [.0000.0000.0000.0000] # <ENQUIRY>
+0006 ; [.0000.0000.0000.0000] # <ACKNOWLEDGE>
+0007 ; [.0000.0000.0000.0000] # <BELL>
+0008 ; [.0000.0000.0000.0000] # <BACKSPACE>
+000E ; [.0000.0000.0000.0000] # <SHIFT OUT>
+000F ; [.0000.0000.0000.0000] # <SHIFT IN>
+0010 ; [.0000.0000.0000.0000] # <DATA LINK ESCAPE>
+0011 ; [.0000.0000.0000.0000] # <DEVICE CONTROL ONE>
+0012 ; [.0000.0000.0000.0000] # <DEVICE CONTROL TWO>
+0013 ; [.0000.0000.0000.0000] # <DEVICE CONTROL THREE>
+0014 ; [.0000.0000.0000.0000] # <DEVICE CONTROL FOUR>
+0015 ; [.0000.0000.0000.0000] # <NEGATIVE ACKNOWLEDGE>
+0016 ; [.0000.0000.0000.0000] # <SYNCHRONOUS IDLE>
+0017 ; [.0000.0000.0000.0000] # <END OF TRANSMISSION BLOCK>
+0018 ; [.0000.0000.0000.0000] # <CANCEL>
+0019 ; [.0000.0000.0000.0000] # <END OF MEDIUM>
+001A ; [.0000.0000.0000.0000] # <SUBSTITUTE>
+001B ; [.0000.0000.0000.0000] # <ESCAPE>
+001C ; [.0000.0000.0000.0000] # <INFORMATION SEPARATOR FOUR>
+001D ; [.0000.0000.0000.0000] # <INFORMATION SEPARATOR THREE>
+001E ; [.0000.0000.0000.0000] # <INFORMATION SEPARATOR TWO>
+001F ; [.0000.0000.0000.0000] # <INFORMATION SEPARATOR ONE>
+007F ; [.0000.0000.0000.0000] # <DELETE>
+0080 ; [.0000.0000.0000.0000] # <control>
+0081 ; [.0000.0000.0000.0000] # <control>
+0082 ; [.0000.0000.0000.0000] # <BREAK PERMITTED HERE>
+0083 ; [.0000.0000.0000.0000] # <NO BREAK HERE>
+0084 ; [.0000.0000.0000.0000] # <control>
+0086 ; [.0000.0000.0000.0000] # <START OF SELECTED AREA>
+0087 ; [.0000.0000.0000.0000] # <END OF SELECTED AREA>
+0088 ; [.0000.0000.0000.0000] # <CHARACTER TABULATION SET>
+0089 ; [.0000.0000.0000.0000] # <CHARACTER TABULATION WITH JUSTIFICATION>
+008A ; [.0000.0000.0000.0000] # <LINE TABULATION SET>
+008B ; [.0000.0000.0000.0000] # <PARTIAL LINE FORWARD>
+008C ; [.0000.0000.0000.0000] # <PARTIAL LINE BACKWARD>
+008D ; [.0000.0000.0000.0000] # <REVERSE LINE FEED>
+008E ; [.0000.0000.0000.0000] # <SINGLE SHIFT TWO>
+008F ; [.0000.0000.0000.0000] # <SINGLE SHIFT THREE>
+0090 ; [.0000.0000.0000.0000] # <DEVICE CONTROL STRING>
+0091 ; [.0000.0000.0000.0000] # <PRIVATE USE ONE>
+0092 ; [.0000.0000.0000.0000] # <PRIVATE USE TWO>
+0093 ; [.0000.0000.0000.0000] # <SET TRANSMIT STATE>
+0094 ; [.0000.0000.0000.0000] # <CANCEL CHARACTER>
+0095 ; [.0000.0000.0000.0000] # <MESSAGE WAITING>
+0096 ; [.0000.0000.0000.0000] # <START OF GUARDED AREA>
+0097 ; [.0000.0000.0000.0000] # <END OF GUARDED AREA>
+0098 ; [.0000.0000.0000.0000] # <START OF STRING>
+0099 ; [.0000.0000.0000.0000] # <control>
+009A ; [.0000.0000.0000.0000] # <SINGLE CHARACTER INTRODUCER>
+009B ; [.0000.0000.0000.0000] # <CONTROL SEQUENCE INTRODUCER>
+009C ; [.0000.0000.0000.0000] # <STRING TERMINATOR>
+009D ; [.0000.0000.0000.0000] # <OPERATING SYSTEM COMMAND>
+009E ; [.0000.0000.0000.0000] # <PRIVACY MESSAGE>
+009F ; [.0000.0000.0000.0000] # <APPLICATION PROGRAM COMMAND>
+00AD ; [.0000.0000.0000.0000] # SOFT HYPHEN
+034F ; [.0000.0000.0000.0000] # COMBINING GRAPHEME JOINER
+0488 ; [.0000.0000.0000.0000] # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
+0489 ; [.0000.0000.0000.0000] # COMBINING CYRILLIC MILLIONS SIGN
+0591 ; [.0000.0000.0000.0000] # HEBREW ACCENT ETNAHTA
+0592 ; [.0000.0000.0000.0000] # HEBREW ACCENT SEGOL
+0593 ; [.0000.0000.0000.0000] # HEBREW ACCENT SHALSHELET
+0594 ; [.0000.0000.0000.0000] # HEBREW ACCENT ZAQEF QATAN
+0595 ; [.0000.0000.0000.0000] # HEBREW ACCENT ZAQEF GADOL
+0596 ; [.0000.0000.0000.0000] # HEBREW ACCENT TIPEHA
+0597 ; [.0000.0000.0000.0000] # HEBREW ACCENT REVIA
+0598 ; [.0000.0000.0000.0000] # HEBREW ACCENT ZARQA
+0599 ; [.0000.0000.0000.0000] # HEBREW ACCENT PASHTA
+059A ; [.0000.0000.0000.0000] # HEBREW ACCENT YETIV
+059B ; [.0000.0000.0000.0000] # HEBREW ACCENT TEVIR
+059C ; [.0000.0000.0000.0000] # HEBREW ACCENT GERESH
+059D ; [.0000.0000.0000.0000] # HEBREW ACCENT GERESH MUQDAM
+059E ; [.0000.0000.0000.0000] # HEBREW ACCENT GERSHAYIM
+059F ; [.0000.0000.0000.0000] # HEBREW ACCENT QARNEY PARA
+05A0 ; [.0000.0000.0000.0000] # HEBREW ACCENT TELISHA GEDOLA
+05A1 ; [.0000.0000.0000.0000] # HEBREW ACCENT PAZER
+05A2 ; [.0000.0000.0000.0000] # HEBREW ACCENT ATNAH HAFUKH
+05A3 ; [.0000.0000.0000.0000] # HEBREW ACCENT MUNAH
+05A4 ; [.0000.0000.0000.0000] # HEBREW ACCENT MAHAPAKH
+05A5 ; [.0000.0000.0000.0000] # HEBREW ACCENT MERKHA
+05A6 ; [.0000.0000.0000.0000] # HEBREW ACCENT MERKHA KEFULA
+05A7 ; [.0000.0000.0000.0000] # HEBREW ACCENT DARGA
+05A8 ; [.0000.0000.0000.0000] # HEBREW ACCENT QADMA
+05A9 ; [.0000.0000.0000.0000] # HEBREW ACCENT TELISHA QETANA
+05AA ; [.0000.0000.0000.0000] # HEBREW ACCENT YERAH BEN YOMO
+05AB ; [.0000.0000.0000.0000] # HEBREW ACCENT OLE
+05AC ; [.0000.0000.0000.0000] # HEBREW ACCENT ILUY
+05AD ; [.0000.0000.0000.0000] # HEBREW ACCENT DEHI
+05AE ; [.0000.0000.0000.0000] # HEBREW ACCENT ZINOR
+05AF ; [.0000.0000.0000.0000] # HEBREW MARK MASORA CIRCLE
+05BD ; [.0000.0000.0000.0000] # HEBREW POINT METEG
+05C4 ; [.0000.0000.0000.0000] # HEBREW MARK UPPER DOT
+05C5 ; [.0000.0000.0000.0000] # HEBREW MARK LOWER DOT
+0600 ; [.0000.0000.0000.0000] # ARABIC NUMBER SIGN
+0601 ; [.0000.0000.0000.0000] # ARABIC SIGN SANAH
+0602 ; [.0000.0000.0000.0000] # ARABIC FOOTNOTE MARKER
+0603 ; [.0000.0000.0000.0000] # ARABIC SIGN SAFHA
+0604 ; [.0000.0000.0000.0000] # ARABIC SIGN SAMVAT
+0610 ; [.0000.0000.0000.0000] # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM
+0611 ; [.0000.0000.0000.0000] # ARABIC SIGN ALAYHE ASSALLAM
+0612 ; [.0000.0000.0000.0000] # ARABIC SIGN RAHMATULLAH ALAYHE
+0613 ; [.0000.0000.0000.0000] # ARABIC SIGN RADI ALLAHOU ANHU
+0614 ; [.0000.0000.0000.0000] # ARABIC SIGN TAKHALLUS
+0615 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH TAH
+0616 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH
+0617 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH ZAIN
+0618 ; [.0000.0000.0000.0000] # ARABIC SMALL FATHA
+0619 ; [.0000.0000.0000.0000] # ARABIC SMALL DAMMA
+061A ; [.0000.0000.0000.0000] # ARABIC SMALL KASRA
+0640 ; [.0000.0000.0000.0000] # ARABIC TATWEEL
+06D6 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA
+06D7 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA
+06D8 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH MEEM INITIAL FORM
+06D9 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH LAM ALEF
+06DA ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH JEEM
+06DB ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH THREE DOTS
+06DC ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH SEEN
+06DD ; [.0000.0000.0000.0000] # ARABIC END OF AYAH
+06DF ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH ROUNDED ZERO
+06E0 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
+06E1 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH
+06E2 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH MEEM ISOLATED FORM
+06E3 ; [.0000.0000.0000.0000] # ARABIC SMALL LOW SEEN
+06E4 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH MADDA
+06E7 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH YEH
+06E8 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH NOON
+06EA ; [.0000.0000.0000.0000] # ARABIC EMPTY CENTRE LOW STOP
+06EB ; [.0000.0000.0000.0000] # ARABIC EMPTY CENTRE HIGH STOP
+06EC ; [.0000.0000.0000.0000] # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
+06ED ; [.0000.0000.0000.0000] # ARABIC SMALL LOW MEEM
+070F ; [.0000.0000.0000.0000] # SYRIAC ABBREVIATION MARK
+0740 ; [.0000.0000.0000.0000] # SYRIAC FEMININE DOT
+0743 ; [.0000.0000.0000.0000] # SYRIAC TWO VERTICAL DOTS ABOVE
+0744 ; [.0000.0000.0000.0000] # SYRIAC TWO VERTICAL DOTS BELOW
+0747 ; [.0000.0000.0000.0000] # SYRIAC OBLIQUE LINE ABOVE
+0748 ; [.0000.0000.0000.0000] # SYRIAC OBLIQUE LINE BELOW
+0749 ; [.0000.0000.0000.0000] # SYRIAC MUSIC
+074A ; [.0000.0000.0000.0000] # SYRIAC BARREKH
+07FA ; [.0000.0000.0000.0000] # NKO LAJANYALAN
+08EA ; [.0000.0000.0000.0000] # ARABIC TONE ONE DOT ABOVE
+08EB ; [.0000.0000.0000.0000] # ARABIC TONE TWO DOTS ABOVE
+08EC ; [.0000.0000.0000.0000] # ARABIC TONE LOOP ABOVE
+08ED ; [.0000.0000.0000.0000] # ARABIC TONE ONE DOT BELOW
+08EE ; [.0000.0000.0000.0000] # ARABIC TONE TWO DOTS BELOW
+08EF ; [.0000.0000.0000.0000] # ARABIC TONE LOOP BELOW
+08F3 ; [.0000.0000.0000.0000] # ARABIC SMALL HIGH WAW
+0951 ; [.0000.0000.0000.0000] # DEVANAGARI STRESS SIGN UDATTA
+0952 ; [.0000.0000.0000.0000] # DEVANAGARI STRESS SIGN ANUDATTA
+0F18 ; [.0000.0000.0000.0000] # TIBETAN ASTROLOGICAL SIGN -KHYUD PA
+0F19 ; [.0000.0000.0000.0000] # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F35 ; [.0000.0000.0000.0000] # TIBETAN MARK NGAS BZUNG NYI ZLA
+0F37 ; [.0000.0000.0000.0000] # TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F3E ; [.0000.0000.0000.0000] # TIBETAN SIGN YAR TSHES
+0F3F ; [.0000.0000.0000.0000] # TIBETAN SIGN MAR TSHES
+0F82 ; [.0000.0000.0000.0000] # TIBETAN SIGN NYI ZLA NAA DA
+0F83 ; [.0000.0000.0000.0000] # TIBETAN SIGN SNA LDAN
+0F86 ; [.0000.0000.0000.0000] # TIBETAN SIGN LCI RTAGS
+0F87 ; [.0000.0000.0000.0000] # TIBETAN SIGN YANG RTAGS
+0FC6 ; [.0000.0000.0000.0000] # TIBETAN SYMBOL PADMA GDAN
+17B4 ; [.0000.0000.0000.0000] # KHMER VOWEL INHERENT AQ
+17B5 ; [.0000.0000.0000.0000] # KHMER VOWEL INHERENT AA
+17D3 ; [.0000.0000.0000.0000] # KHMER SIGN BATHAMASAT
+180A ; [.0000.0000.0000.0000] # MONGOLIAN NIRUGU
+180B ; [.0000.0000.0000.0000] # MONGOLIAN FREE VARIATION SELECTOR ONE
+180C ; [.0000.0000.0000.0000] # MONGOLIAN FREE VARIATION SELECTOR TWO
+180D ; [.0000.0000.0000.0000] # MONGOLIAN FREE VARIATION SELECTOR THREE
+1A7F ; [.0000.0000.0000.0000] # TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1B6B ; [.0000.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING TEGEH
+1B6C ; [.0000.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING ENDEP
+1B6D ; [.0000.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING KEMPUL
+1B6E ; [.0000.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING KEMPLI
+1B6F ; [.0000.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING JEGOGAN
+1B70 ; [.0000.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN
+1B71 ; [.0000.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN
+1B72 ; [.0000.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING BENDE
+1B73 ; [.0000.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING GONG
+1CD0 ; [.0000.0000.0000.0000] # VEDIC TONE KARSHANA
+1CD1 ; [.0000.0000.0000.0000] # VEDIC TONE SHARA
+1CD2 ; [.0000.0000.0000.0000] # VEDIC TONE PRENKHA
+1CD3 ; [.0000.0000.0000.0000] # VEDIC SIGN NIHSHVASA
+1CD4 ; [.0000.0000.0000.0000] # VEDIC SIGN YAJURVEDIC MIDLINE SVARITA
+1CD5 ; [.0000.0000.0000.0000] # VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA
+1CD6 ; [.0000.0000.0000.0000] # VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA
+1CD7 ; [.0000.0000.0000.0000] # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA
+1CD8 ; [.0000.0000.0000.0000] # VEDIC TONE CANDRA BELOW
+1CD9 ; [.0000.0000.0000.0000] # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER
+1CDA ; [.0000.0000.0000.0000] # VEDIC TONE DOUBLE SVARITA
+1CDB ; [.0000.0000.0000.0000] # VEDIC TONE TRIPLE SVARITA
+1CDC ; [.0000.0000.0000.0000] # VEDIC TONE KATHAKA ANUDATTA
+1CDD ; [.0000.0000.0000.0000] # VEDIC TONE DOT BELOW
+1CDE ; [.0000.0000.0000.0000] # VEDIC TONE TWO DOTS BELOW
+1CDF ; [.0000.0000.0000.0000] # VEDIC TONE THREE DOTS BELOW
+1CE0 ; [.0000.0000.0000.0000] # VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+1CE1 ; [.0000.0000.0000.0000] # VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+1CE2 ; [.0000.0000.0000.0000] # VEDIC SIGN VISARGA SVARITA
+1CE3 ; [.0000.0000.0000.0000] # VEDIC SIGN VISARGA UDATTA
+1CE4 ; [.0000.0000.0000.0000] # VEDIC SIGN REVERSED VISARGA UDATTA
+1CE5 ; [.0000.0000.0000.0000] # VEDIC SIGN VISARGA ANUDATTA
+1CE6 ; [.0000.0000.0000.0000] # VEDIC SIGN REVERSED VISARGA ANUDATTA
+1CE7 ; [.0000.0000.0000.0000] # VEDIC SIGN VISARGA UDATTA WITH TAIL
+1CE8 ; [.0000.0000.0000.0000] # VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+1CF4 ; [.0000.0000.0000.0000] # VEDIC TONE CANDRA ABOVE
+200B ; [.0000.0000.0000.0000] # ZERO WIDTH SPACE
+200C ; [.0000.0000.0000.0000] # ZERO WIDTH NON-JOINER
+200D ; [.0000.0000.0000.0000] # ZERO WIDTH JOINER
+200E ; [.0000.0000.0000.0000] # LEFT-TO-RIGHT MARK
+200F ; [.0000.0000.0000.0000] # RIGHT-TO-LEFT MARK
+202A ; [.0000.0000.0000.0000] # LEFT-TO-RIGHT EMBEDDING
+202B ; [.0000.0000.0000.0000] # RIGHT-TO-LEFT EMBEDDING
+202C ; [.0000.0000.0000.0000] # POP DIRECTIONAL FORMATTING
+202D ; [.0000.0000.0000.0000] # LEFT-TO-RIGHT OVERRIDE
+202E ; [.0000.0000.0000.0000] # RIGHT-TO-LEFT OVERRIDE
+2060 ; [.0000.0000.0000.0000] # WORD JOINER
+2061 ; [.0000.0000.0000.0000] # FUNCTION APPLICATION
+2062 ; [.0000.0000.0000.0000] # INVISIBLE TIMES
+2063 ; [.0000.0000.0000.0000] # INVISIBLE SEPARATOR
+2064 ; [.0000.0000.0000.0000] # INVISIBLE PLUS
+206A ; [.0000.0000.0000.0000] # INHIBIT SYMMETRIC SWAPPING
+206B ; [.0000.0000.0000.0000] # ACTIVATE SYMMETRIC SWAPPING
+206C ; [.0000.0000.0000.0000] # INHIBIT ARABIC FORM SHAPING
+206D ; [.0000.0000.0000.0000] # ACTIVATE ARABIC FORM SHAPING
+206E ; [.0000.0000.0000.0000] # NATIONAL DIGIT SHAPES
+206F ; [.0000.0000.0000.0000] # NOMINAL DIGIT SHAPES
+2D7F ; [.0000.0000.0000.0000] # TIFINAGH CONSONANT JOINER
+A670 ; [.0000.0000.0000.0000] # COMBINING CYRILLIC TEN MILLIONS SIGN
+A671 ; [.0000.0000.0000.0000] # COMBINING CYRILLIC HUNDRED MILLIONS SIGN
+A672 ; [.0000.0000.0000.0000] # COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A8E0 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI DIGIT ZERO
+A8E1 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI DIGIT ONE
+A8E2 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI DIGIT TWO
+A8E3 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI DIGIT THREE
+A8E4 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI DIGIT FOUR
+A8E5 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI DIGIT FIVE
+A8E6 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI DIGIT SIX
+A8E7 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI DIGIT SEVEN
+A8E8 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI DIGIT EIGHT
+A8E9 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI DIGIT NINE
+A8EA ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI LETTER A
+A8EB ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI LETTER U
+A8EC ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI LETTER KA
+A8ED ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI LETTER NA
+A8EE ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI LETTER PA
+A8EF ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI LETTER RA
+A8F0 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI LETTER VI
+A8F1 ; [.0000.0000.0000.0000] # COMBINING DEVANAGARI SIGN AVAGRAHA
+FE00 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-1
+FE01 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-2
+FE02 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-3
+FE03 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-4
+FE04 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-5
+FE05 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-6
+FE06 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-7
+FE07 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-8
+FE08 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-9
+FE09 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-10
+FE0A ; [.0000.0000.0000.0000] # VARIATION SELECTOR-11
+FE0B ; [.0000.0000.0000.0000] # VARIATION SELECTOR-12
+FE0C ; [.0000.0000.0000.0000] # VARIATION SELECTOR-13
+FE0D ; [.0000.0000.0000.0000] # VARIATION SELECTOR-14
+FE0E ; [.0000.0000.0000.0000] # VARIATION SELECTOR-15
+FE0F ; [.0000.0000.0000.0000] # VARIATION SELECTOR-16
+FE21 ; [.0000.0000.0000.0000] # COMBINING LIGATURE RIGHT HALF
+FE23 ; [.0000.0000.0000.0000] # COMBINING DOUBLE TILDE RIGHT HALF
+FE24 ; [.0000.0000.0000.0000] # COMBINING MACRON LEFT HALF
+FE25 ; [.0000.0000.0000.0000] # COMBINING MACRON RIGHT HALF
+FE26 ; [.0000.0000.0000.0000] # COMBINING CONJOINING MACRON
+FE73 ; [.0000.0000.0000.0000] # ARABIC TAIL FRAGMENT
+FEFF ; [.0000.0000.0000.0000] # ZERO WIDTH NO-BREAK SPACE
+FFF9 ; [.0000.0000.0000.0000] # INTERLINEAR ANNOTATION ANCHOR
+FFFA ; [.0000.0000.0000.0000] # INTERLINEAR ANNOTATION SEPARATOR
+FFFB ; [.0000.0000.0000.0000] # INTERLINEAR ANNOTATION TERMINATOR
+110BD ; [.0000.0000.0000.0000] # KAITHI NUMBER SIGN
+1D165 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING STEM
+1D166 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+1D167 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING TREMOLO-1
+1D168 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING TREMOLO-2
+1D169 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING TREMOLO-3
+1D16D ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING AUGMENTATION DOT
+1D16E ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLAG-1
+1D16F ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLAG-2
+1D170 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLAG-3
+1D171 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLAG-4
+1D172 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLAG-5
+1D173 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL BEGIN BEAM
+1D174 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL END BEAM
+1D175 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL BEGIN TIE
+1D176 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL END TIE
+1D177 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL BEGIN SLUR
+1D178 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL END SLUR
+1D179 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL BEGIN PHRASE
+1D17A ; [.0000.0000.0000.0000] # MUSICAL SYMBOL END PHRASE
+1D17B ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING ACCENT
+1D17C ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING STACCATO
+1D17D ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING TENUTO
+1D17E ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING STACCATISSIMO
+1D17F ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING MARCATO
+1D180 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING MARCATO-STACCATO
+1D181 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING ACCENT-STACCATO
+1D182 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING LOURE
+1D185 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING DOIT
+1D186 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING RIP
+1D187 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLIP
+1D188 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING SMEAR
+1D189 ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING BEND
+1D18A ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING DOUBLE TONGUE
+1D18B ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1D1AA ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING DOWN BOW
+1D1AB ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING UP BOW
+1D1AC ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING HARMONIC
+1D1AD ; [.0000.0000.0000.0000] # MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1D242 ; [.0000.0000.0000.0000] # COMBINING GREEK MUSICAL TRISEME
+1D243 ; [.0000.0000.0000.0000] # COMBINING GREEK MUSICAL TETRASEME
+1D244 ; [.0000.0000.0000.0000] # COMBINING GREEK MUSICAL PENTASEME
+E0001 ; [.0000.0000.0000.0000] # LANGUAGE TAG
+E0020 ; [.0000.0000.0000.0000] # TAG SPACE
+E0021 ; [.0000.0000.0000.0000] # TAG EXCLAMATION MARK
+E0022 ; [.0000.0000.0000.0000] # TAG QUOTATION MARK
+E0023 ; [.0000.0000.0000.0000] # TAG NUMBER SIGN
+E0024 ; [.0000.0000.0000.0000] # TAG DOLLAR SIGN
+E0025 ; [.0000.0000.0000.0000] # TAG PERCENT SIGN
+E0026 ; [.0000.0000.0000.0000] # TAG AMPERSAND
+E0027 ; [.0000.0000.0000.0000] # TAG APOSTROPHE
+E0028 ; [.0000.0000.0000.0000] # TAG LEFT PARENTHESIS
+E0029 ; [.0000.0000.0000.0000] # TAG RIGHT PARENTHESIS
+E002A ; [.0000.0000.0000.0000] # TAG ASTERISK
+E002B ; [.0000.0000.0000.0000] # TAG PLUS SIGN
+E002C ; [.0000.0000.0000.0000] # TAG COMMA
+E002D ; [.0000.0000.0000.0000] # TAG HYPHEN-MINUS
+E002E ; [.0000.0000.0000.0000] # TAG FULL STOP
+E002F ; [.0000.0000.0000.0000] # TAG SOLIDUS
+E0030 ; [.0000.0000.0000.0000] # TAG DIGIT ZERO
+E0031 ; [.0000.0000.0000.0000] # TAG DIGIT ONE
+E0032 ; [.0000.0000.0000.0000] # TAG DIGIT TWO
+E0033 ; [.0000.0000.0000.0000] # TAG DIGIT THREE
+E0034 ; [.0000.0000.0000.0000] # TAG DIGIT FOUR
+E0035 ; [.0000.0000.0000.0000] # TAG DIGIT FIVE
+E0036 ; [.0000.0000.0000.0000] # TAG DIGIT SIX
+E0037 ; [.0000.0000.0000.0000] # TAG DIGIT SEVEN
+E0038 ; [.0000.0000.0000.0000] # TAG DIGIT EIGHT
+E0039 ; [.0000.0000.0000.0000] # TAG DIGIT NINE
+E003A ; [.0000.0000.0000.0000] # TAG COLON
+E003B ; [.0000.0000.0000.0000] # TAG SEMICOLON
+E003C ; [.0000.0000.0000.0000] # TAG LESS-THAN SIGN
+E003D ; [.0000.0000.0000.0000] # TAG EQUALS SIGN
+E003E ; [.0000.0000.0000.0000] # TAG GREATER-THAN SIGN
+E003F ; [.0000.0000.0000.0000] # TAG QUESTION MARK
+E0040 ; [.0000.0000.0000.0000] # TAG COMMERCIAL AT
+E0041 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER A
+E0042 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER B
+E0043 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER C
+E0044 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER D
+E0045 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER E
+E0046 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER F
+E0047 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER G
+E0048 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER H
+E0049 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER I
+E004A ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER J
+E004B ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER K
+E004C ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER L
+E004D ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER M
+E004E ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER N
+E004F ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER O
+E0050 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER P
+E0051 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER Q
+E0052 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER R
+E0053 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER S
+E0054 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER T
+E0055 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER U
+E0056 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER V
+E0057 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER W
+E0058 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER X
+E0059 ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER Y
+E005A ; [.0000.0000.0000.0000] # TAG LATIN CAPITAL LETTER Z
+E005B ; [.0000.0000.0000.0000] # TAG LEFT SQUARE BRACKET
+E005C ; [.0000.0000.0000.0000] # TAG REVERSE SOLIDUS
+E005D ; [.0000.0000.0000.0000] # TAG RIGHT SQUARE BRACKET
+E005E ; [.0000.0000.0000.0000] # TAG CIRCUMFLEX ACCENT
+E005F ; [.0000.0000.0000.0000] # TAG LOW LINE
+E0060 ; [.0000.0000.0000.0000] # TAG GRAVE ACCENT
+E0061 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER A
+E0062 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER B
+E0063 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER C
+E0064 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER D
+E0065 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER E
+E0066 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER F
+E0067 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER G
+E0068 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER H
+E0069 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER I
+E006A ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER J
+E006B ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER K
+E006C ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER L
+E006D ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER M
+E006E ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER N
+E006F ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER O
+E0070 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER P
+E0071 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER Q
+E0072 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER R
+E0073 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER S
+E0074 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER T
+E0075 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER U
+E0076 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER V
+E0077 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER W
+E0078 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER X
+E0079 ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER Y
+E007A ; [.0000.0000.0000.0000] # TAG LATIN SMALL LETTER Z
+E007B ; [.0000.0000.0000.0000] # TAG LEFT CURLY BRACKET
+E007C ; [.0000.0000.0000.0000] # TAG VERTICAL LINE
+E007D ; [.0000.0000.0000.0000] # TAG RIGHT CURLY BRACKET
+E007E ; [.0000.0000.0000.0000] # TAG TILDE
+E007F ; [.0000.0000.0000.0000] # CANCEL TAG
+E0100 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-17
+E0101 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-18
+E0102 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-19
+E0103 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-20
+E0104 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-21
+E0105 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-22
+E0106 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-23
+E0107 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-24
+E0108 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-25
+E0109 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-26
+E010A ; [.0000.0000.0000.0000] # VARIATION SELECTOR-27
+E010B ; [.0000.0000.0000.0000] # VARIATION SELECTOR-28
+E010C ; [.0000.0000.0000.0000] # VARIATION SELECTOR-29
+E010D ; [.0000.0000.0000.0000] # VARIATION SELECTOR-30
+E010E ; [.0000.0000.0000.0000] # VARIATION SELECTOR-31
+E010F ; [.0000.0000.0000.0000] # VARIATION SELECTOR-32
+E0110 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-33
+E0111 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-34
+E0112 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-35
+E0113 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-36
+E0114 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-37
+E0115 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-38
+E0116 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-39
+E0117 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-40
+E0118 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-41
+E0119 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-42
+E011A ; [.0000.0000.0000.0000] # VARIATION SELECTOR-43
+E011B ; [.0000.0000.0000.0000] # VARIATION SELECTOR-44
+E011C ; [.0000.0000.0000.0000] # VARIATION SELECTOR-45
+E011D ; [.0000.0000.0000.0000] # VARIATION SELECTOR-46
+E011E ; [.0000.0000.0000.0000] # VARIATION SELECTOR-47
+E011F ; [.0000.0000.0000.0000] # VARIATION SELECTOR-48
+E0120 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-49
+E0121 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-50
+E0122 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-51
+E0123 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-52
+E0124 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-53
+E0125 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-54
+E0126 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-55
+E0127 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-56
+E0128 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-57
+E0129 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-58
+E012A ; [.0000.0000.0000.0000] # VARIATION SELECTOR-59
+E012B ; [.0000.0000.0000.0000] # VARIATION SELECTOR-60
+E012C ; [.0000.0000.0000.0000] # VARIATION SELECTOR-61
+E012D ; [.0000.0000.0000.0000] # VARIATION SELECTOR-62
+E012E ; [.0000.0000.0000.0000] # VARIATION SELECTOR-63
+E012F ; [.0000.0000.0000.0000] # VARIATION SELECTOR-64
+E0130 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-65
+E0131 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-66
+E0132 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-67
+E0133 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-68
+E0134 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-69
+E0135 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-70
+E0136 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-71
+E0137 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-72
+E0138 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-73
+E0139 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-74
+E013A ; [.0000.0000.0000.0000] # VARIATION SELECTOR-75
+E013B ; [.0000.0000.0000.0000] # VARIATION SELECTOR-76
+E013C ; [.0000.0000.0000.0000] # VARIATION SELECTOR-77
+E013D ; [.0000.0000.0000.0000] # VARIATION SELECTOR-78
+E013E ; [.0000.0000.0000.0000] # VARIATION SELECTOR-79
+E013F ; [.0000.0000.0000.0000] # VARIATION SELECTOR-80
+E0140 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-81
+E0141 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-82
+E0142 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-83
+E0143 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-84
+E0144 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-85
+E0145 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-86
+E0146 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-87
+E0147 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-88
+E0148 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-89
+E0149 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-90
+E014A ; [.0000.0000.0000.0000] # VARIATION SELECTOR-91
+E014B ; [.0000.0000.0000.0000] # VARIATION SELECTOR-92
+E014C ; [.0000.0000.0000.0000] # VARIATION SELECTOR-93
+E014D ; [.0000.0000.0000.0000] # VARIATION SELECTOR-94
+E014E ; [.0000.0000.0000.0000] # VARIATION SELECTOR-95
+E014F ; [.0000.0000.0000.0000] # VARIATION SELECTOR-96
+E0150 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-97
+E0151 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-98
+E0152 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-99
+E0153 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-100
+E0154 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-101
+E0155 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-102
+E0156 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-103
+E0157 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-104
+E0158 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-105
+E0159 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-106
+E015A ; [.0000.0000.0000.0000] # VARIATION SELECTOR-107
+E015B ; [.0000.0000.0000.0000] # VARIATION SELECTOR-108
+E015C ; [.0000.0000.0000.0000] # VARIATION SELECTOR-109
+E015D ; [.0000.0000.0000.0000] # VARIATION SELECTOR-110
+E015E ; [.0000.0000.0000.0000] # VARIATION SELECTOR-111
+E015F ; [.0000.0000.0000.0000] # VARIATION SELECTOR-112
+E0160 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-113
+E0161 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-114
+E0162 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-115
+E0163 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-116
+E0164 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-117
+E0165 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-118
+E0166 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-119
+E0167 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-120
+E0168 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-121
+E0169 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-122
+E016A ; [.0000.0000.0000.0000] # VARIATION SELECTOR-123
+E016B ; [.0000.0000.0000.0000] # VARIATION SELECTOR-124
+E016C ; [.0000.0000.0000.0000] # VARIATION SELECTOR-125
+E016D ; [.0000.0000.0000.0000] # VARIATION SELECTOR-126
+E016E ; [.0000.0000.0000.0000] # VARIATION SELECTOR-127
+E016F ; [.0000.0000.0000.0000] # VARIATION SELECTOR-128
+E0170 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-129
+E0171 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-130
+E0172 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-131
+E0173 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-132
+E0174 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-133
+E0175 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-134
+E0176 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-135
+E0177 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-136
+E0178 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-137
+E0179 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-138
+E017A ; [.0000.0000.0000.0000] # VARIATION SELECTOR-139
+E017B ; [.0000.0000.0000.0000] # VARIATION SELECTOR-140
+E017C ; [.0000.0000.0000.0000] # VARIATION SELECTOR-141
+E017D ; [.0000.0000.0000.0000] # VARIATION SELECTOR-142
+E017E ; [.0000.0000.0000.0000] # VARIATION SELECTOR-143
+E017F ; [.0000.0000.0000.0000] # VARIATION SELECTOR-144
+E0180 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-145
+E0181 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-146
+E0182 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-147
+E0183 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-148
+E0184 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-149
+E0185 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-150
+E0186 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-151
+E0187 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-152
+E0188 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-153
+E0189 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-154
+E018A ; [.0000.0000.0000.0000] # VARIATION SELECTOR-155
+E018B ; [.0000.0000.0000.0000] # VARIATION SELECTOR-156
+E018C ; [.0000.0000.0000.0000] # VARIATION SELECTOR-157
+E018D ; [.0000.0000.0000.0000] # VARIATION SELECTOR-158
+E018E ; [.0000.0000.0000.0000] # VARIATION SELECTOR-159
+E018F ; [.0000.0000.0000.0000] # VARIATION SELECTOR-160
+E0190 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-161
+E0191 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-162
+E0192 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-163
+E0193 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-164
+E0194 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-165
+E0195 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-166
+E0196 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-167
+E0197 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-168
+E0198 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-169
+E0199 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-170
+E019A ; [.0000.0000.0000.0000] # VARIATION SELECTOR-171
+E019B ; [.0000.0000.0000.0000] # VARIATION SELECTOR-172
+E019C ; [.0000.0000.0000.0000] # VARIATION SELECTOR-173
+E019D ; [.0000.0000.0000.0000] # VARIATION SELECTOR-174
+E019E ; [.0000.0000.0000.0000] # VARIATION SELECTOR-175
+E019F ; [.0000.0000.0000.0000] # VARIATION SELECTOR-176
+E01A0 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-177
+E01A1 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-178
+E01A2 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-179
+E01A3 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-180
+E01A4 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-181
+E01A5 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-182
+E01A6 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-183
+E01A7 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-184
+E01A8 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-185
+E01A9 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-186
+E01AA ; [.0000.0000.0000.0000] # VARIATION SELECTOR-187
+E01AB ; [.0000.0000.0000.0000] # VARIATION SELECTOR-188
+E01AC ; [.0000.0000.0000.0000] # VARIATION SELECTOR-189
+E01AD ; [.0000.0000.0000.0000] # VARIATION SELECTOR-190
+E01AE ; [.0000.0000.0000.0000] # VARIATION SELECTOR-191
+E01AF ; [.0000.0000.0000.0000] # VARIATION SELECTOR-192
+E01B0 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-193
+E01B1 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-194
+E01B2 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-195
+E01B3 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-196
+E01B4 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-197
+E01B5 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-198
+E01B6 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-199
+E01B7 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-200
+E01B8 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-201
+E01B9 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-202
+E01BA ; [.0000.0000.0000.0000] # VARIATION SELECTOR-203
+E01BB ; [.0000.0000.0000.0000] # VARIATION SELECTOR-204
+E01BC ; [.0000.0000.0000.0000] # VARIATION SELECTOR-205
+E01BD ; [.0000.0000.0000.0000] # VARIATION SELECTOR-206
+E01BE ; [.0000.0000.0000.0000] # VARIATION SELECTOR-207
+E01BF ; [.0000.0000.0000.0000] # VARIATION SELECTOR-208
+E01C0 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-209
+E01C1 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-210
+E01C2 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-211
+E01C3 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-212
+E01C4 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-213
+E01C5 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-214
+E01C6 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-215
+E01C7 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-216
+E01C8 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-217
+E01C9 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-218
+E01CA ; [.0000.0000.0000.0000] # VARIATION SELECTOR-219
+E01CB ; [.0000.0000.0000.0000] # VARIATION SELECTOR-220
+E01CC ; [.0000.0000.0000.0000] # VARIATION SELECTOR-221
+E01CD ; [.0000.0000.0000.0000] # VARIATION SELECTOR-222
+E01CE ; [.0000.0000.0000.0000] # VARIATION SELECTOR-223
+E01CF ; [.0000.0000.0000.0000] # VARIATION SELECTOR-224
+E01D0 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-225
+E01D1 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-226
+E01D2 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-227
+E01D3 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-228
+E01D4 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-229
+E01D5 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-230
+E01D6 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-231
+E01D7 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-232
+E01D8 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-233
+E01D9 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-234
+E01DA ; [.0000.0000.0000.0000] # VARIATION SELECTOR-235
+E01DB ; [.0000.0000.0000.0000] # VARIATION SELECTOR-236
+E01DC ; [.0000.0000.0000.0000] # VARIATION SELECTOR-237
+E01DD ; [.0000.0000.0000.0000] # VARIATION SELECTOR-238
+E01DE ; [.0000.0000.0000.0000] # VARIATION SELECTOR-239
+E01DF ; [.0000.0000.0000.0000] # VARIATION SELECTOR-240
+E01E0 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-241
+E01E1 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-242
+E01E2 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-243
+E01E3 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-244
+E01E4 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-245
+E01E5 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-246
+E01E6 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-247
+E01E7 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-248
+E01E8 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-249
+E01E9 ; [.0000.0000.0000.0000] # VARIATION SELECTOR-250
+E01EA ; [.0000.0000.0000.0000] # VARIATION SELECTOR-251
+E01EB ; [.0000.0000.0000.0000] # VARIATION SELECTOR-252
+E01EC ; [.0000.0000.0000.0000] # VARIATION SELECTOR-253
+E01ED ; [.0000.0000.0000.0000] # VARIATION SELECTOR-254
+E01EE ; [.0000.0000.0000.0000] # VARIATION SELECTOR-255
+E01EF ; [.0000.0000.0000.0000] # VARIATION SELECTOR-256
+0009 ; [*0100.0020.0002.0009] # <CHARACTER TABULATION>
+000A ; [*0101.0020.0002.000A] # <LINE FEED (LF)>
+000B ; [*0102.0020.0002.000B] # <LINE TABULATION>
+000C ; [*0103.0020.0002.000C] # <FORM FEED (FF)>
+000D ; [*0104.0020.0002.000D] # <CARRIAGE RETURN (CR)>
+0085 ; [*0105.0020.0002.0085] # <NEXT LINE (NEL)>
+180E ; [*0106.0020.0002.180E] # MONGOLIAN VOWEL SEPARATOR
+2028 ; [*0107.0020.0002.2028] # LINE SEPARATOR
+2029 ; [*0108.0020.0002.2029] # PARAGRAPH SEPARATOR
+0020 ; [*0109.0020.0002.0020] # SPACE
+00A0 ; [*0109.0020.001B.00A0] # NO-BREAK SPACE
+1680 ; [*0109.0020.0004.1680] # OGHAM SPACE MARK
+2000 ; [*0109.0020.0004.2000] # EN QUAD
+2002 ; [*0109.0020.0004.2002] # EN SPACE
+2001 ; [*0109.0020.0004.2001] # EM QUAD
+2003 ; [*0109.0020.0004.2003] # EM SPACE
+2004 ; [*0109.0020.0004.2004] # THREE-PER-EM SPACE
+2005 ; [*0109.0020.0004.2005] # FOUR-PER-EM SPACE
+2006 ; [*0109.0020.0004.2006] # SIX-PER-EM SPACE
+2007 ; [*0109.0020.001B.2007] # FIGURE SPACE
+2008 ; [*0109.0020.0004.2008] # PUNCTUATION SPACE
+2009 ; [*0109.0020.0004.2009] # THIN SPACE
+200A ; [*0109.0020.0004.200A] # HAIR SPACE
+202F ; [*0109.0020.001B.202F] # NARROW NO-BREAK SPACE
+205F ; [*0109.0020.0004.205F] # MEDIUM MATHEMATICAL SPACE
+3000 ; [*0109.0020.0003.3000] # IDEOGRAPHIC SPACE
+203E ; [*010A.0020.0002.203E] # OVERLINE
+FE49 ; [*010A.0020.0004.FE49] # DASHED OVERLINE
+FE4A ; [*010A.0020.0004.FE4A] # CENTRELINE OVERLINE
+FE4B ; [*010A.0020.0004.FE4B] # WAVY OVERLINE
+FE4C ; [*010A.0020.0004.FE4C] # DOUBLE WAVY OVERLINE
+005F ; [*010B.0020.0002.005F] # LOW LINE
+FE33 ; [*010B.0020.0016.FE33] # PRESENTATION FORM FOR VERTICAL LOW LINE
+FE34 ; [*010B.0020.0016.FE34] # PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE4D ; [*010B.0020.0004.FE4D] # DASHED LOW LINE
+FE4E ; [*010B.0020.0004.FE4E] # CENTRELINE LOW LINE
+FE4F ; [*010B.0020.0004.FE4F] # WAVY LOW LINE
+FF3F ; [*010B.0020.0003.FF3F] # FULLWIDTH LOW LINE
+2017 ; [*010C.0020.0002.2017] # DOUBLE LOW LINE
+002D ; [*010D.0020.0002.002D] # HYPHEN-MINUS
+FE63 ; [*010D.0020.000F.FE63] # SMALL HYPHEN-MINUS
+FF0D ; [*010D.0020.0003.FF0D] # FULLWIDTH HYPHEN-MINUS
+058A ; [*010E.0020.0002.058A] # ARMENIAN HYPHEN
+1400 ; [*010F.0020.0002.1400] # CANADIAN SYLLABICS HYPHEN
+1B60 ; [*0110.0020.0002.1B60] # BALINESE PAMENENG
+1806 ; [*0111.0020.0002.1806] # MONGOLIAN TODO SOFT HYPHEN
+1807 ; [*0112.0020.0002.1807] # MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
+2010 ; [*0113.0020.0002.2010] # HYPHEN
+2011 ; [*0113.0020.001B.2011] # NON-BREAKING HYPHEN
+2012 ; [*0114.0020.0002.2012] # FIGURE DASH
+2013 ; [*0115.0020.0002.2013] # EN DASH
+FE32 ; [*0115.0020.0016.FE32] # PRESENTATION FORM FOR VERTICAL EN DASH
+2014 ; [*0116.0020.0002.2014] # EM DASH
+FE31 ; [*0116.0020.0016.FE31] # PRESENTATION FORM FOR VERTICAL EM DASH
+FE58 ; [*0116.0020.000F.FE58] # SMALL EM DASH
+2015 ; [*0117.0020.0002.2015] # HORIZONTAL BAR
+2E3A ; [*0118.0020.0002.2E3A] # TWO-EM DASH
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-soc-all
mailing list