diff options
author | marha <marha@users.sourceforge.net> | 2015-03-05 23:40:39 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2015-03-05 23:42:09 +0100 |
commit | c646056120fe14e4c4ccf81bac5d78d61225a8e8 (patch) | |
tree | ba0af42750f0ab6dc4724342a7063835636222b5 /fontconfig | |
parent | 87e58a93f7248171e736656080069cb65ff56aae (diff) | |
parent | 8574eba804031f6b19713f0b02952280730bf62e (diff) | |
download | vcxsrv-c646056120fe14e4c4ccf81bac5d78d61225a8e8.tar.gz vcxsrv-c646056120fe14e4c4ccf81bac5d78d61225a8e8.tar.bz2 vcxsrv-c646056120fe14e4c4ccf81bac5d78d61225a8e8.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
mesalib/src/mesa/drivers/dri/swrast/swrast.c
mesalib/src/mesa/main/.gitignore
mesalib/src/mesa/main/queryobj.c
Diffstat (limited to 'fontconfig')
-rw-r--r-- | fontconfig/Makefile.am | 2 | ||||
-rw-r--r-- | fontconfig/configure.ac | 38 | ||||
-rw-r--r-- | fontconfig/fc-blanks/Makefile.am | 40 | ||||
-rw-r--r-- | fontconfig/fc-blanks/fc-blanks.py | 132 | ||||
-rwxr-xr-x | fontconfig/fc-blanks/fcblanks.h | 4223 | ||||
-rw-r--r-- | fontconfig/fc-blanks/fcblanks.tmpl.h | 25 | ||||
-rw-r--r-- | fontconfig/fc-blanks/makefile | 7 | ||||
-rw-r--r-- | fontconfig/fonts.conf.in | 68 | ||||
-rw-r--r-- | fontconfig/src/fcarch.c | 3 | ||||
-rw-r--r-- | fontconfig/src/fcblanks.c | 28 | ||||
-rw-r--r-- | fontconfig/src/fccfg.c | 12 | ||||
-rw-r--r-- | fontconfig/src/fcfreetype.c | 355 | ||||
-rw-r--r-- | fontconfig/src/fclist.c | 2 | ||||
-rw-r--r-- | fontconfig/src/fcstat.c | 82 | ||||
-rw-r--r-- | fontconfig/src/fcxml.c | 4 | ||||
-rwxr-xr-x | fontconfig/src/makefile | 1 |
16 files changed, 4557 insertions, 465 deletions
diff --git a/fontconfig/Makefile.am b/fontconfig/Makefile.am index 2b949e439..2b4a5b822 100644 --- a/fontconfig/Makefile.am +++ b/fontconfig/Makefile.am @@ -21,7 +21,7 @@ # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -SUBDIRS=fontconfig fc-case fc-lang fc-glyphname src \ +SUBDIRS=fontconfig fc-blanks fc-case fc-lang fc-glyphname src \ fc-cache fc-cat fc-list fc-match fc-pattern fc-query fc-scan \ fc-validate conf.d test if ENABLE_DOCS diff --git a/fontconfig/configure.ac b/fontconfig/configure.ac index 9011f37a3..8f0150ef5 100644 --- a/fontconfig/configure.ac +++ b/fontconfig/configure.ac @@ -53,6 +53,7 @@ m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/ AM_MISSING_PROG([GIT], [git]) AM_MISSING_PROG([GPERF], [gperf]) +AM_PATH_PYTHON AC_MSG_CHECKING([for RM macro]) _predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'` @@ -105,7 +106,6 @@ AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) WARN_CFLAGS="" -WERROR_CFLAGS="-Werror" WARNING_CPP_DIRECTIVE="no" if test "x$GCC" = "xyes"; then WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ @@ -114,8 +114,6 @@ if test "x$GCC" = "xyes"; then WARNING_CPP_DIRECTIVE="yes" elif test "x$SUNCC" = "xyes"; then WARN_CFLAGS="-v -fd" - WERROR_CFLAGS="-errtags \ - -errwarn=%all,no%E_OLD_STYLE_FUNC_DEF,no%E_STATEMENT_NOT_REACHED" WARNING_CPP_DIRECTIVE="yes" fi if test "x$WARNING_CPP_DIRECTIVE" = "xyes"; then @@ -167,38 +165,6 @@ dnl AC_CHECK_FUNCS doesn't check for header files. dnl posix_fadvise() may be not available in older libc. AC_CHECK_SYMBOL([posix_fadvise], [fcntl.h], [fc_func_posix_fadvise=1], [fc_func_posix_fadvise=0]) AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadvise' function.]) -if test "$os_win32" = "no"; then - AC_MSG_CHECKING([for scandir]) - fc_saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $WARN_CFLAGS $WERROR_CFLAGS" - AC_TRY_COMPILE([ - #include <dirent.h> - int main(void); - ], [ - int (* comp) (const struct dirent **, const struct dirent **) = 0; - struct dirent **d; - return scandir(".", &d, 0, comp) >= 0; - ], [ - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_SCANDIR], [1], [Define to 1 if you have the 'scandir' function.]) - ], [ - AC_TRY_COMPILE([ - #include <dirent.h> - int main(void); - ], [ - int (* comp) (const void *, const void *) = 0; - struct dirent **d; - return scandir(".", &d, 0, comp) >= 0; - ], [ - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_SCANDIR_VOID_P], [1], [Define to 1 if you have the 'scandir' function with int (* compar)(const void *, const void *)]) - ],[ - AC_MSG_ERROR([ -*** No scandir function available.]) - ]) - ]) -fi -CFLAGS="$fc_saved_CFLAGS" # if test "x$ac_cv_func_fstatvfs" = "xyes"; then @@ -715,6 +681,7 @@ dnl Figure out what cache format suffix to use for this architecture AC_C_BIGENDIAN AC_CHECK_SIZEOF([void *]) AC_CHECK_ALIGNOF([double]) +AC_CHECK_ALIGNOF([void *]) dnl include the header file for workaround of miscalculating size on autoconf dnl particularly for fat binaries @@ -731,6 +698,7 @@ Makefile fontconfig/Makefile fc-lang/Makefile fc-glyphname/Makefile +fc-blanks/Makefile fc-case/Makefile src/Makefile conf.d/Makefile diff --git a/fontconfig/fc-blanks/Makefile.am b/fontconfig/fc-blanks/Makefile.am new file mode 100644 index 000000000..5b9700031 --- /dev/null +++ b/fontconfig/fc-blanks/Makefile.am @@ -0,0 +1,40 @@ +# -*- encoding: utf-8 -*- +# +# Copyright © 2003 Keith Packard +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of the author(s) not be used in +# advertising or publicity pertaining to distribution of the software without +# specific, written prior permission. The authors make no +# representations about the suitability of this software for any purpose. It +# is provided "as is" without express or implied warranty. +# +# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +NULL = +BLANKSPY = fc-blanks.py +BLANKS_H = fcblanks.h +TMPL = fcblanks.tmpl.h +noinst_SCRIPTS = $(BLANKSPY) +noinst_HEADERS = $(BLANKS_H) + +$(BLANKS_H): $(TMPL) $(BLANKSPY) + $(AM_V_GEN) $(PYTHON) $(srcdir)/$(BLANKSPY) < $< > $(BLANKS_H).tmp && \ + mv $(BLANKS_H).tmp $(BLANKS_H) || ($(RM) $(BLANKS_H).tmp && false) + +EXTRA_DIST = \ + $(BLANKS_H) \ + $(TMPL) \ + $(NULL) +DISTCLEANFILES = $(BLANKS_H) + +-include $(top_srcdir)/git.mk diff --git a/fontconfig/fc-blanks/fc-blanks.py b/fontconfig/fc-blanks/fc-blanks.py new file mode 100644 index 000000000..a2f0b9502 --- /dev/null +++ b/fontconfig/fc-blanks/fc-blanks.py @@ -0,0 +1,132 @@ +#! /usr/bin/python + +import urllib2 +import sys +from lxml import html + +fp = urllib2.urlopen('http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[%3AGC%3DZs%3A][%3ADI%3A]&abb=on&ucd=on&esc=on&g') +data = fp.read() +fp.close() + +dom = html.fromstring(data) +x = dom.xpath('/html/body/form/p/text()') +p = x[1] +if p[0] == '[' and p[-1] == ']': + p = p.replace('[', '').replace(']', '') +else: + sys.exit(1) +fescape = False +funicode = False +frange = False +fprocess = False +v = 0 +vbegin = 0 +vend = 0 +n = 0 +l = [] + +def insert(db, begin, end): + db.append([begin, end]) + +for i in p: + if i == '\\': + if n > 0: + if frange == True and funicode == True: + vend = v + insert(l, vbegin, vend) + fprocess = True + elif funicode == True: + vbegin = v + vend = v + insert(l, vbegin, vend) + fprocess = True + funicode = False + fescape = True + elif i.lower() == 'u' and fescape == True: + funicode = True + fescape = False + elif i >= '0' and i <= '9' or i.lower() >= 'a' and i.lower() <= 'f': + if fescape == True: + raise RuntimeError, "Unexpected escape code" + if funicode == True: + v <<= 4 + v += int(i, 16) + else: + raise RuntimeError, "Unable to parse Unicode" + elif i == ' ': + if fescape == True: + funicode = True + fescape = False + v = 0x20 + if frange == True and funicode == True: + vend = v + insert(l, vbegin, vend) + fprocess = True + elif funicode == True: + vbegin = v + vend = v + insert(l, vbegin, vend) + fprocess = True + funicode = False + frange = False + elif i == '-': + if fescape == True: + raise RuntimeError, "Unexpected escape code" + vbegin = v + v = 0 + funicode = False + frange = True + else: + raise RuntimeError, "Unable to parse Unicode: %s" % i + + if fprocess == True: + vbegin = 0 + vend = 0 + v = 0 + fprocess = False + funicode = False + frange = False + n += 1 + +if frange == True and funicode == True: + vend = v + insert(l, vbegin, vend) +elif funicode == True: + vbegin = vend = v + insert(l, vbegin, vend) + +ncode = 0 +for i in l: + ncode += (i[1] - i[0] + 1) + +a = int(x[0].split(' ')[0].replace(',', '')) +if a != ncode: + sys.stderr.write("Unexpected the amount of code points: %d (expected %d)\n" % (ncode, a)) + sys.exit(1) + +# exception; BRAILLE PATTERN BLANK +insert(l, 0x2800, 0x2800) + +while True: + s = sys.stdin.readline().rstrip() + if s == "@@@": + break + print s + +print "static FcChar32 _fcBlanks[%s] = {" % (ncode + 1) +k = 0 +for i in sorted(l, key=lambda(a): a[0]): + for j in range(i[0], i[1] + 1): + if k != 0: + print "," + print " 0x%04x" % j, + k += 1 + +print "};" +print ''' +static FcBlanks fcBlanks = { + %s, + -1, + _fcBlanks +}; +''' % (ncode + 1) diff --git a/fontconfig/fc-blanks/fcblanks.h b/fontconfig/fc-blanks/fcblanks.h new file mode 100755 index 000000000..51ba34df5 --- /dev/null +++ b/fontconfig/fc-blanks/fcblanks.h @@ -0,0 +1,4223 @@ +/* + * fontconfig/fc-blanks/fcblanks.tmpl.h + * + * Copyright © 2003 Keith Packard + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of the author(s) not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. The authors make no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +static FcChar32 _fcBlanks[4191] = { + 0x0020 , + 0x00a0 , + 0x00ad , + 0x034f , + 0x061c , + 0x115f , + 0x1160 , + 0x1680 , + 0x17b4 , + 0x17b5 , + 0x180b , + 0x180c , + 0x180d , + 0x180e , + 0x2000 , + 0x2001 , + 0x2002 , + 0x2003 , + 0x2004 , + 0x2005 , + 0x2006 , + 0x2007 , + 0x2008 , + 0x2009 , + 0x200a , + 0x200b , + 0x200c , + 0x200d , + 0x200e , + 0x200f , + 0x202a , + 0x202b , + 0x202c , + 0x202d , + 0x202e , + 0x202f , + 0x205f , + 0x2060 , + 0x2061 , + 0x2062 , + 0x2063 , + 0x2064 , + 0x2065 , + 0x2066 , + 0x2067 , + 0x2068 , + 0x2069 , + 0x206a , + 0x206b , + 0x206c , + 0x206d , + 0x206e , + 0x206f , + 0x2800 , + 0x3000 , + 0x3164 , + 0xfe00 , + 0xfe01 , + 0xfe02 , + 0xfe03 , + 0xfe04 , + 0xfe05 , + 0xfe06 , + 0xfe07 , + 0xfe08 , + 0xfe09 , + 0xfe0a , + 0xfe0b , + 0xfe0c , + 0xfe0d , + 0xfe0e , + 0xfe0f , + 0xfeff , + 0xffa0 , + 0xfff0 , + 0xfff1 , + 0xfff2 , + 0xfff3 , + 0xfff4 , + 0xfff5 , + 0xfff6 , + 0xfff7 , + 0xfff8 , + 0x1bca0 , + 0x1bca1 , + 0x1bca2 , + 0x1bca3 , + 0x1d173 , + 0x1d174 , + 0x1d175 , + 0x1d176 , + 0x1d177 , + 0x1d178 , + 0x1d179 , + 0x1d17a , + 0xe0000 , + 0xe0001 , + 0xe0002 , + 0xe0003 , + 0xe0004 , + 0xe0005 , + 0xe0006 , + 0xe0007 , + 0xe0008 , + 0xe0009 , + 0xe000a , + 0xe000b , + 0xe000c , + 0xe000d , + 0xe000e , + 0xe000f , + 0xe0010 , + 0xe0011 , + 0xe0012 , + 0xe0013 , + 0xe0014 , + 0xe0015 , + 0xe0016 , + 0xe0017 , + 0xe0018 , + 0xe0019 , + 0xe001a , + 0xe001b , + 0xe001c , + 0xe001d , + 0xe001e , + 0xe001f , + 0xe0020 , + 0xe0021 , + 0xe0022 , + 0xe0023 , + 0xe0024 , + 0xe0025 , + 0xe0026 , + 0xe0027 , + 0xe0028 , + 0xe0029 , + 0xe002a , + 0xe002b , + 0xe002c , + 0xe002d , + 0xe002e , + 0xe002f , + 0xe0030 , + 0xe0031 , + 0xe0032 , + 0xe0033 , + 0xe0034 , + 0xe0035 , + 0xe0036 , + 0xe0037 , + 0xe0038 , + 0xe0039 , + 0xe003a , + 0xe003b , + 0xe003c , + 0xe003d , + 0xe003e , + 0xe003f , + 0xe0040 , + 0xe0041 , + 0xe0042 , + 0xe0043 , + 0xe0044 , + 0xe0045 , + 0xe0046 , + 0xe0047 , + 0xe0048 , + 0xe0049 , + 0xe004a , + 0xe004b , + 0xe004c , + 0xe004d , + 0xe004e , + 0xe004f , + 0xe0050 , + 0xe0051 , + 0xe0052 , + 0xe0053 , + 0xe0054 , + 0xe0055 , + 0xe0056 , + 0xe0057 , + 0xe0058 , + 0xe0059 , + 0xe005a , + 0xe005b , + 0xe005c , + 0xe005d , + 0xe005e , + 0xe005f , + 0xe0060 , + 0xe0061 , + 0xe0062 , + 0xe0063 , + 0xe0064 , + 0xe0065 , + 0xe0066 , + 0xe0067 , + 0xe0068 , + 0xe0069 , + 0xe006a , + 0xe006b , + 0xe006c , + 0xe006d , + 0xe006e , + 0xe006f , + 0xe0070 , + 0xe0071 , + 0xe0072 , + 0xe0073 , + 0xe0074 , + 0xe0075 , + 0xe0076 , + 0xe0077 , + 0xe0078 , + 0xe0079 , + 0xe007a , + 0xe007b , + 0xe007c , + 0xe007d , + 0xe007e , + 0xe007f , + 0xe0080 , + 0xe0081 , + 0xe0082 , + 0xe0083 , + 0xe0084 , + 0xe0085 , + 0xe0086 , + 0xe0087 , + 0xe0088 , + 0xe0089 , + 0xe008a , + 0xe008b , + 0xe008c , + 0xe008d , + 0xe008e , + 0xe008f , + 0xe0090 , + 0xe0091 , + 0xe0092 , + 0xe0093 , + 0xe0094 , + 0xe0095 , + 0xe0096 , + 0xe0097 , + 0xe0098 , + 0xe0099 , + 0xe009a , + 0xe009b , + 0xe009c , + 0xe009d , + 0xe009e , + 0xe009f , + 0xe00a0 , + 0xe00a1 , + 0xe00a2 , + 0xe00a3 , + 0xe00a4 , + 0xe00a5 , + 0xe00a6 , + 0xe00a7 , + 0xe00a8 , + 0xe00a9 , + 0xe00aa , + 0xe00ab , + 0xe00ac , + 0xe00ad , + 0xe00ae , + 0xe00af , + 0xe00b0 , + 0xe00b1 , + 0xe00b2 , + 0xe00b3 , + 0xe00b4 , + 0xe00b5 , + 0xe00b6 , + 0xe00b7 , + 0xe00b8 , + 0xe00b9 , + 0xe00ba , + 0xe00bb , + 0xe00bc , + 0xe00bd , + 0xe00be , + 0xe00bf , + 0xe00c0 , + 0xe00c1 , + 0xe00c2 , + 0xe00c3 , + 0xe00c4 , + 0xe00c5 , + 0xe00c6 , + 0xe00c7 , + 0xe00c8 , + 0xe00c9 , + 0xe00ca , + 0xe00cb , + 0xe00cc , + 0xe00cd , + 0xe00ce , + 0xe00cf , + 0xe00d0 , + 0xe00d1 , + 0xe00d2 , + 0xe00d3 , + 0xe00d4 , + 0xe00d5 , + 0xe00d6 , + 0xe00d7 , + 0xe00d8 , + 0xe00d9 , + 0xe00da , + 0xe00db , + 0xe00dc , + 0xe00dd , + 0xe00de , + 0xe00df , + 0xe00e0 , + 0xe00e1 , + 0xe00e2 , + 0xe00e3 , + 0xe00e4 , + 0xe00e5 , + 0xe00e6 , + 0xe00e7 , + 0xe00e8 , + 0xe00e9 , + 0xe00ea , + 0xe00eb , + 0xe00ec , + 0xe00ed , + 0xe00ee , + 0xe00ef , + 0xe00f0 , + 0xe00f1 , + 0xe00f2 , + 0xe00f3 , + 0xe00f4 , + 0xe00f5 , + 0xe00f6 , + 0xe00f7 , + 0xe00f8 , + 0xe00f9 , + 0xe00fa , + 0xe00fb , + 0xe00fc , + 0xe00fd , + 0xe00fe , + 0xe00ff , + 0xe0100 , + 0xe0101 , + 0xe0102 , + 0xe0103 , + 0xe0104 , + 0xe0105 , + 0xe0106 , + 0xe0107 , + 0xe0108 , + 0xe0109 , + 0xe010a , + 0xe010b , + 0xe010c , + 0xe010d , + 0xe010e , + 0xe010f , + 0xe0110 , + 0xe0111 , + 0xe0112 , + 0xe0113 , + 0xe0114 , + 0xe0115 , + 0xe0116 , + 0xe0117 , + 0xe0118 , + 0xe0119 , + 0xe011a , + 0xe011b , + 0xe011c , + 0xe011d , + 0xe011e , + 0xe011f , + 0xe0120 , + 0xe0121 , + 0xe0122 , + 0xe0123 , + 0xe0124 , + 0xe0125 , + 0xe0126 , + 0xe0127 , + 0xe0128 , + 0xe0129 , + 0xe012a , + 0xe012b , + 0xe012c , + 0xe012d , + 0xe012e , + 0xe012f , + 0xe0130 , + 0xe0131 , + 0xe0132 , + 0xe0133 , + 0xe0134 , + 0xe0135 , + 0xe0136 , + 0xe0137 , + 0xe0138 , + 0xe0139 , + 0xe013a , + 0xe013b , + 0xe013c , + 0xe013d , + 0xe013e , + 0xe013f , + 0xe0140 , + 0xe0141 , + 0xe0142 , + 0xe0143 , + 0xe0144 , + 0xe0145 , + 0xe0146 , + 0xe0147 , + 0xe0148 , + 0xe0149 , + 0xe014a , + 0xe014b , + 0xe014c , + 0xe014d , + 0xe014e , + 0xe014f , + 0xe0150 , + 0xe0151 , + 0xe0152 , + 0xe0153 , + 0xe0154 , + 0xe0155 , + 0xe0156 , + 0xe0157 , + 0xe0158 , + 0xe0159 , + 0xe015a , + 0xe015b , + 0xe015c , + 0xe015d , + 0xe015e , + 0xe015f , + 0xe0160 , + 0xe0161 , + 0xe0162 , + 0xe0163 , + 0xe0164 , + 0xe0165 , + 0xe0166 , + 0xe0167 , + 0xe0168 , + 0xe0169 , + 0xe016a , + 0xe016b , + 0xe016c , + 0xe016d , + 0xe016e , + 0xe016f , + 0xe0170 , + 0xe0171 , + 0xe0172 , + 0xe0173 , + 0xe0174 , + 0xe0175 , + 0xe0176 , + 0xe0177 , + 0xe0178 , + 0xe0179 , + 0xe017a , + 0xe017b , + 0xe017c , + 0xe017d , + 0xe017e , + 0xe017f , + 0xe0180 , + 0xe0181 , + 0xe0182 , + 0xe0183 , + 0xe0184 , + 0xe0185 , + 0xe0186 , + 0xe0187 , + 0xe0188 , + 0xe0189 , + 0xe018a , + 0xe018b , + 0xe018c , + 0xe018d , + 0xe018e , + 0xe018f , + 0xe0190 , + 0xe0191 , + 0xe0192 , + 0xe0193 , + 0xe0194 , + 0xe0195 , + 0xe0196 , + 0xe0197 , + 0xe0198 , + 0xe0199 , + 0xe019a , + 0xe019b , + 0xe019c , + 0xe019d , + 0xe019e , + 0xe019f , + 0xe01a0 , + 0xe01a1 , + 0xe01a2 , + 0xe01a3 , + 0xe01a4 , + 0xe01a5 , + 0xe01a6 , + 0xe01a7 , + 0xe01a8 , + 0xe01a9 , + 0xe01aa , + 0xe01ab , + 0xe01ac , + 0xe01ad , + 0xe01ae , + 0xe01af , + 0xe01b0 , + 0xe01b1 , + 0xe01b2 , + 0xe01b3 , + 0xe01b4 , + 0xe01b5 , + 0xe01b6 , + 0xe01b7 , + 0xe01b8 , + 0xe01b9 , + 0xe01ba , + 0xe01bb , + 0xe01bc , + 0xe01bd , + 0xe01be , + 0xe01bf , + 0xe01c0 , + 0xe01c1 , + 0xe01c2 , + 0xe01c3 , + 0xe01c4 , + 0xe01c5 , + 0xe01c6 , + 0xe01c7 , + 0xe01c8 , + 0xe01c9 , + 0xe01ca , + 0xe01cb , + 0xe01cc , + 0xe01cd , + 0xe01ce , + 0xe01cf , + 0xe01d0 , + 0xe01d1 , + 0xe01d2 , + 0xe01d3 , + 0xe01d4 , + 0xe01d5 , + 0xe01d6 , + 0xe01d7 , + 0xe01d8 , + 0xe01d9 , + 0xe01da , + 0xe01db , + 0xe01dc , + 0xe01dd , + 0xe01de , + 0xe01df , + 0xe01e0 , + 0xe01e1 , + 0xe01e2 , + 0xe01e3 , + 0xe01e4 , + 0xe01e5 , + 0xe01e6 , + 0xe01e7 , + 0xe01e8 , + 0xe01e9 , + 0xe01ea , + 0xe01eb , + 0xe01ec , + 0xe01ed , + 0xe01ee , + 0xe01ef , + 0xe01f0 , + 0xe01f1 , + 0xe01f2 , + 0xe01f3 , + 0xe01f4 , + 0xe01f5 , + 0xe01f6 , + 0xe01f7 , + 0xe01f8 , + 0xe01f9 , + 0xe01fa , + 0xe01fb , + 0xe01fc , + 0xe01fd , + 0xe01fe , + 0xe01ff , + 0xe0200 , + 0xe0201 , + 0xe0202 , + 0xe0203 , + 0xe0204 , + 0xe0205 , + 0xe0206 , + 0xe0207 , + 0xe0208 , + 0xe0209 , + 0xe020a , + 0xe020b , + 0xe020c , + 0xe020d , + 0xe020e , + 0xe020f , + 0xe0210 , + 0xe0211 , + 0xe0212 , + 0xe0213 , + 0xe0214 , + 0xe0215 , + 0xe0216 , + 0xe0217 , + 0xe0218 , + 0xe0219 , + 0xe021a , + 0xe021b , + 0xe021c , + 0xe021d , + 0xe021e , + 0xe021f , + 0xe0220 , + 0xe0221 , + 0xe0222 , + 0xe0223 , + 0xe0224 , + 0xe0225 , + 0xe0226 , + 0xe0227 , + 0xe0228 , + 0xe0229 , + 0xe022a , + 0xe022b , + 0xe022c , + 0xe022d , + 0xe022e , + 0xe022f , + 0xe0230 , + 0xe0231 , + 0xe0232 , + 0xe0233 , + 0xe0234 , + 0xe0235 , + 0xe0236 , + 0xe0237 , + 0xe0238 , + 0xe0239 , + 0xe023a , + 0xe023b , + 0xe023c , + 0xe023d , + 0xe023e , + 0xe023f , + 0xe0240 , + 0xe0241 , + 0xe0242 , + 0xe0243 , + 0xe0244 , + 0xe0245 , + 0xe0246 , + 0xe0247 , + 0xe0248 , + 0xe0249 , + 0xe024a , + 0xe024b , + 0xe024c , + 0xe024d , + 0xe024e , + 0xe024f , + 0xe0250 , + 0xe0251 , + 0xe0252 , + 0xe0253 , + 0xe0254 , + 0xe0255 , + 0xe0256 , + 0xe0257 , + 0xe0258 , + 0xe0259 , + 0xe025a , + 0xe025b , + 0xe025c , + 0xe025d , + 0xe025e , + 0xe025f , + 0xe0260 , + 0xe0261 , + 0xe0262 , + 0xe0263 , + 0xe0264 , + 0xe0265 , + 0xe0266 , + 0xe0267 , + 0xe0268 , + 0xe0269 , + 0xe026a , + 0xe026b , + 0xe026c , + 0xe026d , + 0xe026e , + 0xe026f , + 0xe0270 , + 0xe0271 , + 0xe0272 , + 0xe0273 , + 0xe0274 , + 0xe0275 , + 0xe0276 , + 0xe0277 , + 0xe0278 , + 0xe0279 , + 0xe027a , + 0xe027b , + 0xe027c , + 0xe027d , + 0xe027e , + 0xe027f , + 0xe0280 , + 0xe0281 , + 0xe0282 , + 0xe0283 , + 0xe0284 , + 0xe0285 , + 0xe0286 , + 0xe0287 , + 0xe0288 , + 0xe0289 , + 0xe028a , + 0xe028b , + 0xe028c , + 0xe028d , + 0xe028e , + 0xe028f , + 0xe0290 , + 0xe0291 , + 0xe0292 , + 0xe0293 , + 0xe0294 , + 0xe0295 , + 0xe0296 , + 0xe0297 , + 0xe0298 , + 0xe0299 , + 0xe029a , + 0xe029b , + 0xe029c , + 0xe029d , + 0xe029e , + 0xe029f , + 0xe02a0 , + 0xe02a1 , + 0xe02a2 , + 0xe02a3 , + 0xe02a4 , + 0xe02a5 , + 0xe02a6 , + 0xe02a7 , + 0xe02a8 , + 0xe02a9 , + 0xe02aa , + 0xe02ab , + 0xe02ac , + 0xe02ad , + 0xe02ae , + 0xe02af , + 0xe02b0 , + 0xe02b1 , + 0xe02b2 , + 0xe02b3 , + 0xe02b4 , + 0xe02b5 , + 0xe02b6 , + 0xe02b7 , + 0xe02b8 , + 0xe02b9 , + 0xe02ba , + 0xe02bb , + 0xe02bc , + 0xe02bd , + 0xe02be , + 0xe02bf , + 0xe02c0 , + 0xe02c1 , + 0xe02c2 , + 0xe02c3 , + 0xe02c4 , + 0xe02c5 , + 0xe02c6 , + 0xe02c7 , + 0xe02c8 , + 0xe02c9 , + 0xe02ca , + 0xe02cb , + 0xe02cc , + 0xe02cd , + 0xe02ce , + 0xe02cf , + 0xe02d0 , + 0xe02d1 , + 0xe02d2 , + 0xe02d3 , + 0xe02d4 , + 0xe02d5 , + 0xe02d6 , + 0xe02d7 , + 0xe02d8 , + 0xe02d9 , + 0xe02da , + 0xe02db , + 0xe02dc , + 0xe02dd , + 0xe02de , + 0xe02df , + 0xe02e0 , + 0xe02e1 , + 0xe02e2 , + 0xe02e3 , + 0xe02e4 , + 0xe02e5 , + 0xe02e6 , + 0xe02e7 , + 0xe02e8 , + 0xe02e9 , + 0xe02ea , + 0xe02eb , + 0xe02ec , + 0xe02ed , + 0xe02ee , + 0xe02ef , + 0xe02f0 , + 0xe02f1 , + 0xe02f2 , + 0xe02f3 , + 0xe02f4 , + 0xe02f5 , + 0xe02f6 , + 0xe02f7 , + 0xe02f8 , + 0xe02f9 , + 0xe02fa , + 0xe02fb , + 0xe02fc , + 0xe02fd , + 0xe02fe , + 0xe02ff , + 0xe0300 , + 0xe0301 , + 0xe0302 , + 0xe0303 , + 0xe0304 , + 0xe0305 , + 0xe0306 , + 0xe0307 , + 0xe0308 , + 0xe0309 , + 0xe030a , + 0xe030b , + 0xe030c , + 0xe030d , + 0xe030e , + 0xe030f , + 0xe0310 , + 0xe0311 , + 0xe0312 , + 0xe0313 , + 0xe0314 , + 0xe0315 , + 0xe0316 , + 0xe0317 , + 0xe0318 , + 0xe0319 , + 0xe031a , + 0xe031b , + 0xe031c , + 0xe031d , + 0xe031e , + 0xe031f , + 0xe0320 , + 0xe0321 , + 0xe0322 , + 0xe0323 , + 0xe0324 , + 0xe0325 , + 0xe0326 , + 0xe0327 , + 0xe0328 , + 0xe0329 , + 0xe032a , + 0xe032b , + 0xe032c , + 0xe032d , + 0xe032e , + 0xe032f , + 0xe0330 , + 0xe0331 , + 0xe0332 , + 0xe0333 , + 0xe0334 , + 0xe0335 , + 0xe0336 , + 0xe0337 , + 0xe0338 , + 0xe0339 , + 0xe033a , + 0xe033b , + 0xe033c , + 0xe033d , + 0xe033e , + 0xe033f , + 0xe0340 , + 0xe0341 , + 0xe0342 , + 0xe0343 , + 0xe0344 , + 0xe0345 , + 0xe0346 , + 0xe0347 , + 0xe0348 , + 0xe0349 , + 0xe034a , + 0xe034b , + 0xe034c , + 0xe034d , + 0xe034e , + 0xe034f , + 0xe0350 , + 0xe0351 , + 0xe0352 , + 0xe0353 , + 0xe0354 , + 0xe0355 , + 0xe0356 , + 0xe0357 , + 0xe0358 , + 0xe0359 , + 0xe035a , + 0xe035b , + 0xe035c , + 0xe035d , + 0xe035e , + 0xe035f , + 0xe0360 , + 0xe0361 , + 0xe0362 , + 0xe0363 , + 0xe0364 , + 0xe0365 , + 0xe0366 , + 0xe0367 , + 0xe0368 , + 0xe0369 , + 0xe036a , + 0xe036b , + 0xe036c , + 0xe036d , + 0xe036e , + 0xe036f , + 0xe0370 , + 0xe0371 , + 0xe0372 , + 0xe0373 , + 0xe0374 , + 0xe0375 , + 0xe0376 , + 0xe0377 , + 0xe0378 , + 0xe0379 , + 0xe037a , + 0xe037b , + 0xe037c , + 0xe037d , + 0xe037e , + 0xe037f , + 0xe0380 , + 0xe0381 , + 0xe0382 , + 0xe0383 , + 0xe0384 , + 0xe0385 , + 0xe0386 , + 0xe0387 , + 0xe0388 , + 0xe0389 , + 0xe038a , + 0xe038b , + 0xe038c , + 0xe038d , + 0xe038e , + 0xe038f , + 0xe0390 , + 0xe0391 , + 0xe0392 , + 0xe0393 , + 0xe0394 , + 0xe0395 , + 0xe0396 , + 0xe0397 , + 0xe0398 , + 0xe0399 , + 0xe039a , + 0xe039b , + 0xe039c , + 0xe039d , + 0xe039e , + 0xe039f , + 0xe03a0 , + 0xe03a1 , + 0xe03a2 , + 0xe03a3 , + 0xe03a4 , + 0xe03a5 , + 0xe03a6 , + 0xe03a7 , + 0xe03a8 , + 0xe03a9 , + 0xe03aa , + 0xe03ab , + 0xe03ac , + 0xe03ad , + 0xe03ae , + 0xe03af , + 0xe03b0 , + 0xe03b1 , + 0xe03b2 , + 0xe03b3 , + 0xe03b4 , + 0xe03b5 , + 0xe03b6 , + 0xe03b7 , + 0xe03b8 , + 0xe03b9 , + 0xe03ba , + 0xe03bb , + 0xe03bc , + 0xe03bd , + 0xe03be , + 0xe03bf , + 0xe03c0 , + 0xe03c1 , + 0xe03c2 , + 0xe03c3 , + 0xe03c4 , + 0xe03c5 , + 0xe03c6 , + 0xe03c7 , + 0xe03c8 , + 0xe03c9 , + 0xe03ca , + 0xe03cb , + 0xe03cc , + 0xe03cd , + 0xe03ce , + 0xe03cf , + 0xe03d0 , + 0xe03d1 , + 0xe03d2 , + 0xe03d3 , + 0xe03d4 , + 0xe03d5 , + 0xe03d6 , + 0xe03d7 , + 0xe03d8 , + 0xe03d9 , + 0xe03da , + 0xe03db , + 0xe03dc , + 0xe03dd , + 0xe03de , + 0xe03df , + 0xe03e0 , + 0xe03e1 , + 0xe03e2 , + 0xe03e3 , + 0xe03e4 , + 0xe03e5 , + 0xe03e6 , + 0xe03e7 , + 0xe03e8 , + 0xe03e9 , + 0xe03ea , + 0xe03eb , + 0xe03ec , + 0xe03ed , + 0xe03ee , + 0xe03ef , + 0xe03f0 , + 0xe03f1 , + 0xe03f2 , + 0xe03f3 , + 0xe03f4 , + 0xe03f5 , + 0xe03f6 , + 0xe03f7 , + 0xe03f8 , + 0xe03f9 , + 0xe03fa , + 0xe03fb , + 0xe03fc , + 0xe03fd , + 0xe03fe , + 0xe03ff , + 0xe0400 , + 0xe0401 , + 0xe0402 , + 0xe0403 , + 0xe0404 , + 0xe0405 , + 0xe0406 , + 0xe0407 , + 0xe0408 , + 0xe0409 , + 0xe040a , + 0xe040b , + 0xe040c , + 0xe040d , + 0xe040e , + 0xe040f , + 0xe0410 , + 0xe0411 , + 0xe0412 , + 0xe0413 , + 0xe0414 , + 0xe0415 , + 0xe0416 , + 0xe0417 , + 0xe0418 , + 0xe0419 , + 0xe041a , + 0xe041b , + 0xe041c , + 0xe041d , + 0xe041e , + 0xe041f , + 0xe0420 , + 0xe0421 , + 0xe0422 , + 0xe0423 , + 0xe0424 , + 0xe0425 , + 0xe0426 , + 0xe0427 , + 0xe0428 , + 0xe0429 , + 0xe042a , + 0xe042b , + 0xe042c , + 0xe042d , + 0xe042e , + 0xe042f , + 0xe0430 , + 0xe0431 , + 0xe0432 , + 0xe0433 , + 0xe0434 , + 0xe0435 , + 0xe0436 , + 0xe0437 , + 0xe0438 , + 0xe0439 , + 0xe043a , + 0xe043b , + 0xe043c , + 0xe043d , + 0xe043e , + 0xe043f , + 0xe0440 , + 0xe0441 , + 0xe0442 , + 0xe0443 , + 0xe0444 , + 0xe0445 , + 0xe0446 , + 0xe0447 , + 0xe0448 , + 0xe0449 , + 0xe044a , + 0xe044b , + 0xe044c , + 0xe044d , + 0xe044e , + 0xe044f , + 0xe0450 , + 0xe0451 , + 0xe0452 , + 0xe0453 , + 0xe0454 , + 0xe0455 , + 0xe0456 , + 0xe0457 , + 0xe0458 , + 0xe0459 , + 0xe045a , + 0xe045b , + 0xe045c , + 0xe045d , + 0xe045e , + 0xe045f , + 0xe0460 , + 0xe0461 , + 0xe0462 , + 0xe0463 , + 0xe0464 , + 0xe0465 , + 0xe0466 , + 0xe0467 , + 0xe0468 , + 0xe0469 , + 0xe046a , + 0xe046b , + 0xe046c , + 0xe046d , + 0xe046e , + 0xe046f , + 0xe0470 , + 0xe0471 , + 0xe0472 , + 0xe0473 , + 0xe0474 , + 0xe0475 , + 0xe0476 , + 0xe0477 , + 0xe0478 , + 0xe0479 , + 0xe047a , + 0xe047b , + 0xe047c , + 0xe047d , + 0xe047e , + 0xe047f , + 0xe0480 , + 0xe0481 , + 0xe0482 , + 0xe0483 , + 0xe0484 , + 0xe0485 , + 0xe0486 , + 0xe0487 , + 0xe0488 , + 0xe0489 , + 0xe048a , + 0xe048b , + 0xe048c , + 0xe048d , + 0xe048e , + 0xe048f , + 0xe0490 , + 0xe0491 , + 0xe0492 , + 0xe0493 , + 0xe0494 , + 0xe0495 , + 0xe0496 , + 0xe0497 , + 0xe0498 , + 0xe0499 , + 0xe049a , + 0xe049b , + 0xe049c , + 0xe049d , + 0xe049e , + 0xe049f , + 0xe04a0 , + 0xe04a1 , + 0xe04a2 , + 0xe04a3 , + 0xe04a4 , + 0xe04a5 , + 0xe04a6 , + 0xe04a7 , + 0xe04a8 , + 0xe04a9 , + 0xe04aa , + 0xe04ab , + 0xe04ac , + 0xe04ad , + 0xe04ae , + 0xe04af , + 0xe04b0 , + 0xe04b1 , + 0xe04b2 , + 0xe04b3 , + 0xe04b4 , + 0xe04b5 , + 0xe04b6 , + 0xe04b7 , + 0xe04b8 , + 0xe04b9 , + 0xe04ba , + 0xe04bb , + 0xe04bc , + 0xe04bd , + 0xe04be , + 0xe04bf , + 0xe04c0 , + 0xe04c1 , + 0xe04c2 , + 0xe04c3 , + 0xe04c4 , + 0xe04c5 , + 0xe04c6 , + 0xe04c7 , + 0xe04c8 , + 0xe04c9 , + 0xe04ca , + 0xe04cb , + 0xe04cc , + 0xe04cd , + 0xe04ce , + 0xe04cf , + 0xe04d0 , + 0xe04d1 , + 0xe04d2 , + 0xe04d3 , + 0xe04d4 , + 0xe04d5 , + 0xe04d6 , + 0xe04d7 , + 0xe04d8 , + 0xe04d9 , + 0xe04da , + 0xe04db , + 0xe04dc , + 0xe04dd , + 0xe04de , + 0xe04df , + 0xe04e0 , + 0xe04e1 , + 0xe04e2 , + 0xe04e3 , + 0xe04e4 , + 0xe04e5 , + 0xe04e6 , + 0xe04e7 , + 0xe04e8 , + 0xe04e9 , + 0xe04ea , + 0xe04eb , + 0xe04ec , + 0xe04ed , + 0xe04ee , + 0xe04ef , + 0xe04f0 , + 0xe04f1 , + 0xe04f2 , + 0xe04f3 , + 0xe04f4 , + 0xe04f5 , + 0xe04f6 , + 0xe04f7 , + 0xe04f8 , + 0xe04f9 , + 0xe04fa , + 0xe04fb , + 0xe04fc , + 0xe04fd , + 0xe04fe , + 0xe04ff , + 0xe0500 , + 0xe0501 , + 0xe0502 , + 0xe0503 , + 0xe0504 , + 0xe0505 , + 0xe0506 , + 0xe0507 , + 0xe0508 , + 0xe0509 , + 0xe050a , + 0xe050b , + 0xe050c , + 0xe050d , + 0xe050e , + 0xe050f , + 0xe0510 , + 0xe0511 , + 0xe0512 , + 0xe0513 , + 0xe0514 , + 0xe0515 , + 0xe0516 , + 0xe0517 , + 0xe0518 , + 0xe0519 , + 0xe051a , + 0xe051b , + 0xe051c , + 0xe051d , + 0xe051e , + 0xe051f , + 0xe0520 , + 0xe0521 , + 0xe0522 , + 0xe0523 , + 0xe0524 , + 0xe0525 , + 0xe0526 , + 0xe0527 , + 0xe0528 , + 0xe0529 , + 0xe052a , + 0xe052b , + 0xe052c , + 0xe052d , + 0xe052e , + 0xe052f , + 0xe0530 , + 0xe0531 , + 0xe0532 , + 0xe0533 , + 0xe0534 , + 0xe0535 , + 0xe0536 , + 0xe0537 , + 0xe0538 , + 0xe0539 , + 0xe053a , + 0xe053b , + 0xe053c , + 0xe053d , + 0xe053e , + 0xe053f , + 0xe0540 , + 0xe0541 , + 0xe0542 , + 0xe0543 , + 0xe0544 , + 0xe0545 , + 0xe0546 , + 0xe0547 , + 0xe0548 , + 0xe0549 , + 0xe054a , + 0xe054b , + 0xe054c , + 0xe054d , + 0xe054e , + 0xe054f , + 0xe0550 , + 0xe0551 , + 0xe0552 , + 0xe0553 , + 0xe0554 , + 0xe0555 , + 0xe0556 , + 0xe0557 , + 0xe0558 , + 0xe0559 , + 0xe055a , + 0xe055b , + 0xe055c , + 0xe055d , + 0xe055e , + 0xe055f , + 0xe0560 , + 0xe0561 , + 0xe0562 , + 0xe0563 , + 0xe0564 , + 0xe0565 , + 0xe0566 , + 0xe0567 , + 0xe0568 , + 0xe0569 , + 0xe056a , + 0xe056b , + 0xe056c , + 0xe056d , + 0xe056e , + 0xe056f , + 0xe0570 , + 0xe0571 , + 0xe0572 , + 0xe0573 , + 0xe0574 , + 0xe0575 , + 0xe0576 , + 0xe0577 , + 0xe0578 , + 0xe0579 , + 0xe057a , + 0xe057b , + 0xe057c , + 0xe057d , + 0xe057e , + 0xe057f , + 0xe0580 , + 0xe0581 , + 0xe0582 , + 0xe0583 , + 0xe0584 , + 0xe0585 , + 0xe0586 , + 0xe0587 , + 0xe0588 , + 0xe0589 , + 0xe058a , + 0xe058b , + 0xe058c , + 0xe058d , + 0xe058e , + 0xe058f , + 0xe0590 , + 0xe0591 , + 0xe0592 , + 0xe0593 , + 0xe0594 , + 0xe0595 , + 0xe0596 , + 0xe0597 , + 0xe0598 , + 0xe0599 , + 0xe059a , + 0xe059b , + 0xe059c , + 0xe059d , + 0xe059e , + 0xe059f , + 0xe05a0 , + 0xe05a1 , + 0xe05a2 , + 0xe05a3 , + 0xe05a4 , + 0xe05a5 , + 0xe05a6 , + 0xe05a7 , + 0xe05a8 , + 0xe05a9 , + 0xe05aa , + 0xe05ab , + 0xe05ac , + 0xe05ad , + 0xe05ae , + 0xe05af , + 0xe05b0 , + 0xe05b1 , + 0xe05b2 , + 0xe05b3 , + 0xe05b4 , + 0xe05b5 , + 0xe05b6 , + 0xe05b7 , + 0xe05b8 , + 0xe05b9 , + 0xe05ba , + 0xe05bb , + 0xe05bc , + 0xe05bd , + 0xe05be , + 0xe05bf , + 0xe05c0 , + 0xe05c1 , + 0xe05c2 , + 0xe05c3 , + 0xe05c4 , + 0xe05c5 , + 0xe05c6 , + 0xe05c7 , + 0xe05c8 , + 0xe05c9 , + 0xe05ca , + 0xe05cb , + 0xe05cc , + 0xe05cd , + 0xe05ce , + 0xe05cf , + 0xe05d0 , + 0xe05d1 , + 0xe05d2 , + 0xe05d3 , + 0xe05d4 , + 0xe05d5 , + 0xe05d6 , + 0xe05d7 , + 0xe05d8 , + 0xe05d9 , + 0xe05da , + 0xe05db , + 0xe05dc , + 0xe05dd , + 0xe05de , + 0xe05df , + 0xe05e0 , + 0xe05e1 , + 0xe05e2 , + 0xe05e3 , + 0xe05e4 , + 0xe05e5 , + 0xe05e6 , + 0xe05e7 , + 0xe05e8 , + 0xe05e9 , + 0xe05ea , + 0xe05eb , + 0xe05ec , + 0xe05ed , + 0xe05ee , + 0xe05ef , + 0xe05f0 , + 0xe05f1 , + 0xe05f2 , + 0xe05f3 , + 0xe05f4 , + 0xe05f5 , + 0xe05f6 , + 0xe05f7 , + 0xe05f8 , + 0xe05f9 , + 0xe05fa , + 0xe05fb , + 0xe05fc , + 0xe05fd , + 0xe05fe , + 0xe05ff , + 0xe0600 , + 0xe0601 , + 0xe0602 , + 0xe0603 , + 0xe0604 , + 0xe0605 , + 0xe0606 , + 0xe0607 , + 0xe0608 , + 0xe0609 , + 0xe060a , + 0xe060b , + 0xe060c , + 0xe060d , + 0xe060e , + 0xe060f , + 0xe0610 , + 0xe0611 , + 0xe0612 , + 0xe0613 , + 0xe0614 , + 0xe0615 , + 0xe0616 , + 0xe0617 , + 0xe0618 , + 0xe0619 , + 0xe061a , + 0xe061b , + 0xe061c , + 0xe061d , + 0xe061e , + 0xe061f , + 0xe0620 , + 0xe0621 , + 0xe0622 , + 0xe0623 , + 0xe0624 , + 0xe0625 , + 0xe0626 , + 0xe0627 , + 0xe0628 , + 0xe0629 , + 0xe062a , + 0xe062b , + 0xe062c , + 0xe062d , + 0xe062e , + 0xe062f , + 0xe0630 , + 0xe0631 , + 0xe0632 , + 0xe0633 , + 0xe0634 , + 0xe0635 , + 0xe0636 , + 0xe0637 , + 0xe0638 , + 0xe0639 , + 0xe063a , + 0xe063b , + 0xe063c , + 0xe063d , + 0xe063e , + 0xe063f , + 0xe0640 , + 0xe0641 , + 0xe0642 , + 0xe0643 , + 0xe0644 , + 0xe0645 , + 0xe0646 , + 0xe0647 , + 0xe0648 , + 0xe0649 , + 0xe064a , + 0xe064b , + 0xe064c , + 0xe064d , + 0xe064e , + 0xe064f , + 0xe0650 , + 0xe0651 , + 0xe0652 , + 0xe0653 , + 0xe0654 , + 0xe0655 , + 0xe0656 , + 0xe0657 , + 0xe0658 , + 0xe0659 , + 0xe065a , + 0xe065b , + 0xe065c , + 0xe065d , + 0xe065e , + 0xe065f , + 0xe0660 , + 0xe0661 , + 0xe0662 , + 0xe0663 , + 0xe0664 , + 0xe0665 , + 0xe0666 , + 0xe0667 , + 0xe0668 , + 0xe0669 , + 0xe066a , + 0xe066b , + 0xe066c , + 0xe066d , + 0xe066e , + 0xe066f , + 0xe0670 , + 0xe0671 , + 0xe0672 , + 0xe0673 , + 0xe0674 , + 0xe0675 , + 0xe0676 , + 0xe0677 , + 0xe0678 , + 0xe0679 , + 0xe067a , + 0xe067b , + 0xe067c , + 0xe067d , + 0xe067e , + 0xe067f , + 0xe0680 , + 0xe0681 , + 0xe0682 , + 0xe0683 , + 0xe0684 , + 0xe0685 , + 0xe0686 , + 0xe0687 , + 0xe0688 , + 0xe0689 , + 0xe068a , + 0xe068b , + 0xe068c , + 0xe068d , + 0xe068e , + 0xe068f , + 0xe0690 , + 0xe0691 , + 0xe0692 , + 0xe0693 , + 0xe0694 , + 0xe0695 , + 0xe0696 , + 0xe0697 , + 0xe0698 , + 0xe0699 , + 0xe069a , + 0xe069b , + 0xe069c , + 0xe069d , + 0xe069e , + 0xe069f , + 0xe06a0 , + 0xe06a1 , + 0xe06a2 , + 0xe06a3 , + 0xe06a4 , + 0xe06a5 , + 0xe06a6 , + 0xe06a7 , + 0xe06a8 , + 0xe06a9 , + 0xe06aa , + 0xe06ab , + 0xe06ac , + 0xe06ad , + 0xe06ae , + 0xe06af , + 0xe06b0 , + 0xe06b1 , + 0xe06b2 , + 0xe06b3 , + 0xe06b4 , + 0xe06b5 , + 0xe06b6 , + 0xe06b7 , + 0xe06b8 , + 0xe06b9 , + 0xe06ba , + 0xe06bb , + 0xe06bc , + 0xe06bd , + 0xe06be , + 0xe06bf , + 0xe06c0 , + 0xe06c1 , + 0xe06c2 , + 0xe06c3 , + 0xe06c4 , + 0xe06c5 , + 0xe06c6 , + 0xe06c7 , + 0xe06c8 , + 0xe06c9 , + 0xe06ca , + 0xe06cb , + 0xe06cc , + 0xe06cd , + 0xe06ce , + 0xe06cf , + 0xe06d0 , + 0xe06d1 , + 0xe06d2 , + 0xe06d3 , + 0xe06d4 , + 0xe06d5 , + 0xe06d6 , + 0xe06d7 , + 0xe06d8 , + 0xe06d9 , + 0xe06da , + 0xe06db , + 0xe06dc , + 0xe06dd , + 0xe06de , + 0xe06df , + 0xe06e0 , + 0xe06e1 , + 0xe06e2 , + 0xe06e3 , + 0xe06e4 , + 0xe06e5 , + 0xe06e6 , + 0xe06e7 , + 0xe06e8 , + 0xe06e9 , + 0xe06ea , + 0xe06eb , + 0xe06ec , + 0xe06ed , + 0xe06ee , + 0xe06ef , + 0xe06f0 , + 0xe06f1 , + 0xe06f2 , + 0xe06f3 , + 0xe06f4 , + 0xe06f5 , + 0xe06f6 , + 0xe06f7 , + 0xe06f8 , + 0xe06f9 , + 0xe06fa , + 0xe06fb , + 0xe06fc , + 0xe06fd , + 0xe06fe , + 0xe06ff , + 0xe0700 , + 0xe0701 , + 0xe0702 , + 0xe0703 , + 0xe0704 , + 0xe0705 , + 0xe0706 , + 0xe0707 , + 0xe0708 , + 0xe0709 , + 0xe070a , + 0xe070b , + 0xe070c , + 0xe070d , + 0xe070e , + 0xe070f , + 0xe0710 , + 0xe0711 , + 0xe0712 , + 0xe0713 , + 0xe0714 , + 0xe0715 , + 0xe0716 , + 0xe0717 , + 0xe0718 , + 0xe0719 , + 0xe071a , + 0xe071b , + 0xe071c , + 0xe071d , + 0xe071e , + 0xe071f , + 0xe0720 , + 0xe0721 , + 0xe0722 , + 0xe0723 , + 0xe0724 , + 0xe0725 , + 0xe0726 , + 0xe0727 , + 0xe0728 , + 0xe0729 , + 0xe072a , + 0xe072b , + 0xe072c , + 0xe072d , + 0xe072e , + 0xe072f , + 0xe0730 , + 0xe0731 , + 0xe0732 , + 0xe0733 , + 0xe0734 , + 0xe0735 , + 0xe0736 , + 0xe0737 , + 0xe0738 , + 0xe0739 , + 0xe073a , + 0xe073b , + 0xe073c , + 0xe073d , + 0xe073e , + 0xe073f , + 0xe0740 , + 0xe0741 , + 0xe0742 , + 0xe0743 , + 0xe0744 , + 0xe0745 , + 0xe0746 , + 0xe0747 , + 0xe0748 , + 0xe0749 , + 0xe074a , + 0xe074b , + 0xe074c , + 0xe074d , + 0xe074e , + 0xe074f , + 0xe0750 , + 0xe0751 , + 0xe0752 , + 0xe0753 , + 0xe0754 , + 0xe0755 , + 0xe0756 , + 0xe0757 , + 0xe0758 , + 0xe0759 , + 0xe075a , + 0xe075b , + 0xe075c , + 0xe075d , + 0xe075e , + 0xe075f , + 0xe0760 , + 0xe0761 , + 0xe0762 , + 0xe0763 , + 0xe0764 , + 0xe0765 , + 0xe0766 , + 0xe0767 , + 0xe0768 , + 0xe0769 , + 0xe076a , + 0xe076b , + 0xe076c , + 0xe076d , + 0xe076e , + 0xe076f , + 0xe0770 , + 0xe0771 , + 0xe0772 , + 0xe0773 , + 0xe0774 , + 0xe0775 , + 0xe0776 , + 0xe0777 , + 0xe0778 , + 0xe0779 , + 0xe077a , + 0xe077b , + 0xe077c , + 0xe077d , + 0xe077e , + 0xe077f , + 0xe0780 , + 0xe0781 , + 0xe0782 , + 0xe0783 , + 0xe0784 , + 0xe0785 , + 0xe0786 , + 0xe0787 , + 0xe0788 , + 0xe0789 , + 0xe078a , + 0xe078b , + 0xe078c , + 0xe078d , + 0xe078e , + 0xe078f , + 0xe0790 , + 0xe0791 , + 0xe0792 , + 0xe0793 , + 0xe0794 , + 0xe0795 , + 0xe0796 , + 0xe0797 , + 0xe0798 , + 0xe0799 , + 0xe079a , + 0xe079b , + 0xe079c , + 0xe079d , + 0xe079e , + 0xe079f , + 0xe07a0 , + 0xe07a1 , + 0xe07a2 , + 0xe07a3 , + 0xe07a4 , + 0xe07a5 , + 0xe07a6 , + 0xe07a7 , + 0xe07a8 , + 0xe07a9 , + 0xe07aa , + 0xe07ab , + 0xe07ac , + 0xe07ad , + 0xe07ae , + 0xe07af , + 0xe07b0 , + 0xe07b1 , + 0xe07b2 , + 0xe07b3 , + 0xe07b4 , + 0xe07b5 , + 0xe07b6 , + 0xe07b7 , + 0xe07b8 , + 0xe07b9 , + 0xe07ba , + 0xe07bb , + 0xe07bc , + 0xe07bd , + 0xe07be , + 0xe07bf , + 0xe07c0 , + 0xe07c1 , + 0xe07c2 , + 0xe07c3 , + 0xe07c4 , + 0xe07c5 , + 0xe07c6 , + 0xe07c7 , + 0xe07c8 , + 0xe07c9 , + 0xe07ca , + 0xe07cb , + 0xe07cc , + 0xe07cd , + 0xe07ce , + 0xe07cf , + 0xe07d0 , + 0xe07d1 , + 0xe07d2 , + 0xe07d3 , + 0xe07d4 , + 0xe07d5 , + 0xe07d6 , + 0xe07d7 , + 0xe07d8 , + 0xe07d9 , + 0xe07da , + 0xe07db , + 0xe07dc , + 0xe07dd , + 0xe07de , + 0xe07df , + 0xe07e0 , + 0xe07e1 , + 0xe07e2 , + 0xe07e3 , + 0xe07e4 , + 0xe07e5 , + 0xe07e6 , + 0xe07e7 , + 0xe07e8 , + 0xe07e9 , + 0xe07ea , + 0xe07eb , + 0xe07ec , + 0xe07ed , + 0xe07ee , + 0xe07ef , + 0xe07f0 , + 0xe07f1 , + 0xe07f2 , + 0xe07f3 , + 0xe07f4 , + 0xe07f5 , + 0xe07f6 , + 0xe07f7 , + 0xe07f8 , + 0xe07f9 , + 0xe07fa , + 0xe07fb , + 0xe07fc , + 0xe07fd , + 0xe07fe , + 0xe07ff , + 0xe0800 , + 0xe0801 , + 0xe0802 , + 0xe0803 , + 0xe0804 , + 0xe0805 , + 0xe0806 , + 0xe0807 , + 0xe0808 , + 0xe0809 , + 0xe080a , + 0xe080b , + 0xe080c , + 0xe080d , + 0xe080e , + 0xe080f , + 0xe0810 , + 0xe0811 , + 0xe0812 , + 0xe0813 , + 0xe0814 , + 0xe0815 , + 0xe0816 , + 0xe0817 , + 0xe0818 , + 0xe0819 , + 0xe081a , + 0xe081b , + 0xe081c , + 0xe081d , + 0xe081e , + 0xe081f , + 0xe0820 , + 0xe0821 , + 0xe0822 , + 0xe0823 , + 0xe0824 , + 0xe0825 , + 0xe0826 , + 0xe0827 , + 0xe0828 , + 0xe0829 , + 0xe082a , + 0xe082b , + 0xe082c , + 0xe082d , + 0xe082e , + 0xe082f , + 0xe0830 , + 0xe0831 , + 0xe0832 , + 0xe0833 , + 0xe0834 , + 0xe0835 , + 0xe0836 , + 0xe0837 , + 0xe0838 , + 0xe0839 , + 0xe083a , + 0xe083b , + 0xe083c , + 0xe083d , + 0xe083e , + 0xe083f , + 0xe0840 , + 0xe0841 , + 0xe0842 , + 0xe0843 , + 0xe0844 , + 0xe0845 , + 0xe0846 , + 0xe0847 , + 0xe0848 , + 0xe0849 , + 0xe084a , + 0xe084b , + 0xe084c , + 0xe084d , + 0xe084e , + 0xe084f , + 0xe0850 , + 0xe0851 , + 0xe0852 , + 0xe0853 , + 0xe0854 , + 0xe0855 , + 0xe0856 , + 0xe0857 , + 0xe0858 , + 0xe0859 , + 0xe085a , + 0xe085b , + 0xe085c , + 0xe085d , + 0xe085e , + 0xe085f , + 0xe0860 , + 0xe0861 , + 0xe0862 , + 0xe0863 , + 0xe0864 , + 0xe0865 , + 0xe0866 , + 0xe0867 , + 0xe0868 , + 0xe0869 , + 0xe086a , + 0xe086b , + 0xe086c , + 0xe086d , + 0xe086e , + 0xe086f , + 0xe0870 , + 0xe0871 , + 0xe0872 , + 0xe0873 , + 0xe0874 , + 0xe0875 , + 0xe0876 , + 0xe0877 , + 0xe0878 , + 0xe0879 , + 0xe087a , + 0xe087b , + 0xe087c , + 0xe087d , + 0xe087e , + 0xe087f , + 0xe0880 , + 0xe0881 , + 0xe0882 , + 0xe0883 , + 0xe0884 , + 0xe0885 , + 0xe0886 , + 0xe0887 , + 0xe0888 , + 0xe0889 , + 0xe088a , + 0xe088b , + 0xe088c , + 0xe088d , + 0xe088e , + 0xe088f , + 0xe0890 , + 0xe0891 , + 0xe0892 , + 0xe0893 , + 0xe0894 , + 0xe0895 , + 0xe0896 , + 0xe0897 , + 0xe0898 , + 0xe0899 , + 0xe089a , + 0xe089b , + 0xe089c , + 0xe089d , + 0xe089e , + 0xe089f , + 0xe08a0 , + 0xe08a1 , + 0xe08a2 , + 0xe08a3 , + 0xe08a4 , + 0xe08a5 , + 0xe08a6 , + 0xe08a7 , + 0xe08a8 , + 0xe08a9 , + 0xe08aa , + 0xe08ab , + 0xe08ac , + 0xe08ad , + 0xe08ae , + 0xe08af , + 0xe08b0 , + 0xe08b1 , + 0xe08b2 , + 0xe08b3 , + 0xe08b4 , + 0xe08b5 , + 0xe08b6 , + 0xe08b7 , + 0xe08b8 , + 0xe08b9 , + 0xe08ba , + 0xe08bb , + 0xe08bc , + 0xe08bd , + 0xe08be , + 0xe08bf , + 0xe08c0 , + 0xe08c1 , + 0xe08c2 , + 0xe08c3 , + 0xe08c4 , + 0xe08c5 , + 0xe08c6 , + 0xe08c7 , + 0xe08c8 , + 0xe08c9 , + 0xe08ca , + 0xe08cb , + 0xe08cc , + 0xe08cd , + 0xe08ce , + 0xe08cf , + 0xe08d0 , + 0xe08d1 , + 0xe08d2 , + 0xe08d3 , + 0xe08d4 , + 0xe08d5 , + 0xe08d6 , + 0xe08d7 , + 0xe08d8 , + 0xe08d9 , + 0xe08da , + 0xe08db , + 0xe08dc , + 0xe08dd , + 0xe08de , + 0xe08df , + 0xe08e0 , + 0xe08e1 , + 0xe08e2 , + 0xe08e3 , + 0xe08e4 , + 0xe08e5 , + 0xe08e6 , + 0xe08e7 , + 0xe08e8 , + 0xe08e9 , + 0xe08ea , + 0xe08eb , + 0xe08ec , + 0xe08ed , + 0xe08ee , + 0xe08ef , + 0xe08f0 , + 0xe08f1 , + 0xe08f2 , + 0xe08f3 , + 0xe08f4 , + 0xe08f5 , + 0xe08f6 , + 0xe08f7 , + 0xe08f8 , + 0xe08f9 , + 0xe08fa , + 0xe08fb , + 0xe08fc , + 0xe08fd , + 0xe08fe , + 0xe08ff , + 0xe0900 , + 0xe0901 , + 0xe0902 , + 0xe0903 , + 0xe0904 , + 0xe0905 , + 0xe0906 , + 0xe0907 , + 0xe0908 , + 0xe0909 , + 0xe090a , + 0xe090b , + 0xe090c , + 0xe090d , + 0xe090e , + 0xe090f , + 0xe0910 , + 0xe0911 , + 0xe0912 , + 0xe0913 , + 0xe0914 , + 0xe0915 , + 0xe0916 , + 0xe0917 , + 0xe0918 , + 0xe0919 , + 0xe091a , + 0xe091b , + 0xe091c , + 0xe091d , + 0xe091e , + 0xe091f , + 0xe0920 , + 0xe0921 , + 0xe0922 , + 0xe0923 , + 0xe0924 , + 0xe0925 , + 0xe0926 , + 0xe0927 , + 0xe0928 , + 0xe0929 , + 0xe092a , + 0xe092b , + 0xe092c , + 0xe092d , + 0xe092e , + 0xe092f , + 0xe0930 , + 0xe0931 , + 0xe0932 , + 0xe0933 , + 0xe0934 , + 0xe0935 , + 0xe0936 , + 0xe0937 , + 0xe0938 , + 0xe0939 , + 0xe093a , + 0xe093b , + 0xe093c , + 0xe093d , + 0xe093e , + 0xe093f , + 0xe0940 , + 0xe0941 , + 0xe0942 , + 0xe0943 , + 0xe0944 , + 0xe0945 , + 0xe0946 , + 0xe0947 , + 0xe0948 , + 0xe0949 , + 0xe094a , + 0xe094b , + 0xe094c , + 0xe094d , + 0xe094e , + 0xe094f , + 0xe0950 , + 0xe0951 , + 0xe0952 , + 0xe0953 , + 0xe0954 , + 0xe0955 , + 0xe0956 , + 0xe0957 , + 0xe0958 , + 0xe0959 , + 0xe095a , + 0xe095b , + 0xe095c , + 0xe095d , + 0xe095e , + 0xe095f , + 0xe0960 , + 0xe0961 , + 0xe0962 , + 0xe0963 , + 0xe0964 , + 0xe0965 , + 0xe0966 , + 0xe0967 , + 0xe0968 , + 0xe0969 , + 0xe096a , + 0xe096b , + 0xe096c , + 0xe096d , + 0xe096e , + 0xe096f , + 0xe0970 , + 0xe0971 , + 0xe0972 , + 0xe0973 , + 0xe0974 , + 0xe0975 , + 0xe0976 , + 0xe0977 , + 0xe0978 , + 0xe0979 , + 0xe097a , + 0xe097b , + 0xe097c , + 0xe097d , + 0xe097e , + 0xe097f , + 0xe0980 , + 0xe0981 , + 0xe0982 , + 0xe0983 , + 0xe0984 , + 0xe0985 , + 0xe0986 , + 0xe0987 , + 0xe0988 , + 0xe0989 , + 0xe098a , + 0xe098b , + 0xe098c , + 0xe098d , + 0xe098e , + 0xe098f , + 0xe0990 , + 0xe0991 , + 0xe0992 , + 0xe0993 , + 0xe0994 , + 0xe0995 , + 0xe0996 , + 0xe0997 , + 0xe0998 , + 0xe0999 , + 0xe099a , + 0xe099b , + 0xe099c , + 0xe099d , + 0xe099e , + 0xe099f , + 0xe09a0 , + 0xe09a1 , + 0xe09a2 , + 0xe09a3 , + 0xe09a4 , + 0xe09a5 , + 0xe09a6 , + 0xe09a7 , + 0xe09a8 , + 0xe09a9 , + 0xe09aa , + 0xe09ab , + 0xe09ac , + 0xe09ad , + 0xe09ae , + 0xe09af , + 0xe09b0 , + 0xe09b1 , + 0xe09b2 , + 0xe09b3 , + 0xe09b4 , + 0xe09b5 , + 0xe09b6 , + 0xe09b7 , + 0xe09b8 , + 0xe09b9 , + 0xe09ba , + 0xe09bb , + 0xe09bc , + 0xe09bd , + 0xe09be , + 0xe09bf , + 0xe09c0 , + 0xe09c1 , + 0xe09c2 , + 0xe09c3 , + 0xe09c4 , + 0xe09c5 , + 0xe09c6 , + 0xe09c7 , + 0xe09c8 , + 0xe09c9 , + 0xe09ca , + 0xe09cb , + 0xe09cc , + 0xe09cd , + 0xe09ce , + 0xe09cf , + 0xe09d0 , + 0xe09d1 , + 0xe09d2 , + 0xe09d3 , + 0xe09d4 , + 0xe09d5 , + 0xe09d6 , + 0xe09d7 , + 0xe09d8 , + 0xe09d9 , + 0xe09da , + 0xe09db , + 0xe09dc , + 0xe09dd , + 0xe09de , + 0xe09df , + 0xe09e0 , + 0xe09e1 , + 0xe09e2 , + 0xe09e3 , + 0xe09e4 , + 0xe09e5 , + 0xe09e6 , + 0xe09e7 , + 0xe09e8 , + 0xe09e9 , + 0xe09ea , + 0xe09eb , + 0xe09ec , + 0xe09ed , + 0xe09ee , + 0xe09ef , + 0xe09f0 , + 0xe09f1 , + 0xe09f2 , + 0xe09f3 , + 0xe09f4 , + 0xe09f5 , + 0xe09f6 , + 0xe09f7 , + 0xe09f8 , + 0xe09f9 , + 0xe09fa , + 0xe09fb , + 0xe09fc , + 0xe09fd , + 0xe09fe , + 0xe09ff , + 0xe0a00 , + 0xe0a01 , + 0xe0a02 , + 0xe0a03 , + 0xe0a04 , + 0xe0a05 , + 0xe0a06 , + 0xe0a07 , + 0xe0a08 , + 0xe0a09 , + 0xe0a0a , + 0xe0a0b , + 0xe0a0c , + 0xe0a0d , + 0xe0a0e , + 0xe0a0f , + 0xe0a10 , + 0xe0a11 , + 0xe0a12 , + 0xe0a13 , + 0xe0a14 , + 0xe0a15 , + 0xe0a16 , + 0xe0a17 , + 0xe0a18 , + 0xe0a19 , + 0xe0a1a , + 0xe0a1b , + 0xe0a1c , + 0xe0a1d , + 0xe0a1e , + 0xe0a1f , + 0xe0a20 , + 0xe0a21 , + 0xe0a22 , + 0xe0a23 , + 0xe0a24 , + 0xe0a25 , + 0xe0a26 , + 0xe0a27 , + 0xe0a28 , + 0xe0a29 , + 0xe0a2a , + 0xe0a2b , + 0xe0a2c , + 0xe0a2d , + 0xe0a2e , + 0xe0a2f , + 0xe0a30 , + 0xe0a31 , + 0xe0a32 , + 0xe0a33 , + 0xe0a34 , + 0xe0a35 , + 0xe0a36 , + 0xe0a37 , + 0xe0a38 , + 0xe0a39 , + 0xe0a3a , + 0xe0a3b , + 0xe0a3c , + 0xe0a3d , + 0xe0a3e , + 0xe0a3f , + 0xe0a40 , + 0xe0a41 , + 0xe0a42 , + 0xe0a43 , + 0xe0a44 , + 0xe0a45 , + 0xe0a46 , + 0xe0a47 , + 0xe0a48 , + 0xe0a49 , + 0xe0a4a , + 0xe0a4b , + 0xe0a4c , + 0xe0a4d , + 0xe0a4e , + 0xe0a4f , + 0xe0a50 , + 0xe0a51 , + 0xe0a52 , + 0xe0a53 , + 0xe0a54 , + 0xe0a55 , + 0xe0a56 , + 0xe0a57 , + 0xe0a58 , + 0xe0a59 , + 0xe0a5a , + 0xe0a5b , + 0xe0a5c , + 0xe0a5d , + 0xe0a5e , + 0xe0a5f , + 0xe0a60 , + 0xe0a61 , + 0xe0a62 , + 0xe0a63 , + 0xe0a64 , + 0xe0a65 , + 0xe0a66 , + 0xe0a67 , + 0xe0a68 , + 0xe0a69 , + 0xe0a6a , + 0xe0a6b , + 0xe0a6c , + 0xe0a6d , + 0xe0a6e , + 0xe0a6f , + 0xe0a70 , + 0xe0a71 , + 0xe0a72 , + 0xe0a73 , + 0xe0a74 , + 0xe0a75 , + 0xe0a76 , + 0xe0a77 , + 0xe0a78 , + 0xe0a79 , + 0xe0a7a , + 0xe0a7b , + 0xe0a7c , + 0xe0a7d , + 0xe0a7e , + 0xe0a7f , + 0xe0a80 , + 0xe0a81 , + 0xe0a82 , + 0xe0a83 , + 0xe0a84 , + 0xe0a85 , + 0xe0a86 , + 0xe0a87 , + 0xe0a88 , + 0xe0a89 , + 0xe0a8a , + 0xe0a8b , + 0xe0a8c , + 0xe0a8d , + 0xe0a8e , + 0xe0a8f , + 0xe0a90 , + 0xe0a91 , + 0xe0a92 , + 0xe0a93 , + 0xe0a94 , + 0xe0a95 , + 0xe0a96 , + 0xe0a97 , + 0xe0a98 , + 0xe0a99 , + 0xe0a9a , + 0xe0a9b , + 0xe0a9c , + 0xe0a9d , + 0xe0a9e , + 0xe0a9f , + 0xe0aa0 , + 0xe0aa1 , + 0xe0aa2 , + 0xe0aa3 , + 0xe0aa4 , + 0xe0aa5 , + 0xe0aa6 , + 0xe0aa7 , + 0xe0aa8 , + 0xe0aa9 , + 0xe0aaa , + 0xe0aab , + 0xe0aac , + 0xe0aad , + 0xe0aae , + 0xe0aaf , + 0xe0ab0 , + 0xe0ab1 , + 0xe0ab2 , + 0xe0ab3 , + 0xe0ab4 , + 0xe0ab5 , + 0xe0ab6 , + 0xe0ab7 , + 0xe0ab8 , + 0xe0ab9 , + 0xe0aba , + 0xe0abb , + 0xe0abc , + 0xe0abd , + 0xe0abe , + 0xe0abf , + 0xe0ac0 , + 0xe0ac1 , + 0xe0ac2 , + 0xe0ac3 , + 0xe0ac4 , + 0xe0ac5 , + 0xe0ac6 , + 0xe0ac7 , + 0xe0ac8 , + 0xe0ac9 , + 0xe0aca , + 0xe0acb , + 0xe0acc , + 0xe0acd , + 0xe0ace , + 0xe0acf , + 0xe0ad0 , + 0xe0ad1 , + 0xe0ad2 , + 0xe0ad3 , + 0xe0ad4 , + 0xe0ad5 , + 0xe0ad6 , + 0xe0ad7 , + 0xe0ad8 , + 0xe0ad9 , + 0xe0ada , + 0xe0adb , + 0xe0adc , + 0xe0add , + 0xe0ade , + 0xe0adf , + 0xe0ae0 , + 0xe0ae1 , + 0xe0ae2 , + 0xe0ae3 , + 0xe0ae4 , + 0xe0ae5 , + 0xe0ae6 , + 0xe0ae7 , + 0xe0ae8 , + 0xe0ae9 , + 0xe0aea , + 0xe0aeb , + 0xe0aec , + 0xe0aed , + 0xe0aee , + 0xe0aef , + 0xe0af0 , + 0xe0af1 , + 0xe0af2 , + 0xe0af3 , + 0xe0af4 , + 0xe0af5 , + 0xe0af6 , + 0xe0af7 , + 0xe0af8 , + 0xe0af9 , + 0xe0afa , + 0xe0afb , + 0xe0afc , + 0xe0afd , + 0xe0afe , + 0xe0aff , + 0xe0b00 , + 0xe0b01 , + 0xe0b02 , + 0xe0b03 , + 0xe0b04 , + 0xe0b05 , + 0xe0b06 , + 0xe0b07 , + 0xe0b08 , + 0xe0b09 , + 0xe0b0a , + 0xe0b0b , + 0xe0b0c , + 0xe0b0d , + 0xe0b0e , + 0xe0b0f , + 0xe0b10 , + 0xe0b11 , + 0xe0b12 , + 0xe0b13 , + 0xe0b14 , + 0xe0b15 , + 0xe0b16 , + 0xe0b17 , + 0xe0b18 , + 0xe0b19 , + 0xe0b1a , + 0xe0b1b , + 0xe0b1c , + 0xe0b1d , + 0xe0b1e , + 0xe0b1f , + 0xe0b20 , + 0xe0b21 , + 0xe0b22 , + 0xe0b23 , + 0xe0b24 , + 0xe0b25 , + 0xe0b26 , + 0xe0b27 , + 0xe0b28 , + 0xe0b29 , + 0xe0b2a , + 0xe0b2b , + 0xe0b2c , + 0xe0b2d , + 0xe0b2e , + 0xe0b2f , + 0xe0b30 , + 0xe0b31 , + 0xe0b32 , + 0xe0b33 , + 0xe0b34 , + 0xe0b35 , + 0xe0b36 , + 0xe0b37 , + 0xe0b38 , + 0xe0b39 , + 0xe0b3a , + 0xe0b3b , + 0xe0b3c , + 0xe0b3d , + 0xe0b3e , + 0xe0b3f , + 0xe0b40 , + 0xe0b41 , + 0xe0b42 , + 0xe0b43 , + 0xe0b44 , + 0xe0b45 , + 0xe0b46 , + 0xe0b47 , + 0xe0b48 , + 0xe0b49 , + 0xe0b4a , + 0xe0b4b , + 0xe0b4c , + 0xe0b4d , + 0xe0b4e , + 0xe0b4f , + 0xe0b50 , + 0xe0b51 , + 0xe0b52 , + 0xe0b53 , + 0xe0b54 , + 0xe0b55 , + 0xe0b56 , + 0xe0b57 , + 0xe0b58 , + 0xe0b59 , + 0xe0b5a , + 0xe0b5b , + 0xe0b5c , + 0xe0b5d , + 0xe0b5e , + 0xe0b5f , + 0xe0b60 , + 0xe0b61 , + 0xe0b62 , + 0xe0b63 , + 0xe0b64 , + 0xe0b65 , + 0xe0b66 , + 0xe0b67 , + 0xe0b68 , + 0xe0b69 , + 0xe0b6a , + 0xe0b6b , + 0xe0b6c , + 0xe0b6d , + 0xe0b6e , + 0xe0b6f , + 0xe0b70 , + 0xe0b71 , + 0xe0b72 , + 0xe0b73 , + 0xe0b74 , + 0xe0b75 , + 0xe0b76 , + 0xe0b77 , + 0xe0b78 , + 0xe0b79 , + 0xe0b7a , + 0xe0b7b , + 0xe0b7c , + 0xe0b7d , + 0xe0b7e , + 0xe0b7f , + 0xe0b80 , + 0xe0b81 , + 0xe0b82 , + 0xe0b83 , + 0xe0b84 , + 0xe0b85 , + 0xe0b86 , + 0xe0b87 , + 0xe0b88 , + 0xe0b89 , + 0xe0b8a , + 0xe0b8b , + 0xe0b8c , + 0xe0b8d , + 0xe0b8e , + 0xe0b8f , + 0xe0b90 , + 0xe0b91 , + 0xe0b92 , + 0xe0b93 , + 0xe0b94 , + 0xe0b95 , + 0xe0b96 , + 0xe0b97 , + 0xe0b98 , + 0xe0b99 , + 0xe0b9a , + 0xe0b9b , + 0xe0b9c , + 0xe0b9d , + 0xe0b9e , + 0xe0b9f , + 0xe0ba0 , + 0xe0ba1 , + 0xe0ba2 , + 0xe0ba3 , + 0xe0ba4 , + 0xe0ba5 , + 0xe0ba6 , + 0xe0ba7 , + 0xe0ba8 , + 0xe0ba9 , + 0xe0baa , + 0xe0bab , + 0xe0bac , + 0xe0bad , + 0xe0bae , + 0xe0baf , + 0xe0bb0 , + 0xe0bb1 , + 0xe0bb2 , + 0xe0bb3 , + 0xe0bb4 , + 0xe0bb5 , + 0xe0bb6 , + 0xe0bb7 , + 0xe0bb8 , + 0xe0bb9 , + 0xe0bba , + 0xe0bbb , + 0xe0bbc , + 0xe0bbd , + 0xe0bbe , + 0xe0bbf , + 0xe0bc0 , + 0xe0bc1 , + 0xe0bc2 , + 0xe0bc3 , + 0xe0bc4 , + 0xe0bc5 , + 0xe0bc6 , + 0xe0bc7 , + 0xe0bc8 , + 0xe0bc9 , + 0xe0bca , + 0xe0bcb , + 0xe0bcc , + 0xe0bcd , + 0xe0bce , + 0xe0bcf , + 0xe0bd0 , + 0xe0bd1 , + 0xe0bd2 , + 0xe0bd3 , + 0xe0bd4 , + 0xe0bd5 , + 0xe0bd6 , + 0xe0bd7 , + 0xe0bd8 , + 0xe0bd9 , + 0xe0bda , + 0xe0bdb , + 0xe0bdc , + 0xe0bdd , + 0xe0bde , + 0xe0bdf , + 0xe0be0 , + 0xe0be1 , + 0xe0be2 , + 0xe0be3 , + 0xe0be4 , + 0xe0be5 , + 0xe0be6 , + 0xe0be7 , + 0xe0be8 , + 0xe0be9 , + 0xe0bea , + 0xe0beb , + 0xe0bec , + 0xe0bed , + 0xe0bee , + 0xe0bef , + 0xe0bf0 , + 0xe0bf1 , + 0xe0bf2 , + 0xe0bf3 , + 0xe0bf4 , + 0xe0bf5 , + 0xe0bf6 , + 0xe0bf7 , + 0xe0bf8 , + 0xe0bf9 , + 0xe0bfa , + 0xe0bfb , + 0xe0bfc , + 0xe0bfd , + 0xe0bfe , + 0xe0bff , + 0xe0c00 , + 0xe0c01 , + 0xe0c02 , + 0xe0c03 , + 0xe0c04 , + 0xe0c05 , + 0xe0c06 , + 0xe0c07 , + 0xe0c08 , + 0xe0c09 , + 0xe0c0a , + 0xe0c0b , + 0xe0c0c , + 0xe0c0d , + 0xe0c0e , + 0xe0c0f , + 0xe0c10 , + 0xe0c11 , + 0xe0c12 , + 0xe0c13 , + 0xe0c14 , + 0xe0c15 , + 0xe0c16 , + 0xe0c17 , + 0xe0c18 , + 0xe0c19 , + 0xe0c1a , + 0xe0c1b , + 0xe0c1c , + 0xe0c1d , + 0xe0c1e , + 0xe0c1f , + 0xe0c20 , + 0xe0c21 , + 0xe0c22 , + 0xe0c23 , + 0xe0c24 , + 0xe0c25 , + 0xe0c26 , + 0xe0c27 , + 0xe0c28 , + 0xe0c29 , + 0xe0c2a , + 0xe0c2b , + 0xe0c2c , + 0xe0c2d , + 0xe0c2e , + 0xe0c2f , + 0xe0c30 , + 0xe0c31 , + 0xe0c32 , + 0xe0c33 , + 0xe0c34 , + 0xe0c35 , + 0xe0c36 , + 0xe0c37 , + 0xe0c38 , + 0xe0c39 , + 0xe0c3a , + 0xe0c3b , + 0xe0c3c , + 0xe0c3d , + 0xe0c3e , + 0xe0c3f , + 0xe0c40 , + 0xe0c41 , + 0xe0c42 , + 0xe0c43 , + 0xe0c44 , + 0xe0c45 , + 0xe0c46 , + 0xe0c47 , + 0xe0c48 , + 0xe0c49 , + 0xe0c4a , + 0xe0c4b , + 0xe0c4c , + 0xe0c4d , + 0xe0c4e , + 0xe0c4f , + 0xe0c50 , + 0xe0c51 , + 0xe0c52 , + 0xe0c53 , + 0xe0c54 , + 0xe0c55 , + 0xe0c56 , + 0xe0c57 , + 0xe0c58 , + 0xe0c59 , + 0xe0c5a , + 0xe0c5b , + 0xe0c5c , + 0xe0c5d , + 0xe0c5e , + 0xe0c5f , + 0xe0c60 , + 0xe0c61 , + 0xe0c62 , + 0xe0c63 , + 0xe0c64 , + 0xe0c65 , + 0xe0c66 , + 0xe0c67 , + 0xe0c68 , + 0xe0c69 , + 0xe0c6a , + 0xe0c6b , + 0xe0c6c , + 0xe0c6d , + 0xe0c6e , + 0xe0c6f , + 0xe0c70 , + 0xe0c71 , + 0xe0c72 , + 0xe0c73 , + 0xe0c74 , + 0xe0c75 , + 0xe0c76 , + 0xe0c77 , + 0xe0c78 , + 0xe0c79 , + 0xe0c7a , + 0xe0c7b , + 0xe0c7c , + 0xe0c7d , + 0xe0c7e , + 0xe0c7f , + 0xe0c80 , + 0xe0c81 , + 0xe0c82 , + 0xe0c83 , + 0xe0c84 , + 0xe0c85 , + 0xe0c86 , + 0xe0c87 , + 0xe0c88 , + 0xe0c89 , + 0xe0c8a , + 0xe0c8b , + 0xe0c8c , + 0xe0c8d , + 0xe0c8e , + 0xe0c8f , + 0xe0c90 , + 0xe0c91 , + 0xe0c92 , + 0xe0c93 , + 0xe0c94 , + 0xe0c95 , + 0xe0c96 , + 0xe0c97 , + 0xe0c98 , + 0xe0c99 , + 0xe0c9a , + 0xe0c9b , + 0xe0c9c , + 0xe0c9d , + 0xe0c9e , + 0xe0c9f , + 0xe0ca0 , + 0xe0ca1 , + 0xe0ca2 , + 0xe0ca3 , + 0xe0ca4 , + 0xe0ca5 , + 0xe0ca6 , + 0xe0ca7 , + 0xe0ca8 , + 0xe0ca9 , + 0xe0caa , + 0xe0cab , + 0xe0cac , + 0xe0cad , + 0xe0cae , + 0xe0caf , + 0xe0cb0 , + 0xe0cb1 , + 0xe0cb2 , + 0xe0cb3 , + 0xe0cb4 , + 0xe0cb5 , + 0xe0cb6 , + 0xe0cb7 , + 0xe0cb8 , + 0xe0cb9 , + 0xe0cba , + 0xe0cbb , + 0xe0cbc , + 0xe0cbd , + 0xe0cbe , + 0xe0cbf , + 0xe0cc0 , + 0xe0cc1 , + 0xe0cc2 , + 0xe0cc3 , + 0xe0cc4 , + 0xe0cc5 , + 0xe0cc6 , + 0xe0cc7 , + 0xe0cc8 , + 0xe0cc9 , + 0xe0cca , + 0xe0ccb , + 0xe0ccc , + 0xe0ccd , + 0xe0cce , + 0xe0ccf , + 0xe0cd0 , + 0xe0cd1 , + 0xe0cd2 , + 0xe0cd3 , + 0xe0cd4 , + 0xe0cd5 , + 0xe0cd6 , + 0xe0cd7 , + 0xe0cd8 , + 0xe0cd9 , + 0xe0cda , + 0xe0cdb , + 0xe0cdc , + 0xe0cdd , + 0xe0cde , + 0xe0cdf , + 0xe0ce0 , + 0xe0ce1 , + 0xe0ce2 , + 0xe0ce3 , + 0xe0ce4 , + 0xe0ce5 , + 0xe0ce6 , + 0xe0ce7 , + 0xe0ce8 , + 0xe0ce9 , + 0xe0cea , + 0xe0ceb , + 0xe0cec , + 0xe0ced , + 0xe0cee , + 0xe0cef , + 0xe0cf0 , + 0xe0cf1 , + 0xe0cf2 , + 0xe0cf3 , + 0xe0cf4 , + 0xe0cf5 , + 0xe0cf6 , + 0xe0cf7 , + 0xe0cf8 , + 0xe0cf9 , + 0xe0cfa , + 0xe0cfb , + 0xe0cfc , + 0xe0cfd , + 0xe0cfe , + 0xe0cff , + 0xe0d00 , + 0xe0d01 , + 0xe0d02 , + 0xe0d03 , + 0xe0d04 , + 0xe0d05 , + 0xe0d06 , + 0xe0d07 , + 0xe0d08 , + 0xe0d09 , + 0xe0d0a , + 0xe0d0b , + 0xe0d0c , + 0xe0d0d , + 0xe0d0e , + 0xe0d0f , + 0xe0d10 , + 0xe0d11 , + 0xe0d12 , + 0xe0d13 , + 0xe0d14 , + 0xe0d15 , + 0xe0d16 , + 0xe0d17 , + 0xe0d18 , + 0xe0d19 , + 0xe0d1a , + 0xe0d1b , + 0xe0d1c , + 0xe0d1d , + 0xe0d1e , + 0xe0d1f , + 0xe0d20 , + 0xe0d21 , + 0xe0d22 , + 0xe0d23 , + 0xe0d24 , + 0xe0d25 , + 0xe0d26 , + 0xe0d27 , + 0xe0d28 , + 0xe0d29 , + 0xe0d2a , + 0xe0d2b , + 0xe0d2c , + 0xe0d2d , + 0xe0d2e , + 0xe0d2f , + 0xe0d30 , + 0xe0d31 , + 0xe0d32 , + 0xe0d33 , + 0xe0d34 , + 0xe0d35 , + 0xe0d36 , + 0xe0d37 , + 0xe0d38 , + 0xe0d39 , + 0xe0d3a , + 0xe0d3b , + 0xe0d3c , + 0xe0d3d , + 0xe0d3e , + 0xe0d3f , + 0xe0d40 , + 0xe0d41 , + 0xe0d42 , + 0xe0d43 , + 0xe0d44 , + 0xe0d45 , + 0xe0d46 , + 0xe0d47 , + 0xe0d48 , + 0xe0d49 , + 0xe0d4a , + 0xe0d4b , + 0xe0d4c , + 0xe0d4d , + 0xe0d4e , + 0xe0d4f , + 0xe0d50 , + 0xe0d51 , + 0xe0d52 , + 0xe0d53 , + 0xe0d54 , + 0xe0d55 , + 0xe0d56 , + 0xe0d57 , + 0xe0d58 , + 0xe0d59 , + 0xe0d5a , + 0xe0d5b , + 0xe0d5c , + 0xe0d5d , + 0xe0d5e , + 0xe0d5f , + 0xe0d60 , + 0xe0d61 , + 0xe0d62 , + 0xe0d63 , + 0xe0d64 , + 0xe0d65 , + 0xe0d66 , + 0xe0d67 , + 0xe0d68 , + 0xe0d69 , + 0xe0d6a , + 0xe0d6b , + 0xe0d6c , + 0xe0d6d , + 0xe0d6e , + 0xe0d6f , + 0xe0d70 , + 0xe0d71 , + 0xe0d72 , + 0xe0d73 , + 0xe0d74 , + 0xe0d75 , + 0xe0d76 , + 0xe0d77 , + 0xe0d78 , + 0xe0d79 , + 0xe0d7a , + 0xe0d7b , + 0xe0d7c , + 0xe0d7d , + 0xe0d7e , + 0xe0d7f , + 0xe0d80 , + 0xe0d81 , + 0xe0d82 , + 0xe0d83 , + 0xe0d84 , + 0xe0d85 , + 0xe0d86 , + 0xe0d87 , + 0xe0d88 , + 0xe0d89 , + 0xe0d8a , + 0xe0d8b , + 0xe0d8c , + 0xe0d8d , + 0xe0d8e , + 0xe0d8f , + 0xe0d90 , + 0xe0d91 , + 0xe0d92 , + 0xe0d93 , + 0xe0d94 , + 0xe0d95 , + 0xe0d96 , + 0xe0d97 , + 0xe0d98 , + 0xe0d99 , + 0xe0d9a , + 0xe0d9b , + 0xe0d9c , + 0xe0d9d , + 0xe0d9e , + 0xe0d9f , + 0xe0da0 , + 0xe0da1 , + 0xe0da2 , + 0xe0da3 , + 0xe0da4 , + 0xe0da5 , + 0xe0da6 , + 0xe0da7 , + 0xe0da8 , + 0xe0da9 , + 0xe0daa , + 0xe0dab , + 0xe0dac , + 0xe0dad , + 0xe0dae , + 0xe0daf , + 0xe0db0 , + 0xe0db1 , + 0xe0db2 , + 0xe0db3 , + 0xe0db4 , + 0xe0db5 , + 0xe0db6 , + 0xe0db7 , + 0xe0db8 , + 0xe0db9 , + 0xe0dba , + 0xe0dbb , + 0xe0dbc , + 0xe0dbd , + 0xe0dbe , + 0xe0dbf , + 0xe0dc0 , + 0xe0dc1 , + 0xe0dc2 , + 0xe0dc3 , + 0xe0dc4 , + 0xe0dc5 , + 0xe0dc6 , + 0xe0dc7 , + 0xe0dc8 , + 0xe0dc9 , + 0xe0dca , + 0xe0dcb , + 0xe0dcc , + 0xe0dcd , + 0xe0dce , + 0xe0dcf , + 0xe0dd0 , + 0xe0dd1 , + 0xe0dd2 , + 0xe0dd3 , + 0xe0dd4 , + 0xe0dd5 , + 0xe0dd6 , + 0xe0dd7 , + 0xe0dd8 , + 0xe0dd9 , + 0xe0dda , + 0xe0ddb , + 0xe0ddc , + 0xe0ddd , + 0xe0dde , + 0xe0ddf , + 0xe0de0 , + 0xe0de1 , + 0xe0de2 , + 0xe0de3 , + 0xe0de4 , + 0xe0de5 , + 0xe0de6 , + 0xe0de7 , + 0xe0de8 , + 0xe0de9 , + 0xe0dea , + 0xe0deb , + 0xe0dec , + 0xe0ded , + 0xe0dee , + 0xe0def , + 0xe0df0 , + 0xe0df1 , + 0xe0df2 , + 0xe0df3 , + 0xe0df4 , + 0xe0df5 , + 0xe0df6 , + 0xe0df7 , + 0xe0df8 , + 0xe0df9 , + 0xe0dfa , + 0xe0dfb , + 0xe0dfc , + 0xe0dfd , + 0xe0dfe , + 0xe0dff , + 0xe0e00 , + 0xe0e01 , + 0xe0e02 , + 0xe0e03 , + 0xe0e04 , + 0xe0e05 , + 0xe0e06 , + 0xe0e07 , + 0xe0e08 , + 0xe0e09 , + 0xe0e0a , + 0xe0e0b , + 0xe0e0c , + 0xe0e0d , + 0xe0e0e , + 0xe0e0f , + 0xe0e10 , + 0xe0e11 , + 0xe0e12 , + 0xe0e13 , + 0xe0e14 , + 0xe0e15 , + 0xe0e16 , + 0xe0e17 , + 0xe0e18 , + 0xe0e19 , + 0xe0e1a , + 0xe0e1b , + 0xe0e1c , + 0xe0e1d , + 0xe0e1e , + 0xe0e1f , + 0xe0e20 , + 0xe0e21 , + 0xe0e22 , + 0xe0e23 , + 0xe0e24 , + 0xe0e25 , + 0xe0e26 , + 0xe0e27 , + 0xe0e28 , + 0xe0e29 , + 0xe0e2a , + 0xe0e2b , + 0xe0e2c , + 0xe0e2d , + 0xe0e2e , + 0xe0e2f , + 0xe0e30 , + 0xe0e31 , + 0xe0e32 , + 0xe0e33 , + 0xe0e34 , + 0xe0e35 , + 0xe0e36 , + 0xe0e37 , + 0xe0e38 , + 0xe0e39 , + 0xe0e3a , + 0xe0e3b , + 0xe0e3c , + 0xe0e3d , + 0xe0e3e , + 0xe0e3f , + 0xe0e40 , + 0xe0e41 , + 0xe0e42 , + 0xe0e43 , + 0xe0e44 , + 0xe0e45 , + 0xe0e46 , + 0xe0e47 , + 0xe0e48 , + 0xe0e49 , + 0xe0e4a , + 0xe0e4b , + 0xe0e4c , + 0xe0e4d , + 0xe0e4e , + 0xe0e4f , + 0xe0e50 , + 0xe0e51 , + 0xe0e52 , + 0xe0e53 , + 0xe0e54 , + 0xe0e55 , + 0xe0e56 , + 0xe0e57 , + 0xe0e58 , + 0xe0e59 , + 0xe0e5a , + 0xe0e5b , + 0xe0e5c , + 0xe0e5d , + 0xe0e5e , + 0xe0e5f , + 0xe0e60 , + 0xe0e61 , + 0xe0e62 , + 0xe0e63 , + 0xe0e64 , + 0xe0e65 , + 0xe0e66 , + 0xe0e67 , + 0xe0e68 , + 0xe0e69 , + 0xe0e6a , + 0xe0e6b , + 0xe0e6c , + 0xe0e6d , + 0xe0e6e , + 0xe0e6f , + 0xe0e70 , + 0xe0e71 , + 0xe0e72 , + 0xe0e73 , + 0xe0e74 , + 0xe0e75 , + 0xe0e76 , + 0xe0e77 , + 0xe0e78 , + 0xe0e79 , + 0xe0e7a , + 0xe0e7b , + 0xe0e7c , + 0xe0e7d , + 0xe0e7e , + 0xe0e7f , + 0xe0e80 , + 0xe0e81 , + 0xe0e82 , + 0xe0e83 , + 0xe0e84 , + 0xe0e85 , + 0xe0e86 , + 0xe0e87 , + 0xe0e88 , + 0xe0e89 , + 0xe0e8a , + 0xe0e8b , + 0xe0e8c , + 0xe0e8d , + 0xe0e8e , + 0xe0e8f , + 0xe0e90 , + 0xe0e91 , + 0xe0e92 , + 0xe0e93 , + 0xe0e94 , + 0xe0e95 , + 0xe0e96 , + 0xe0e97 , + 0xe0e98 , + 0xe0e99 , + 0xe0e9a , + 0xe0e9b , + 0xe0e9c , + 0xe0e9d , + 0xe0e9e , + 0xe0e9f , + 0xe0ea0 , + 0xe0ea1 , + 0xe0ea2 , + 0xe0ea3 , + 0xe0ea4 , + 0xe0ea5 , + 0xe0ea6 , + 0xe0ea7 , + 0xe0ea8 , + 0xe0ea9 , + 0xe0eaa , + 0xe0eab , + 0xe0eac , + 0xe0ead , + 0xe0eae , + 0xe0eaf , + 0xe0eb0 , + 0xe0eb1 , + 0xe0eb2 , + 0xe0eb3 , + 0xe0eb4 , + 0xe0eb5 , + 0xe0eb6 , + 0xe0eb7 , + 0xe0eb8 , + 0xe0eb9 , + 0xe0eba , + 0xe0ebb , + 0xe0ebc , + 0xe0ebd , + 0xe0ebe , + 0xe0ebf , + 0xe0ec0 , + 0xe0ec1 , + 0xe0ec2 , + 0xe0ec3 , + 0xe0ec4 , + 0xe0ec5 , + 0xe0ec6 , + 0xe0ec7 , + 0xe0ec8 , + 0xe0ec9 , + 0xe0eca , + 0xe0ecb , + 0xe0ecc , + 0xe0ecd , + 0xe0ece , + 0xe0ecf , + 0xe0ed0 , + 0xe0ed1 , + 0xe0ed2 , + 0xe0ed3 , + 0xe0ed4 , + 0xe0ed5 , + 0xe0ed6 , + 0xe0ed7 , + 0xe0ed8 , + 0xe0ed9 , + 0xe0eda , + 0xe0edb , + 0xe0edc , + 0xe0edd , + 0xe0ede , + 0xe0edf , + 0xe0ee0 , + 0xe0ee1 , + 0xe0ee2 , + 0xe0ee3 , + 0xe0ee4 , + 0xe0ee5 , + 0xe0ee6 , + 0xe0ee7 , + 0xe0ee8 , + 0xe0ee9 , + 0xe0eea , + 0xe0eeb , + 0xe0eec , + 0xe0eed , + 0xe0eee , + 0xe0eef , + 0xe0ef0 , + 0xe0ef1 , + 0xe0ef2 , + 0xe0ef3 , + 0xe0ef4 , + 0xe0ef5 , + 0xe0ef6 , + 0xe0ef7 , + 0xe0ef8 , + 0xe0ef9 , + 0xe0efa , + 0xe0efb , + 0xe0efc , + 0xe0efd , + 0xe0efe , + 0xe0eff , + 0xe0f00 , + 0xe0f01 , + 0xe0f02 , + 0xe0f03 , + 0xe0f04 , + 0xe0f05 , + 0xe0f06 , + 0xe0f07 , + 0xe0f08 , + 0xe0f09 , + 0xe0f0a , + 0xe0f0b , + 0xe0f0c , + 0xe0f0d , + 0xe0f0e , + 0xe0f0f , + 0xe0f10 , + 0xe0f11 , + 0xe0f12 , + 0xe0f13 , + 0xe0f14 , + 0xe0f15 , + 0xe0f16 , + 0xe0f17 , + 0xe0f18 , + 0xe0f19 , + 0xe0f1a , + 0xe0f1b , + 0xe0f1c , + 0xe0f1d , + 0xe0f1e , + 0xe0f1f , + 0xe0f20 , + 0xe0f21 , + 0xe0f22 , + 0xe0f23 , + 0xe0f24 , + 0xe0f25 , + 0xe0f26 , + 0xe0f27 , + 0xe0f28 , + 0xe0f29 , + 0xe0f2a , + 0xe0f2b , + 0xe0f2c , + 0xe0f2d , + 0xe0f2e , + 0xe0f2f , + 0xe0f30 , + 0xe0f31 , + 0xe0f32 , + 0xe0f33 , + 0xe0f34 , + 0xe0f35 , + 0xe0f36 , + 0xe0f37 , + 0xe0f38 , + 0xe0f39 , + 0xe0f3a , + 0xe0f3b , + 0xe0f3c , + 0xe0f3d , + 0xe0f3e , + 0xe0f3f , + 0xe0f40 , + 0xe0f41 , + 0xe0f42 , + 0xe0f43 , + 0xe0f44 , + 0xe0f45 , + 0xe0f46 , + 0xe0f47 , + 0xe0f48 , + 0xe0f49 , + 0xe0f4a , + 0xe0f4b , + 0xe0f4c , + 0xe0f4d , + 0xe0f4e , + 0xe0f4f , + 0xe0f50 , + 0xe0f51 , + 0xe0f52 , + 0xe0f53 , + 0xe0f54 , + 0xe0f55 , + 0xe0f56 , + 0xe0f57 , + 0xe0f58 , + 0xe0f59 , + 0xe0f5a , + 0xe0f5b , + 0xe0f5c , + 0xe0f5d , + 0xe0f5e , + 0xe0f5f , + 0xe0f60 , + 0xe0f61 , + 0xe0f62 , + 0xe0f63 , + 0xe0f64 , + 0xe0f65 , + 0xe0f66 , + 0xe0f67 , + 0xe0f68 , + 0xe0f69 , + 0xe0f6a , + 0xe0f6b , + 0xe0f6c , + 0xe0f6d , + 0xe0f6e , + 0xe0f6f , + 0xe0f70 , + 0xe0f71 , + 0xe0f72 , + 0xe0f73 , + 0xe0f74 , + 0xe0f75 , + 0xe0f76 , + 0xe0f77 , + 0xe0f78 , + 0xe0f79 , + 0xe0f7a , + 0xe0f7b , + 0xe0f7c , + 0xe0f7d , + 0xe0f7e , + 0xe0f7f , + 0xe0f80 , + 0xe0f81 , + 0xe0f82 , + 0xe0f83 , + 0xe0f84 , + 0xe0f85 , + 0xe0f86 , + 0xe0f87 , + 0xe0f88 , + 0xe0f89 , + 0xe0f8a , + 0xe0f8b , + 0xe0f8c , + 0xe0f8d , + 0xe0f8e , + 0xe0f8f , + 0xe0f90 , + 0xe0f91 , + 0xe0f92 , + 0xe0f93 , + 0xe0f94 , + 0xe0f95 , + 0xe0f96 , + 0xe0f97 , + 0xe0f98 , + 0xe0f99 , + 0xe0f9a , + 0xe0f9b , + 0xe0f9c , + 0xe0f9d , + 0xe0f9e , + 0xe0f9f , + 0xe0fa0 , + 0xe0fa1 , + 0xe0fa2 , + 0xe0fa3 , + 0xe0fa4 , + 0xe0fa5 , + 0xe0fa6 , + 0xe0fa7 , + 0xe0fa8 , + 0xe0fa9 , + 0xe0faa , + 0xe0fab , + 0xe0fac , + 0xe0fad , + 0xe0fae , + 0xe0faf , + 0xe0fb0 , + 0xe0fb1 , + 0xe0fb2 , + 0xe0fb3 , + 0xe0fb4 , + 0xe0fb5 , + 0xe0fb6 , + 0xe0fb7 , + 0xe0fb8 , + 0xe0fb9 , + 0xe0fba , + 0xe0fbb , + 0xe0fbc , + 0xe0fbd , + 0xe0fbe , + 0xe0fbf , + 0xe0fc0 , + 0xe0fc1 , + 0xe0fc2 , + 0xe0fc3 , + 0xe0fc4 , + 0xe0fc5 , + 0xe0fc6 , + 0xe0fc7 , + 0xe0fc8 , + 0xe0fc9 , + 0xe0fca , + 0xe0fcb , + 0xe0fcc , + 0xe0fcd , + 0xe0fce , + 0xe0fcf , + 0xe0fd0 , + 0xe0fd1 , + 0xe0fd2 , + 0xe0fd3 , + 0xe0fd4 , + 0xe0fd5 , + 0xe0fd6 , + 0xe0fd7 , + 0xe0fd8 , + 0xe0fd9 , + 0xe0fda , + 0xe0fdb , + 0xe0fdc , + 0xe0fdd , + 0xe0fde , + 0xe0fdf , + 0xe0fe0 , + 0xe0fe1 , + 0xe0fe2 , + 0xe0fe3 , + 0xe0fe4 , + 0xe0fe5 , + 0xe0fe6 , + 0xe0fe7 , + 0xe0fe8 , + 0xe0fe9 , + 0xe0fea , + 0xe0feb , + 0xe0fec , + 0xe0fed , + 0xe0fee , + 0xe0fef , + 0xe0ff0 , + 0xe0ff1 , + 0xe0ff2 , + 0xe0ff3 , + 0xe0ff4 , + 0xe0ff5 , + 0xe0ff6 , + 0xe0ff7 , + 0xe0ff8 , + 0xe0ff9 , + 0xe0ffa , + 0xe0ffb , + 0xe0ffc , + 0xe0ffd , + 0xe0ffe , + 0xe0fff }; + +static FcBlanks fcBlanks = { + 4191, + -1, + _fcBlanks +}; + diff --git a/fontconfig/fc-blanks/fcblanks.tmpl.h b/fontconfig/fc-blanks/fcblanks.tmpl.h new file mode 100644 index 000000000..2bcaa21d6 --- /dev/null +++ b/fontconfig/fc-blanks/fcblanks.tmpl.h @@ -0,0 +1,25 @@ +/* + * fontconfig/fc-blanks/fcblanks.tmpl.h + * + * Copyright © 2003 Keith Packard + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of the author(s) not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. The authors make no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +@@@ diff --git a/fontconfig/fc-blanks/makefile b/fontconfig/fc-blanks/makefile new file mode 100644 index 000000000..400fc2a14 --- /dev/null +++ b/fontconfig/fc-blanks/makefile @@ -0,0 +1,7 @@ +BLANKSPY = fc-blanks.py +BLANKS_H = fcblanks.h +TMPL = fcblanks.tmpl.h + +$(BLANKS_H): $(TMPL) $(BLANKSPY) + python $(BLANKSPY) < $< > $(BLANKS_H) + diff --git a/fontconfig/fonts.conf.in b/fontconfig/fonts.conf.in index f63ada1cd..7c16a7074 100644 --- a/fontconfig/fonts.conf.in +++ b/fontconfig/fonts.conf.in @@ -79,74 +79,6 @@ <config> <!-- - These are the default Unicode chars that are expected to be blank - in fonts. All other blank chars are assumed to be broken and - won't appear in the resulting charsets - --> - <blank> - <int>0x0020</int> <!-- SPACE --> - <int>0x00A0</int> <!-- NO-BREAK SPACE --> - <int>0x00AD</int> <!-- SOFT HYPHEN --> - <int>0x034F</int> <!-- COMBINING GRAPHEME JOINER --> - <int>0x061C</int> <!-- ARABIC LETTER MARK --> - <int>0x115F</int> <!-- HANGUL CHOSEONG FILLER --> - <int>0x1160</int> <!-- HANGUL JUNGSEONG FILLER --> - <int>0x1680</int> <!-- OGHAM SPACE MARK --> - <int>0x17B4</int> <!-- KHMER VOWEL INHERENT AQ --> - <int>0x17B5</int> <!-- KHMER VOWEL INHERENT AA --> - <int>0x180B</int> <!-- MONGOLIAN FREE VARIATION SELECTOR ONE --> - <int>0x180C</int> <!-- MONGOLIAN FREE VARIATION SELECTOR TWO --> - <int>0x180D</int> <!-- MONGOLIAN FREE VARIATION SELECTOR THREE --> - <int>0x180E</int> <!-- MONGOLIAN VOWEL SEPARATOR --> - <int>0x2000</int> <!-- EN QUAD --> - <int>0x2001</int> <!-- EM QUAD --> - <int>0x2002</int> <!-- EN SPACE --> - <int>0x2003</int> <!-- EM SPACE --> - <int>0x2004</int> <!-- THREE-PER-EM SPACE --> - <int>0x2005</int> <!-- FOUR-PER-EM SPACE --> - <int>0x2006</int> <!-- SIX-PER-EM SPACE --> - <int>0x2007</int> <!-- FIGURE SPACE --> - <int>0x2008</int> <!-- PUNCTUATION SPACE --> - <int>0x2009</int> <!-- THIN SPACE --> - <int>0x200A</int> <!-- HAIR SPACE --> - <int>0x200B</int> <!-- ZERO WIDTH SPACE --> - <int>0x200C</int> <!-- ZERO WIDTH NON-JOINER --> - <int>0x200D</int> <!-- ZERO WIDTH JOINER --> - <int>0x200E</int> <!-- LEFT-TO-RIGHT MARK --> - <int>0x200F</int> <!-- RIGHT-TO-LEFT MARK --> - <int>0x202A</int> <!-- LEFT-TO-RIGHT EMBEDDING --> - <int>0x202B</int> <!-- RIGHT-TO-LEFT EMBEDDING --> - <int>0x202C</int> <!-- POP DIRECTIONAL FORMATTING --> - <int>0x202D</int> <!-- LEFT-TO-RIGHT OVERRIDE --> - <int>0x202E</int> <!-- RIGHT-TO-LEFT OVERRIDE --> - <int>0x202F</int> <!-- NARROW NO-BREAK SPACE --> - <int>0x205F</int> <!-- MEDIUM MATHEMATICAL SPACE --> - <int>0x2060</int> <!-- WORD JOINER --> - <int>0x2061</int> <!-- FUNCTION APPLICATION --> - <int>0x2062</int> <!-- INVISIBLE TIMES --> - <int>0x2063</int> <!-- INVISIBLE SEPARATOR --> - <int>0x2064</int> <!-- INVISIBLE PLUS --> - <int>0x2066</int> <!-- LEFT-TO-RIGHT ISOLATE --> - <int>0x2067</int> <!-- RIGHT-TO-LEFT ISOLATE --> - <int>0x2068</int> <!-- FIRST STRONG ISOLATE --> - <int>0x2069</int> <!-- POP DIRECTIONAL ISOLATE --> - <int>0x206A</int> <!-- INHIBIT SYMMETRIC SWAPPING --> - <int>0x206B</int> <!-- ACTIVATE SYMMETRIC SWAPPING --> - <int>0x206C</int> <!-- INHIBIT ARABIC FORM SHAPING --> - <int>0x206D</int> <!-- ACTIVATE ARABIC FORM SHAPING --> - <int>0x206E</int> <!-- NATIONAL DIGIT SHAPES --> - <int>0x206F</int> <!-- NOMINAL DIGIT SHAPES --> - <int>0x2800</int> <!-- BRAILLE PATTERN BLANK --> - <int>0x3000</int> <!-- IDEOGRAPHIC SPACE --> - <int>0x3164</int> <!-- HANGUL FILLER --> - <int>0xFEFF</int> <!-- ZERO WIDTH NO-BREAK SPACE --> - <int>0xFFA0</int> <!-- HALFWIDTH HANGUL FILLER --> - <int>0x1BCA0</int> <!-- SHORTHAND FORMAT LETTER OVERLAP --> - <int>0x1BCA1</int> <!-- SHORTHAND FORMAT CONTINUING OVERLAP --> - <int>0x1BCA2</int> <!-- SHORTHAND FORMAT DOWN STEP --> - <int>0x1BCA3</int> <!-- SHORTHAND FORMAT UP STEP --> - </blank> -<!-- Rescan configuration every 30 seconds when FcFontSetList is called --> <rescan> diff --git a/fontconfig/src/fcarch.c b/fontconfig/src/fcarch.c index 398f4bbfc..4a921c062 100644 --- a/fontconfig/src/fcarch.c +++ b/fontconfig/src/fcarch.c @@ -21,10 +21,9 @@ * PERFORMANCE OF THIS SOFTWARE. */ -#include <stdio.h> - #include "fcint.h" #include "fcarch.h" +#include <stdio.h> FC_ASSERT_STATIC (1 == sizeof (char)); FC_ASSERT_STATIC (2 == sizeof (FcChar16)); diff --git a/fontconfig/src/fcblanks.c b/fontconfig/src/fcblanks.c index 46698bcda..f163a8f40 100644 --- a/fontconfig/src/fcblanks.c +++ b/fontconfig/src/fcblanks.c @@ -41,6 +41,8 @@ FcBlanksCreate (void) void FcBlanksDestroy (FcBlanks *b) { + if (b->sblank == -1) + return; if (b->blanks) free (b->blanks); free (b); @@ -56,6 +58,11 @@ FcBlanksAdd (FcBlanks *b, FcChar32 ucs4) if (b->blanks[sblank] == ucs4) return FcTrue; + if (b->sblank == -1) + { + fprintf (stderr, "Unable to update the static FcBlanks: 0x%04x\n", ucs4); + return FcTrue; + } if (b->nblank == b->sblank) { sblank = b->sblank + 32; @@ -75,11 +82,26 @@ FcBlanksAdd (FcBlanks *b, FcChar32 ucs4) FcBool FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4) { - int i; + int lower = 0, higher = b->nblank, middle; - for (i = 0; i < b->nblank; i++) - if (b->blanks[i] == ucs4) + if (b->nblank == 0 || + b->blanks[0] > ucs4 || + b->blanks[b->nblank - 1] < ucs4) + return FcFalse; + while (1) + { + middle = (lower + higher) / 2; + if (b->blanks[middle] == ucs4) return FcTrue; + if (middle == lower || + middle == higher) + break; + if (b->blanks[middle] < ucs4) + lower = middle + 1; + else + higher = middle - 1; + } + return FcFalse; } #define __fcblanks__ diff --git a/fontconfig/src/fccfg.c b/fontconfig/src/fccfg.c index b27ab0b43..b92270b64 100644 --- a/fontconfig/src/fccfg.c +++ b/fontconfig/src/fccfg.c @@ -27,6 +27,7 @@ #include "fcint.h" #include <dirent.h> #include <sys/types.h> +#include "../fc-blanks/fcblanks.h" #if defined (_WIN32) && !defined (R_OK) #define R_OK 4 @@ -109,7 +110,7 @@ FcConfigCreate (void) if (!config->cacheDirs) goto bail8; - config->blanks = 0; + config->blanks = &fcBlanks; config->substPattern = 0; config->substFont = 0; @@ -1545,7 +1546,9 @@ FcConfigSubstituteWithPat (FcConfig *config, FcStrList *l = FcStrListCreate (strs); FcChar8 *lang; FcValue v; + FcLangSet *lsund = FcLangSetCreate (); + FcLangSetAdd (lsund, (const FcChar8 *)"und"); FcStrSetDestroy (strs); while (l && (lang = FcStrListNext (l))) { @@ -1569,10 +1572,16 @@ FcConfigSubstituteWithPat (FcConfig *config, FcLangSetDestroy (ls); if (b) goto bail_lang; + if (FcLangSetContains (vv.u.l, lsund)) + goto bail_lang; } else + { if (FcStrCmpIgnoreCase (vv.u.s, lang) == 0) goto bail_lang; + if (FcStrCmpIgnoreCase (vv.u.s, (const FcChar8 *)"und") == 0) + goto bail_lang; + } } } v.type = FcTypeString; @@ -1582,6 +1591,7 @@ FcConfigSubstituteWithPat (FcConfig *config, } bail_lang: FcStrListDone (l); + FcLangSetDestroy (lsund); } if (FcPatternObjectGet (p, FC_PRGNAME_OBJECT, 0, &v) == FcResultNoMatch) { diff --git a/fontconfig/src/fcfreetype.c b/fontconfig/src/fcfreetype.c index 357380070..513aabce2 100644 --- a/fontconfig/src/fcfreetype.c +++ b/fontconfig/src/fcfreetype.c @@ -1986,283 +1986,17 @@ bail: #warning "No FT_Get_Next_Char: Please install freetype version 2.1.0 or newer" #endif -typedef struct _FcCharEnt { - FcChar16 bmp; - unsigned char encode; -} FcCharEnt; - -struct _FcCharMap { - const FcCharEnt *ent; - int nent; +static const FT_Encoding fcFontEncodings[] = { + FT_ENCODING_UNICODE, + FT_ENCODING_MS_SYMBOL }; -typedef struct _FcFontDecode { - FT_Encoding encoding; - const FcCharMap *map; - FcChar32 max; -} FcFontDecode; - -static const FcCharEnt AdobeSymbolEnt[] = { - { 0x0020, 0x20 }, /* SPACE # space */ - { 0x0021, 0x21 }, /* EXCLAMATION MARK # exclam */ - { 0x0023, 0x23 }, /* NUMBER SIGN # numbersign */ - { 0x0025, 0x25 }, /* PERCENT SIGN # percent */ - { 0x0026, 0x26 }, /* AMPERSAND # ampersand */ - { 0x0028, 0x28 }, /* LEFT PARENTHESIS # parenleft */ - { 0x0029, 0x29 }, /* RIGHT PARENTHESIS # parenright */ - { 0x002B, 0x2B }, /* PLUS SIGN # plus */ - { 0x002C, 0x2C }, /* COMMA # comma */ - { 0x002E, 0x2E }, /* FULL STOP # period */ - { 0x002F, 0x2F }, /* SOLIDUS # slash */ - { 0x0030, 0x30 }, /* DIGIT ZERO # zero */ - { 0x0031, 0x31 }, /* DIGIT ONE # one */ - { 0x0032, 0x32 }, /* DIGIT TWO # two */ - { 0x0033, 0x33 }, /* DIGIT THREE # three */ - { 0x0034, 0x34 }, /* DIGIT FOUR # four */ - { 0x0035, 0x35 }, /* DIGIT FIVE # five */ - { 0x0036, 0x36 }, /* DIGIT SIX # six */ - { 0x0037, 0x37 }, /* DIGIT SEVEN # seven */ - { 0x0038, 0x38 }, /* DIGIT EIGHT # eight */ - { 0x0039, 0x39 }, /* DIGIT NINE # nine */ - { 0x003A, 0x3A }, /* COLON # colon */ - { 0x003B, 0x3B }, /* SEMICOLON # semicolon */ - { 0x003C, 0x3C }, /* LESS-THAN SIGN # less */ - { 0x003D, 0x3D }, /* EQUALS SIGN # equal */ - { 0x003E, 0x3E }, /* GREATER-THAN SIGN # greater */ - { 0x003F, 0x3F }, /* QUESTION MARK # question */ - { 0x005B, 0x5B }, /* LEFT SQUARE BRACKET # bracketleft */ - { 0x005D, 0x5D }, /* RIGHT SQUARE BRACKET # bracketright */ - { 0x005F, 0x5F }, /* LOW LINE # underscore */ - { 0x007B, 0x7B }, /* LEFT CURLY BRACKET # braceleft */ - { 0x007C, 0x7C }, /* VERTICAL LINE # bar */ - { 0x007D, 0x7D }, /* RIGHT CURLY BRACKET # braceright */ - { 0x00A0, 0x20 }, /* NO-BREAK SPACE # space */ - { 0x00AC, 0xD8 }, /* NOT SIGN # logicalnot */ - { 0x00B0, 0xB0 }, /* DEGREE SIGN # degree */ - { 0x00B1, 0xB1 }, /* PLUS-MINUS SIGN # plusminus */ - { 0x00B5, 0x6D }, /* MICRO SIGN # mu */ - { 0x00D7, 0xB4 }, /* MULTIPLICATION SIGN # multiply */ - { 0x00F7, 0xB8 }, /* DIVISION SIGN # divide */ - { 0x0192, 0xA6 }, /* LATIN SMALL LETTER F WITH HOOK # florin */ - { 0x0391, 0x41 }, /* GREEK CAPITAL LETTER ALPHA # Alpha */ - { 0x0392, 0x42 }, /* GREEK CAPITAL LETTER BETA # Beta */ - { 0x0393, 0x47 }, /* GREEK CAPITAL LETTER GAMMA # Gamma */ - { 0x0394, 0x44 }, /* GREEK CAPITAL LETTER DELTA # Delta */ - { 0x0395, 0x45 }, /* GREEK CAPITAL LETTER EPSILON # Epsilon */ - { 0x0396, 0x5A }, /* GREEK CAPITAL LETTER ZETA # Zeta */ - { 0x0397, 0x48 }, /* GREEK CAPITAL LETTER ETA # Eta */ - { 0x0398, 0x51 }, /* GREEK CAPITAL LETTER THETA # Theta */ - { 0x0399, 0x49 }, /* GREEK CAPITAL LETTER IOTA # Iota */ - { 0x039A, 0x4B }, /* GREEK CAPITAL LETTER KAPPA # Kappa */ - { 0x039B, 0x4C }, /* GREEK CAPITAL LETTER LAMDA # Lambda */ - { 0x039C, 0x4D }, /* GREEK CAPITAL LETTER MU # Mu */ - { 0x039D, 0x4E }, /* GREEK CAPITAL LETTER NU # Nu */ - { 0x039E, 0x58 }, /* GREEK CAPITAL LETTER XI # Xi */ - { 0x039F, 0x4F }, /* GREEK CAPITAL LETTER OMICRON # Omicron */ - { 0x03A0, 0x50 }, /* GREEK CAPITAL LETTER PI # Pi */ - { 0x03A1, 0x52 }, /* GREEK CAPITAL LETTER RHO # Rho */ - { 0x03A3, 0x53 }, /* GREEK CAPITAL LETTER SIGMA # Sigma */ - { 0x03A4, 0x54 }, /* GREEK CAPITAL LETTER TAU # Tau */ - { 0x03A5, 0x55 }, /* GREEK CAPITAL LETTER UPSILON # Upsilon */ - { 0x03A6, 0x46 }, /* GREEK CAPITAL LETTER PHI # Phi */ - { 0x03A7, 0x43 }, /* GREEK CAPITAL LETTER CHI # Chi */ - { 0x03A8, 0x59 }, /* GREEK CAPITAL LETTER PSI # Psi */ - { 0x03A9, 0x57 }, /* GREEK CAPITAL LETTER OMEGA # Omega */ - { 0x03B1, 0x61 }, /* GREEK SMALL LETTER ALPHA # alpha */ - { 0x03B2, 0x62 }, /* GREEK SMALL LETTER BETA # beta */ - { 0x03B3, 0x67 }, /* GREEK SMALL LETTER GAMMA # gamma */ - { 0x03B4, 0x64 }, /* GREEK SMALL LETTER DELTA # delta */ - { 0x03B5, 0x65 }, /* GREEK SMALL LETTER EPSILON # epsilon */ - { 0x03B6, 0x7A }, /* GREEK SMALL LETTER ZETA # zeta */ - { 0x03B7, 0x68 }, /* GREEK SMALL LETTER ETA # eta */ - { 0x03B8, 0x71 }, /* GREEK SMALL LETTER THETA # theta */ - { 0x03B9, 0x69 }, /* GREEK SMALL LETTER IOTA # iota */ - { 0x03BA, 0x6B }, /* GREEK SMALL LETTER KAPPA # kappa */ - { 0x03BB, 0x6C }, /* GREEK SMALL LETTER LAMDA # lambda */ - { 0x03BC, 0x6D }, /* GREEK SMALL LETTER MU # mu */ - { 0x03BD, 0x6E }, /* GREEK SMALL LETTER NU # nu */ - { 0x03BE, 0x78 }, /* GREEK SMALL LETTER XI # xi */ - { 0x03BF, 0x6F }, /* GREEK SMALL LETTER OMICRON # omicron */ - { 0x03C0, 0x70 }, /* GREEK SMALL LETTER PI # pi */ - { 0x03C1, 0x72 }, /* GREEK SMALL LETTER RHO # rho */ - { 0x03C2, 0x56 }, /* GREEK SMALL LETTER FINAL SIGMA # sigma1 */ - { 0x03C3, 0x73 }, /* GREEK SMALL LETTER SIGMA # sigma */ - { 0x03C4, 0x74 }, /* GREEK SMALL LETTER TAU # tau */ - { 0x03C5, 0x75 }, /* GREEK SMALL LETTER UPSILON # upsilon */ - { 0x03C6, 0x66 }, /* GREEK SMALL LETTER PHI # phi */ - { 0x03C7, 0x63 }, /* GREEK SMALL LETTER CHI # chi */ - { 0x03C8, 0x79 }, /* GREEK SMALL LETTER PSI # psi */ - { 0x03C9, 0x77 }, /* GREEK SMALL LETTER OMEGA # omega */ - { 0x03D1, 0x4A }, /* GREEK THETA SYMBOL # theta1 */ - { 0x03D2, 0xA1 }, /* GREEK UPSILON WITH HOOK SYMBOL # Upsilon1 */ - { 0x03D5, 0x6A }, /* GREEK PHI SYMBOL # phi1 */ - { 0x03D6, 0x76 }, /* GREEK PI SYMBOL # omega1 */ - { 0x2022, 0xB7 }, /* BULLET # bullet */ - { 0x2026, 0xBC }, /* HORIZONTAL ELLIPSIS # ellipsis */ - { 0x2032, 0xA2 }, /* PRIME # minute */ - { 0x2033, 0xB2 }, /* DOUBLE PRIME # second */ - { 0x2044, 0xA4 }, /* FRACTION SLASH # fraction */ - { 0x20AC, 0xA0 }, /* EURO SIGN # Euro */ - { 0x2111, 0xC1 }, /* BLACK-LETTER CAPITAL I # Ifraktur */ - { 0x2118, 0xC3 }, /* SCRIPT CAPITAL P # weierstrass */ - { 0x211C, 0xC2 }, /* BLACK-LETTER CAPITAL R # Rfraktur */ - { 0x2126, 0x57 }, /* OHM SIGN # Omega */ - { 0x2135, 0xC0 }, /* ALEF SYMBOL # aleph */ - { 0x2190, 0xAC }, /* LEFTWARDS ARROW # arrowleft */ - { 0x2191, 0xAD }, /* UPWARDS ARROW # arrowup */ - { 0x2192, 0xAE }, /* RIGHTWARDS ARROW # arrowright */ - { 0x2193, 0xAF }, /* DOWNWARDS ARROW # arrowdown */ - { 0x2194, 0xAB }, /* LEFT RIGHT ARROW # arrowboth */ - { 0x21B5, 0xBF }, /* DOWNWARDS ARROW WITH CORNER LEFTWARDS # carriagereturn */ - { 0x21D0, 0xDC }, /* LEFTWARDS DOUBLE ARROW # arrowdblleft */ - { 0x21D1, 0xDD }, /* UPWARDS DOUBLE ARROW # arrowdblup */ - { 0x21D2, 0xDE }, /* RIGHTWARDS DOUBLE ARROW # arrowdblright */ - { 0x21D3, 0xDF }, /* DOWNWARDS DOUBLE ARROW # arrowdbldown */ - { 0x21D4, 0xDB }, /* LEFT RIGHT DOUBLE ARROW # arrowdblboth */ - { 0x2200, 0x22 }, /* FOR ALL # universal */ - { 0x2202, 0xB6 }, /* PARTIAL DIFFERENTIAL # partialdiff */ - { 0x2203, 0x24 }, /* THERE EXISTS # existential */ - { 0x2205, 0xC6 }, /* EMPTY SET # emptyset */ - { 0x2206, 0x44 }, /* INCREMENT # Delta */ - { 0x2207, 0xD1 }, /* NABLA # gradient */ - { 0x2208, 0xCE }, /* ELEMENT OF # element */ - { 0x2209, 0xCF }, /* NOT AN ELEMENT OF # notelement */ - { 0x220B, 0x27 }, /* CONTAINS AS MEMBER # suchthat */ - { 0x220F, 0xD5 }, /* N-ARY PRODUCT # product */ - { 0x2211, 0xE5 }, /* N-ARY SUMMATION # summation */ - { 0x2212, 0x2D }, /* MINUS SIGN # minus */ - { 0x2215, 0xA4 }, /* DIVISION SLASH # fraction */ - { 0x2217, 0x2A }, /* ASTERISK OPERATOR # asteriskmath */ - { 0x221A, 0xD6 }, /* SQUARE ROOT # radical */ - { 0x221D, 0xB5 }, /* PROPORTIONAL TO # proportional */ - { 0x221E, 0xA5 }, /* INFINITY # infinity */ - { 0x2220, 0xD0 }, /* ANGLE # angle */ - { 0x2227, 0xD9 }, /* LOGICAL AND # logicaland */ - { 0x2228, 0xDA }, /* LOGICAL OR # logicalor */ - { 0x2229, 0xC7 }, /* INTERSECTION # intersection */ - { 0x222A, 0xC8 }, /* UNION # union */ - { 0x222B, 0xF2 }, /* INTEGRAL # integral */ - { 0x2234, 0x5C }, /* THEREFORE # therefore */ - { 0x223C, 0x7E }, /* TILDE OPERATOR # similar */ - { 0x2245, 0x40 }, /* APPROXIMATELY EQUAL TO # congruent */ - { 0x2248, 0xBB }, /* ALMOST EQUAL TO # approxequal */ - { 0x2260, 0xB9 }, /* NOT EQUAL TO # notequal */ - { 0x2261, 0xBA }, /* IDENTICAL TO # equivalence */ - { 0x2264, 0xA3 }, /* LESS-THAN OR EQUAL TO # lessequal */ - { 0x2265, 0xB3 }, /* GREATER-THAN OR EQUAL TO # greaterequal */ - { 0x2282, 0xCC }, /* SUBSET OF # propersubset */ - { 0x2283, 0xC9 }, /* SUPERSET OF # propersuperset */ - { 0x2284, 0xCB }, /* NOT A SUBSET OF # notsubset */ - { 0x2286, 0xCD }, /* SUBSET OF OR EQUAL TO # reflexsubset */ - { 0x2287, 0xCA }, /* SUPERSET OF OR EQUAL TO # reflexsuperset */ - { 0x2295, 0xC5 }, /* CIRCLED PLUS # circleplus */ - { 0x2297, 0xC4 }, /* CIRCLED TIMES # circlemultiply */ - { 0x22A5, 0x5E }, /* UP TACK # perpendicular */ - { 0x22C5, 0xD7 }, /* DOT OPERATOR # dotmath */ - { 0x2320, 0xF3 }, /* TOP HALF INTEGRAL # integraltp */ - { 0x2321, 0xF5 }, /* BOTTOM HALF INTEGRAL # integralbt */ - { 0x2329, 0xE1 }, /* LEFT-POINTING ANGLE BRACKET # angleleft */ - { 0x232A, 0xF1 }, /* RIGHT-POINTING ANGLE BRACKET # angleright */ - { 0x25CA, 0xE0 }, /* LOZENGE # lozenge */ - { 0x2660, 0xAA }, /* BLACK SPADE SUIT # spade */ - { 0x2663, 0xA7 }, /* BLACK CLUB SUIT # club */ - { 0x2665, 0xA9 }, /* BLACK HEART SUIT # heart */ - { 0x2666, 0xA8 }, /* BLACK DIAMOND SUIT # diamond */ - { 0xF6D9, 0xD3 }, /* COPYRIGHT SIGN SERIF # copyrightserif (CUS) */ - { 0xF6DA, 0xD2 }, /* REGISTERED SIGN SERIF # registerserif (CUS) */ - { 0xF6DB, 0xD4 }, /* TRADE MARK SIGN SERIF # trademarkserif (CUS) */ - { 0xF8E5, 0x60 }, /* RADICAL EXTENDER # radicalex (CUS) */ - { 0xF8E6, 0xBD }, /* VERTICAL ARROW EXTENDER # arrowvertex (CUS) */ - { 0xF8E7, 0xBE }, /* HORIZONTAL ARROW EXTENDER # arrowhorizex (CUS) */ - { 0xF8E8, 0xE2 }, /* REGISTERED SIGN SANS SERIF # registersans (CUS) */ - { 0xF8E9, 0xE3 }, /* COPYRIGHT SIGN SANS SERIF # copyrightsans (CUS) */ - { 0xF8EA, 0xE4 }, /* TRADE MARK SIGN SANS SERIF # trademarksans (CUS) */ - { 0xF8EB, 0xE6 }, /* LEFT PAREN TOP # parenlefttp (CUS) */ - { 0xF8EC, 0xE7 }, /* LEFT PAREN EXTENDER # parenleftex (CUS) */ - { 0xF8ED, 0xE8 }, /* LEFT PAREN BOTTOM # parenleftbt (CUS) */ - { 0xF8EE, 0xE9 }, /* LEFT SQUARE BRACKET TOP # bracketlefttp (CUS) */ - { 0xF8EF, 0xEA }, /* LEFT SQUARE BRACKET EXTENDER # bracketleftex (CUS) */ - { 0xF8F0, 0xEB }, /* LEFT SQUARE BRACKET BOTTOM # bracketleftbt (CUS) */ - { 0xF8F1, 0xEC }, /* LEFT CURLY BRACKET TOP # bracelefttp (CUS) */ - { 0xF8F2, 0xED }, /* LEFT CURLY BRACKET MID # braceleftmid (CUS) */ - { 0xF8F3, 0xEE }, /* LEFT CURLY BRACKET BOTTOM # braceleftbt (CUS) */ - { 0xF8F4, 0xEF }, /* CURLY BRACKET EXTENDER # braceex (CUS) */ - { 0xF8F5, 0xF4 }, /* INTEGRAL EXTENDER # integralex (CUS) */ - { 0xF8F6, 0xF6 }, /* RIGHT PAREN TOP # parenrighttp (CUS) */ - { 0xF8F7, 0xF7 }, /* RIGHT PAREN EXTENDER # parenrightex (CUS) */ - { 0xF8F8, 0xF8 }, /* RIGHT PAREN BOTTOM # parenrightbt (CUS) */ - { 0xF8F9, 0xF9 }, /* RIGHT SQUARE BRACKET TOP # bracketrighttp (CUS) */ - { 0xF8FA, 0xFA }, /* RIGHT SQUARE BRACKET EXTENDER # bracketrightex (CUS) */ - { 0xF8FB, 0xFB }, /* RIGHT SQUARE BRACKET BOTTOM # bracketrightbt (CUS) */ - { 0xF8FC, 0xFC }, /* RIGHT CURLY BRACKET TOP # bracerighttp (CUS) */ - { 0xF8FD, 0xFD }, /* RIGHT CURLY BRACKET MID # bracerightmid (CUS) */ - { 0xF8FE, 0xFE }, /* RIGHT CURLY BRACKET BOTTOM # bracerightbt (CUS) */ -}; - -static const FcCharMap AdobeSymbol = { - AdobeSymbolEnt, - sizeof (AdobeSymbolEnt) / sizeof (AdobeSymbolEnt[0]), -}; - -static const FcFontDecode fcFontDecoders[] = { - { ft_encoding_unicode, 0, (1 << 21) - 1 }, - { ft_encoding_symbol, 0, (1 << 16) - 1 }, -}; - -#define NUM_DECODE (int) (sizeof (fcFontDecoders) / sizeof (fcFontDecoders[0])) +#define NUM_DECODE (int) (sizeof (fcFontEncodings) / sizeof (fcFontEncodings[0])) static const FcChar32 prefer_unicode[] = { 0x20ac, /* EURO SIGN */ }; -#define NUM_PREFER_UNICODE (int) (sizeof (prefer_unicode) / sizeof (prefer_unicode[0])) - -FcChar32 -FcFreeTypeUcs4ToPrivate (FcChar32 ucs4, const FcCharMap *map) -{ - int low, high, mid; - FcChar16 bmp; - - low = 0; - high = map->nent - 1; - if (ucs4 < map->ent[low].bmp || map->ent[high].bmp < ucs4) - return ~0; - while (low <= high) - { - mid = (high + low) >> 1; - bmp = map->ent[mid].bmp; - if (ucs4 == bmp) - return (FT_ULong) map->ent[mid].encode; - if (ucs4 < bmp) - high = mid - 1; - else - low = mid + 1; - } - return ~0; -} - -FcChar32 -FcFreeTypePrivateToUcs4 (FcChar32 private, const FcCharMap *map) -{ - int i; - - for (i = 0; i < map->nent; i++) - if (map->ent[i].encode == private) - return (FcChar32) map->ent[i].bmp; - return ~0; -} - -const FcCharMap * -FcFreeTypeGetPrivateMap (FT_Encoding encoding) -{ - int i; - - for (i = 0; i < NUM_DECODE; i++) - if (fcFontDecoders[i].encoding == encoding) - return fcFontDecoders[i].map; - return 0; -} - #include "../fc-glyphname/fcglyphname.h" static FcChar32 @@ -2390,8 +2124,6 @@ FcFreeTypeCharIndex (FT_Face face, FcChar32 ucs4) { int initial, offset, decode; FT_UInt glyphindex; - FcChar32 charcode; - int p; initial = 0; @@ -2404,35 +2136,21 @@ FcFreeTypeCharIndex (FT_Face face, FcChar32 ucs4) if (face->charmap) { for (; initial < NUM_DECODE; initial++) - if (fcFontDecoders[initial].encoding == face->charmap->encoding) + if (fcFontEncodings[initial] == face->charmap->encoding) break; if (initial == NUM_DECODE) initial = 0; } - for (p = 0; p < NUM_PREFER_UNICODE; p++) - if (ucs4 == prefer_unicode[p]) - { - initial = 0; - break; - } /* * Check each encoding for the glyph, starting with the current one */ for (offset = 0; offset < NUM_DECODE; offset++) { decode = (initial + offset) % NUM_DECODE; - if (!face->charmap || face->charmap->encoding != fcFontDecoders[decode].encoding) - if (FT_Select_Charmap (face, fcFontDecoders[decode].encoding) != 0) - continue; - if (fcFontDecoders[decode].map) - { - charcode = FcFreeTypeUcs4ToPrivate (ucs4, fcFontDecoders[decode].map); - if (charcode == ~0U) + if (!face->charmap || face->charmap->encoding != fcFontEncodings[decode]) + if (FT_Select_Charmap (face, fcFontEncodings[decode]) != 0) continue; - } - else - charcode = ucs4; - glyphindex = FT_Get_Char_Index (face, (FT_ULong) charcode); + glyphindex = FT_Get_Char_Index (face, (FT_ULong) ucs4); if (glyphindex) return glyphindex; } @@ -2525,9 +2243,7 @@ FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing #endif FcCharSet *fcs; FcCharLeaf *leaf; - const FcCharMap *map; int o; - int i; FT_UInt glyph; FT_Pos advance, advance_one = 0, advance_two = 0; FcBool has_advance = FcFalse, fixed_advance = FcTrue, dual_advance = FcFalse; @@ -2550,62 +2266,9 @@ FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing #endif for (o = 0; o < NUM_DECODE; o++) { - if (FT_Select_Charmap (face, fcFontDecoders[o].encoding) != 0) + if (FT_Select_Charmap (face, fcFontEncodings[o]) != 0) continue; - map = fcFontDecoders[o].map; - if (map) - { - /* - * Non-Unicode tables are easy; there's a list of all possible - * characters - */ - for (i = 0; i < map->nent; i++) - { - ucs4 = map->ent[i].bmp; - glyph = FT_Get_Char_Index (face, map->ent[i].encode); - if (glyph && - FcFreeTypeCheckGlyph (face, ucs4, glyph, blanks, &advance, using_strike)) - { - /* - * ignore glyphs with zero advance. They’re - * combining characters, and while their behaviour - * isn’t well defined for monospaced applications in - * Unicode, there are many fonts which include - * zero-width combining characters in otherwise - * monospaced fonts. - */ - if (advance) - { - if (!has_advance) - { - has_advance = FcTrue; - advance_one = advance; - } - else if (!APPROXIMATELY_EQUAL (advance, advance_one)) - { - if (fixed_advance) - { - dual_advance = FcTrue; - fixed_advance = FcFalse; - advance_two = advance; - } - else if (!APPROXIMATELY_EQUAL (advance, advance_two)) - dual_advance = FcFalse; - } - } - leaf = FcCharSetFindLeafCreate (fcs, ucs4); - if (!leaf) - goto bail1; - leaf->map[(ucs4 & 0xff) >> 5] |= (1 << (ucs4 & 0x1f)); -#ifdef CHECK - if (ucs4 > font_max) - font_max = ucs4; -#endif - } - } - } - else { page = ~0; leaf = NULL; diff --git a/fontconfig/src/fclist.c b/fontconfig/src/fclist.c index 8bb42971c..217bbfbaf 100644 --- a/fontconfig/src/fclist.c +++ b/fontconfig/src/fclist.c @@ -270,7 +270,7 @@ FcListValueHash (FcValue *value) case FcTypeCharSet: return FcCharSetCount (v.u.c); case FcTypeFTFace: - return (long) v.u.f; + return (intptr_t) v.u.f; case FcTypeLangSet: return FcLangSetHash (v.u.l); case FcTypeRange: diff --git a/fontconfig/src/fcstat.c b/fontconfig/src/fcstat.c index 0bced5eed..65b73793a 100644 --- a/fontconfig/src/fcstat.c +++ b/fontconfig/src/fcstat.c @@ -42,6 +42,7 @@ #ifdef HAVE_SYS_MOUNT_H #include <sys/mount.h> #endif +#include <errno.h> #ifdef _WIN32 #ifdef __GNUC__ @@ -164,21 +165,86 @@ FcDirChecksumScandirFilter(const struct dirent *entry) } #endif -#ifdef HAVE_SCANDIR static int FcDirChecksumScandirSorter(const struct dirent **lhs, const struct dirent **rhs) { return strcmp((*lhs)->d_name, (*rhs)->d_name); } -#elif HAVE_SCANDIR_VOID_P -static int -FcDirChecksumScandirSorter(const void *a, const void *b) + +static void +free_dirent (struct dirent **p) { - const struct dirent *lhs = a, *rhs = b; + struct dirent **x; + + for (x = p; *x != NULL; x++) + free (*x); - return strcmp(lhs->d_name, rhs->d_name); + free (p); +} + +int +FcScandir (const char *dirp, + struct dirent ***namelist, + int (*filter) (const struct dirent *), + int (*compar) (const struct dirent **, const struct dirent **)); + +int +FcScandir (const char *dirp, + struct dirent ***namelist, + int (*filter) (const struct dirent *), + int (*compar) (const struct dirent **, const struct dirent **)) +{ + DIR *d; + struct dirent *dent, *p, **dlist, **dlp; + size_t lsize = 128, n = 0; + + d = opendir (dirp); + if (!d) + return -1; + + dlist = (struct dirent **) malloc (sizeof (struct dirent *) * lsize); + if (!dlist) + { + closedir (d); + errno = ENOMEM; + + return -1; + } + *dlist = NULL; + while ((dent = readdir (d))) + { + if (!filter || (filter) (dent)) + { + size_t dentlen = FcPtrToOffset (dent, dent->d_name) + strlen (dent->d_name) + 1; + dentlen = ((dentlen + ALIGNOF_VOID_P - 1) & ~(ALIGNOF_VOID_P - 1)); + p = (struct dirent *) malloc (dentlen); + memcpy (p, dent, dentlen); + if ((n + 1) >= lsize) + { + lsize += 128; + dlp = (struct dirent **) realloc (dlist, sizeof (struct dirent *) * lsize); + if (!dlp) + { + free_dirent (dlist); + closedir (d); + errno = ENOMEM; + + return -1; + } + dlist = dlp; + } + dlist[n++] = p; + dlist[n] = NULL; + } + } + closedir (d); + + qsort (dlist, n, sizeof (struct dirent *), (int (*) (const void *, const void *))compar); + + *namelist = dlist; + + return n; } -#endif static int FcDirChecksum (const FcChar8 *dir, time_t *checksum) @@ -191,7 +257,7 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum) Adler32Init (&ctx); - n = scandir ((const char *)dir, &files, + n = FcScandir ((const char *)dir, &files, #ifdef HAVE_STRUCT_DIRENT_D_TYPE &FcDirChecksumScandirFilter, #else diff --git a/fontconfig/src/fcxml.c b/fontconfig/src/fcxml.c index 15b774f00..e937c51fb 100644 --- a/fontconfig/src/fcxml.c +++ b/fontconfig/src/fcxml.c @@ -2250,7 +2250,9 @@ FcParseInclude (FcConfigParse *parse) FcChar8 *s; const FcChar8 *attr; FcBool ignore_missing = FcFalse; +#ifndef _WIN32 FcBool deprecated = FcFalse; +#endif FcChar8 *prefix = NULL, *p; static FcChar8 *userdir = NULL; static FcChar8 *userconf = NULL; @@ -2264,9 +2266,11 @@ FcParseInclude (FcConfigParse *parse) attr = FcConfigGetAttribute (parse, "ignore_missing"); if (attr && FcConfigLexBool (parse, (FcChar8 *) attr) == FcTrue) ignore_missing = FcTrue; +#ifndef _WIN32 attr = FcConfigGetAttribute (parse, "deprecated"); if (attr && FcConfigLexBool (parse, (FcChar8 *) attr) == FcTrue) deprecated = FcTrue; +#endif attr = FcConfigGetAttribute (parse, "prefix"); if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0) { diff --git a/fontconfig/src/makefile b/fontconfig/src/makefile index 49f0fddef..0a42b7cd4 100755 --- a/fontconfig/src/makefile +++ b/fontconfig/src/makefile @@ -13,6 +13,7 @@ $(OBJDIR)\fcobjshash.h: $(OBJDIR)\fcobjshash.gperf load_makefile NORELDBG=1 ..\fc-case\makefile load_makefile NORELDBG=1 ..\fc-glyphname\makefile load_makefile NORELDBG=1 ..\fc-lang\makefile +load_makefile NORELDBG=1 ..\fc-blanks\makefile CSRCS = \ fcatomic.c \ |