diff options
author | Andrew Haley <aph@redhat.com> | 2016-09-30 16:24:48 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 2016-09-30 16:24:48 +0000 |
commit | 07b78716af6a9d7c9fd1e94d9baf94a52c873947 (patch) | |
tree | 3f22b3241c513ad168c8353805614ae1249410f4 /libjava/include | |
parent | eae993948bae8b788c53772bcb9217c063716f93 (diff) | |
download | gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.zip gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.tar.gz gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.tar.bz2 |
Makefile.def: Remove libjava.
2016-09-30 Andrew Haley <aph@redhat.com>
* Makefile.def: Remove libjava.
* Makefile.tpl: Likewise.
* Makefile.in: Regenerate.
* configure.ac: Likewise.
* configure: Likewise.
* gcc/java: Remove.
* libjava: Likewise.
From-SVN: r240662
Diffstat (limited to 'libjava/include')
40 files changed, 0 insertions, 11853 deletions
diff --git a/libjava/include/Makefile.am b/libjava/include/Makefile.am deleted file mode 100644 index 696a516..0000000 --- a/libjava/include/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -## Process this file with automake to produce Makefile.in. - -AUTOMAKE_OPTIONS = foreign - -# May be used by various substitution variables. -gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) - -# autoconf2.13's target_alias -target_noncanonical = @target_noncanonical@ - -tool_include_dir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include -## The 'jni.h' here is fairly hacky, but it is simpler than trying to -## tell Classpath about our peculiar install directory. -tool_include__HEADERS = jni_md.h ../classpath/include/jawt.h \ - ../classpath/include/jawt_md.h jvmpi.h ../classpath/include/jni.h diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in deleted file mode 100644 index 67d17c6..0000000 --- a/libjava/include/Makefile.in +++ /dev/null @@ -1,634 +0,0 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = include -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/config.h.in $(tool_include__HEADERS) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \ - $(top_srcdir)/../config/acx.m4 \ - $(top_srcdir)/../config/depstand.m4 \ - $(top_srcdir)/../config/enable.m4 \ - $(top_srcdir)/../config/gxx-include-dir.m4 \ - $(top_srcdir)/../config/iconv.m4 \ - $(top_srcdir)/../config/lcmessage.m4 \ - $(top_srcdir)/../config/ld-symbolic.m4 \ - $(top_srcdir)/../config/lead-dot.m4 \ - $(top_srcdir)/../config/lib-ld.m4 \ - $(top_srcdir)/../config/lib-link.m4 \ - $(top_srcdir)/../config/lib-prefix.m4 \ - $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ - $(top_srcdir)/../config/lthostflags.m4 \ - $(top_srcdir)/../config/multi.m4 \ - $(top_srcdir)/../config/no-executables.m4 \ - $(top_srcdir)/../config/override.m4 \ - $(top_srcdir)/../config/tls.m4 \ - $(top_srcdir)/../config/unwind_ipinfo.m4 \ - $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltgcc.m4 \ - $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \ - $(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \ - $(top_srcdir)/mingwld.m4 $(top_srcdir)/pkg.m4 \ - $(top_srcdir)/shlibpath.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -CONFIG_HEADER = config.h $(top_builddir)/gcj/libgcj-config.h -CONFIG_CLEAN_FILES = platform.h java-gc.h java-threads.h java-signal.h \ - java-signal-aux.h -CONFIG_CLEAN_VPATH_FILES = -SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(tool_include_dir)" -HEADERS = $(tool_include__HEADERS) -ETAGS = etags -CTAGS = ctags -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -ANTLR_JAR = @ANTLR_JAR@ -AR = @AR@ -AS = @AS@ -ATOMICSPEC = @ATOMICSPEC@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BACKTRACESPEC = @BACKTRACESPEC@ -BUILD_VERSION = @BUILD_VERSION@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CHECKREFSPEC = @CHECKREFSPEC@ -CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPU = @CPU@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRLTDL = @DIRLTDL@ -DIVIDESPEC = @DIVIDESPEC@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECJ_BUILD_JAR = @ECJ_BUILD_JAR@ -ECJ_JAR = @ECJ_JAR@ -EGREP = @EGREP@ -EXCEPTIONSPEC = @EXCEPTIONSPEC@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GCC_FOR_ECJX = @GCC_FOR_ECJX@ -GCDEPS = @GCDEPS@ -GCINCS = @GCINCS@ -GCJ = @GCJ@ -GCJDEPMODE = @GCJDEPMODE@ -GCJFLAGS = @GCJFLAGS@ -GCJH = @GCJH@ -GCJVERSION = @GCJVERSION@ -GCJ_BIN_DIR = @GCJ_BIN_DIR@ -GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ -GCLIBS = @GCLIBS@ -GCSPEC = @GCSPEC@ -GCTESTSPEC = @GCTESTSPEC@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GREP = @GREP@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -HASH_SYNC_SPEC = @HASH_SYNC_SPEC@ -IEEESPEC = @IEEESPEC@ -INCLTDL = @INCLTDL@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTERPRETER = @INTERPRETER@ -JAR = @JAR@ -JAVA_HOME = @JAVA_HOME@ -JAVA_VERSION = @JAVA_VERSION@ -JC1GCSPEC = @JC1GCSPEC@ -JRE_BIN_DIR = @JRE_BIN_DIR@ -JRE_DIR = @JRE_DIR@ -JRE_LIB_DIR = @JRE_LIB_DIR@ -JRE_LNK = @JRE_LNK@ -JVM_JAR_DIR = @JVM_JAR_DIR@ -JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@ -JVM_ROOT_DIR = @JVM_ROOT_DIR@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LDLIBICONV = @LDLIBICONV@ -LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@ -LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@ -LIBART_CFLAGS = @LIBART_CFLAGS@ -LIBART_LIBS = @LIBART_LIBS@ -LIBDIR = @LIBDIR@ -LIBFFI = @LIBFFI@ -LIBFFIINCS = @LIBFFIINCS@ -LIBGCC_UNWIND_INCLUDE = @LIBGCC_UNWIND_INCLUDE@ -LIBGCJDEBUG = @LIBGCJDEBUG@ -LIBGCJTESTSPEC = @LIBGCJTESTSPEC@ -LIBGCJ_BC_SPEC = @LIBGCJ_BC_SPEC@ -LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@ -LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@ -LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@ -LIBGCJ_LD_EXPORT_ALL = @LIBGCJ_LD_EXPORT_ALL@ -LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@ -LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@ -LIBGCJ_SPEC = @LIBGCJ_SPEC@ -LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@ -LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@ -LIBICONV = @LIBICONV@ -LIBLTDL = @LIBLTDL@ -LIBMATHSPEC = @LIBMATHSPEC@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBSTDCXXSPEC = @LIBSTDCXXSPEC@ -LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ -LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKE = @MAKE@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OS = @OS@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PLATFORM = @PLATFORM@ -RANLIB = @RANLIB@ -SDK_BIN_DIR = @SDK_BIN_DIR@ -SDK_INCLUDE_DIR = @SDK_INCLUDE_DIR@ -SDK_LIB_DIR = @SDK_LIB_DIR@ -SDK_LNK = @SDK_LNK@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -SYSDEP_SOURCES = @SYSDEP_SOURCES@ -SYSTEMSPEC = @SYSTEMSPEC@ -SYS_ZLIBS = @SYS_ZLIBS@ -THREADCXXFLAGS = @THREADCXXFLAGS@ -THREADDEPS = @THREADDEPS@ -THREADINCS = @THREADINCS@ -THREADLDFLAGS = @THREADLDFLAGS@ -THREADLIBS = @THREADLIBS@ -THREADSPEC = @THREADSPEC@ -THREADSTARTFILESPEC = @THREADSTARTFILESPEC@ -TOOLKIT = @TOOLKIT@ -UNZIP = @UNZIP@ -VERSION = @VERSION@ -XMKMF = @XMKMF@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -ZINCS = @ZINCS@ -ZIP = @ZIP@ -ZLIBS = @ZLIBS@ -ZLIBSPEC = @ZLIBSPEC@ -ZLIBTESTSPEC = @ZLIBTESTSPEC@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_GCJ = @ac_ct_GCJ@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_libsubdir = @build_libsubdir@ -build_os = @build_os@ -build_subdir = @build_subdir@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -dbexecdir = @dbexecdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -extra_ldflags = @extra_ldflags@ -extra_ldflags_libjava = @extra_ldflags_libjava@ -gcc_suffix = @gcc_suffix@ -gcjsubdir = @gcjsubdir@ -gxx_include_dir = @gxx_include_dir@ -here = @here@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_exeext = @host_exeext@ -host_os = @host_os@ -host_subdir = @host_subdir@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libstdcxx_incdir = @libstdcxx_incdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_host_flags = @lt_host_flags@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -mkinstalldirs = @mkinstalldirs@ -multi_basedir = @multi_basedir@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -python_mod_dir = @python_mod_dir@ -python_mod_dir_expanded = @python_mod_dir_expanded@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -subdirs = @subdirs@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ - -# autoconf2.13's target_alias -target_noncanonical = @target_noncanonical@ -target_os = @target_os@ -target_subdir = @target_subdir@ -target_vendor = @target_vendor@ -toolexecdir = @toolexecdir@ -toolexeclibdir = @toolexeclibdir@ -toolexecmainlibdir = @toolexecmainlibdir@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = foreign - -# May be used by various substitution variables. -gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) -tool_include_dir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include -tool_include__HEADERS = jni_md.h ../classpath/include/jawt.h \ - ../classpath/include/jawt_md.h jvmpi.h ../classpath/include/jni.h - -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign include/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -config.h: stamp-h1 - @if test ! -f $@; then rm -f stamp-h1; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status include/config.h -$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-tool_include_HEADERS: $(tool_include__HEADERS) - @$(NORMAL_INSTALL) - @list='$(tool_include__HEADERS)'; test -n "$(tool_include_dir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(tool_include_dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(tool_include_dir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(tool_include_dir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(tool_include_dir)" || exit $$?; \ - done - -uninstall-tool_include_HEADERS: - @$(NORMAL_UNINSTALL) - @list='$(tool_include__HEADERS)'; test -n "$(tool_include_dir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(tool_include_dir)'; $(am__uninstall_files_from_dir) - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -check-am: all-am -check: check-am -all-am: Makefile $(HEADERS) config.h -installdirs: - for dir in "$(DESTDIR)$(tool_include_dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-tool_include_HEADERS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-tool_include_HEADERS - -.MAKE: all install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic distclean-hdr \ - distclean-libtool distclean-tags dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip install-tool_include_HEADERS \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-tool_include_HEADERS - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libjava/include/aix-signal.h b/libjava/include/aix-signal.h deleted file mode 100644 index 896aa8e..0000000 --- a/libjava/include/aix-signal.h +++ /dev/null @@ -1,50 +0,0 @@ -/* aix-signal.h - Catch runtime signals and turn them into exceptions, - on a AIX system. */ - -/* Copyright (C) 2008, 2011 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -/* This file is really more of a specification. The rest of the system - should be arranged so that this Just Works. */ - -#ifndef JAVA_SIGNAL_H -# define JAVA_SIGNAL_H 1 - -#include <sys/types.h> -#include <sys/signal.h> - -typedef void (* SIG_PF)(int); - -# define HANDLE_SEGV 1 -# undef HANDLE_FPE - -# define SIGNAL_HANDLER(_name) \ - static void _name (int _dummy __attribute__ ((unused))) - -# define MAKE_THROW_FRAME(_exception) - -# define INIT_SEGV \ - do { \ - struct sigaction sa; \ - sa.sa_handler = catch_segv; \ - sigemptyset (&sa.sa_mask); \ - sa.sa_flags = SA_NODEFER; \ - sigaction (SIGBUS, &sa, NULL); \ - sigaction (SIGSEGV, &sa, NULL); \ - } while (0) - -# define INIT_FPE \ - do { \ - struct sigaction sa; \ - sa.sa_handler = catch_fpe; \ - sigemptyset (&sa.sa_mask); \ - sa.sa_flags = SA_NODEFER; \ - sigaction (SIGFPE, &sa, NULL); \ - } while (0) - -#endif /* JAVA_SIGNAL_H */ diff --git a/libjava/include/boehm-gc.h b/libjava/include/boehm-gc.h deleted file mode 100644 index ed8ac6a..0000000 --- a/libjava/include/boehm-gc.h +++ /dev/null @@ -1,98 +0,0 @@ -// -*- c++ -*- -// boehm-gc.h - Defines for Boehm collector. - -/* Copyright (C) 1998, 1999, 2002, 2004, 2006, 2007 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JV_BOEHM_GC__ -#define __JV_BOEHM_GC__ - -#define JV_MARKOBJ_DECL void *::_Jv_MarkObj (void *, void *, void *, void *) -#define JV_MARKARRAY_DECL void *::_Jv_MarkArray (void *, void *, void *, void *) - -extern "C" -{ - void *_Jv_MarkObj (void *, void *, void *, void *); - void *_Jv_MarkArray (void *, void *, void *, void *); - void _Jv_RegisterLibForGc (const void *); -} - -// Enough stuff to inline _Jv_AllocObj. Ugly. -#include <gcj/javaprims.h> -#include <java/lang/Class.h> -#include <string.h> - -#include <gc_ext_config.h> // for THREAD_LOCAL_ALLOC - -extern "C" void * GC_gcj_malloc(size_t, void *); -extern "C" void * GC_malloc_atomic(size_t); -#ifdef THREAD_LOCAL_ALLOC -extern "C" void * GC_local_gcj_malloc(size_t, void *); -extern "C" void * GC_local_malloc_atomic(size_t); -#endif - -#ifndef LIBGCJ_GC_DEBUG - -inline void * -_Jv_AllocObj (jsize size, jclass klass) -{ - // This should call GC_GCJ_MALLOC, but that would involve - // including gc.h. -#ifdef THREAD_LOCAL_ALLOC - return GC_local_gcj_malloc (size, klass->vtable); -#else - return GC_gcj_malloc (size, klass->vtable); -#endif -} - -inline void * -_Jv_AllocPtrFreeObj (jsize size, jclass klass) -{ -#ifdef JV_HASH_SYNCHRONIZATION -# ifdef THREAD_LOCAL_ALLOC - void * obj = GC_local_malloc_atomic(size); -# else - void * obj = GC_malloc_atomic(size); -# endif - *((_Jv_VTable **) obj) = klass->vtable; -#else -# ifdef THREAD_LOCAL_ALLOC - void * obj = GC_local_gcj_malloc(size, klass->vtable); -# else - void * obj = GC_gcj_malloc(size, klass->vtable); -# endif -#endif - return obj; -} - -#else /* LIBGCJ_GC_DEBUG */ - -void * -_Jv_AllocObj (jsize size, jclass klass); - -void * -_Jv_AllocPtrFreeObj (jsize size, jclass klass); - -#endif /* LIBGCJ_GC_DEBUG */ - -void _Jv_GCAttachThread (); - -void _Jv_GCDetachThread (); - -// _Jv_AllocBytes (jsize size) should go here, too. But clients don't -// usually include this header. - -// Suspend the given thread. This includes suspending the calling thread. -extern "C" void _Jv_SuspendThread (_Jv_Thread_t *); - -// Resume a suspended thread. -extern "C" void _Jv_ResumeThread (_Jv_Thread_t *); - -// Is the given thread suspended? -extern "C" int _Jv_IsThreadSuspended (_Jv_Thread_t *); -#endif /* __JV_BOEHM_GC__ */ diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in deleted file mode 100644 index ea5afe2..0000000 --- a/libjava/include/config.h.in +++ /dev/null @@ -1,473 +0,0 @@ -/* include/config.h.in. Generated from configure.ac by autoheader. */ - -/* Define if building universal (internal helper macro) */ -#undef AC_APPLE_UNIVERSAL_BUILD - -/* Name of default AWT toolkit */ -#undef AWT_TOOLKIT - -/* Define if system properties shouldn't be read from - getenv("GCJ_PROPERTIES"). */ -#undef DISABLE_GETENV_PROPERTIES - -/* Define if java.net native functions should be stubbed out. */ -#undef DISABLE_JAVA_NET - -/* Define if we should ignore arguments to main(). */ -#undef DISABLE_MAIN_ARGS - -/* Define if you're running eCos. */ -#undef ECOS - -/* Define if you are using JVMPI. */ -#undef ENABLE_JVMPI - -/* Short GCJ version ID */ -#undef GCJVERSION - -/* Define if gethostbyaddr_r returns 'int'. */ -#undef GETHOSTBYADDR_R_RETURNS_INT - -/* Define if gethostbyname_r returns 'int'. */ -#undef GETHOSTBYNAME_R_RETURNS_INT - -/* Define to 1 if you have the `access' function. */ -#undef HAVE_ACCESS - -/* Define to 1 if you have the <arpa/inet.h> header file. */ -#undef HAVE_ARPA_INET_H - -/* Define if Boehm GC in use. */ -#undef HAVE_BOEHM_GC - -/* Define if you have u_int32_t */ -#undef HAVE_BSD_INT32_DEFINED - -/* Define to 1 if the target assembler supports thread-local storage. */ -#undef HAVE_CC_TLS - -/* Define to 1 if you have the `chmod' function. */ -#undef HAVE_CHMOD - -/* Define if you have clock_gettime() */ -#undef HAVE_CLOCK_GETTIME - -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. - */ -#undef HAVE_DECL_TZNAME - -/* Define to 1 if you have the <dirent.h> header file. */ -#undef HAVE_DIRENT_H - -/* Define if you have dladdr() */ -#undef HAVE_DLADDR - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#undef HAVE_DLFCN_H - -/* Define if dlopen is available */ -#undef HAVE_DLOPEN - -/* Define to 1 if you have the <fcntl.h> header file. */ -#undef HAVE_FCNTL_H - -/* Define to 1 if you have the `fstat' function. */ -#undef HAVE_FSTAT - -/* Define to 1 if you have the `fsync' function. */ -#undef HAVE_FSYNC - -/* Define to 1 if you have the `ftime' function. */ -#undef HAVE_FTIME - -/* Define to 1 if you have the `ftruncate' function. */ -#undef HAVE_FTRUNCATE - -/* Define to 1 if you have the `getcwd' function. */ -#undef HAVE_GETCWD - -/* Define if you have the 'gethostbyaddr_r' function. */ -#undef HAVE_GETHOSTBYADDR_R - -/* Define if you have the 'gethostbyname_r' function. */ -#undef HAVE_GETHOSTBYNAME_R - -/* Define if you have the 'gethostname' function. */ -#undef HAVE_GETHOSTNAME - -/* Define if gethostname is declared in <unistd.h>. */ -#undef HAVE_GETHOSTNAME_DECL - -/* Define to 1 if you have the `getifaddrs' function. */ -#undef HAVE_GETIFADDRS - -/* Define if _Unwind_GetIPInfo is available. */ -#undef HAVE_GETIPINFO - -/* Define to 1 if you have the `getpwuid_r' function. */ -#undef HAVE_GETPWUID_R - -/* Define to 1 if you have the `getrlimit' function. */ -#undef HAVE_GETRLIMIT - -/* Define to 1 if you have the `gettimeofday' function. */ -#undef HAVE_GETTIMEOFDAY - -/* Define if you have the 'gmtime_r' function */ -#undef HAVE_GMTIME_R - -/* Define if you have the iconv() function. */ -#undef HAVE_ICONV - -/* Define to 1 if you have the <ifaddrs.h> header file. */ -#undef HAVE_IFADDRS_H - -/* Define if inet6 structures are defined in netinet/in.h. */ -#undef HAVE_INET6 - -/* Define to 1 if you have the `inet_addr' function. */ -#undef HAVE_INET_ADDR - -/* Define to 1 if you have the `inet_aton' function. */ -#undef HAVE_INET_ATON - -/* Define to 1 if you have the `inet_ntoa' function. */ -#undef HAVE_INET_NTOA - -/* Define to 1 if you have the `inet_pton' function. */ -#undef HAVE_INET_PTON - -/* Define if you have int32_t and uint32_t. */ -#undef HAVE_INT32_DEFINED - -/* Define if <inttypes.h> is available */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if 'in_addr_t' is defined in sys/types.h or netinet/in.h. */ -#undef HAVE_IN_ADDR_T - -/* Define to 1 if you have the <langinfo.h> header file. */ -#undef HAVE_LANGINFO_H - -/* Define if your <locale.h> file defines LC_MESSAGES. */ -#undef HAVE_LC_MESSAGES - -/* Define to 1 if you have the <locale.h> header file. */ -#undef HAVE_LOCALE_H - -/* Define is you have 'localtime' in <time.h> */ -#undef HAVE_LOCALTIME - -/* Define to 1 if you have the `localtime_r' function. */ -#undef HAVE_LOCALTIME_R - -/* Define to 1 if you have the `lstat' function. */ -#undef HAVE_LSTAT - -/* Define to 1 if you have the <magic.h> header file. */ -#undef HAVE_MAGIC_H - -/* Define if magic.h declares magic_t */ -#undef HAVE_MAGIC_T - -/* Define to 1 if you have the `memcpy' function. */ -#undef HAVE_MEMCPY - -/* Define to 1 if you have the `memmove' function. */ -#undef HAVE_MEMMOVE - -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the `mkdir' function. */ -#undef HAVE_MKDIR - -/* Define to 1 if you have the `mmap' function. */ -#undef HAVE_MMAP - -/* Define to 1 if you have the <netdb.h> header file. */ -#undef HAVE_NETDB_H - -/* Define to 1 if you have the <netinet/in.h> header file. */ -#undef HAVE_NETINET_IN_H - -/* Define to 1 if you have the <net/if.h> header file. */ -#undef HAVE_NET_IF_H - -/* Define to 1 if you have the `nl_langinfo' function. */ -#undef HAVE_NL_LANGINFO - -/* Define to 1 if you have the `open' function. */ -#undef HAVE_OPEN - -/* Define to 1 if you have the `opendir' function. */ -#undef HAVE_OPENDIR - -/* Define if you have /proc/self/exe */ -#undef HAVE_PROC_SELF_EXE - -/* Define if you have /proc/self/maps */ -#undef HAVE_PROC_SELF_MAPS - -/* Define if using POSIX threads that have the mutexattr functions. */ -#undef HAVE_PTHREAD_MUTEXATTR_INIT - -/* Define to 1 if you have the <pwd.h> header file. */ -#undef HAVE_PWD_H - -/* Define to 1 if you have the `readlink' function. */ -#undef HAVE_READLINK - -/* Define to 1 if you have the `rename' function. */ -#undef HAVE_RENAME - -/* Define to 1 if you have the `rmdir' function. */ -#undef HAVE_RMDIR - -/* Define to 1 if you have the `sched_yield' function. */ -#undef HAVE_SCHED_YIELD - -/* Define to 1 if you have the `select' function. */ -#undef HAVE_SELECT - -/* Define to 1 if you have the `setlocale' function. */ -#undef HAVE_SETLOCALE - -/* Define to 1 if you have the `sigaction' function. */ -#undef HAVE_SIGACTION - -/* Define to 1 if you have the `sleep' function. */ -#undef HAVE_SLEEP - -/* Define it socklen_t typedef is in sys/socket.h. */ -#undef HAVE_SOCKLEN_T - -/* Define to 1 if you have the `stat' function. */ -#undef HAVE_STAT - -/* Define to 1 if you have the <stdint.h> header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the `strerror_r' function. */ -#undef HAVE_STRERROR_R - -/* Define to 1 if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the <string.h> header file. */ -#undef HAVE_STRING_H - -/* Define if struct hostent_data is defined in netdb.h */ -#undef HAVE_STRUCT_HOSTENT_DATA - -/* Define if struct ipv6_mreq is defined in netinet/in.h. */ -#undef HAVE_STRUCT_IPV6_MREQ - -/* Define if struct ip_mreq is defined in netinet/in.h. */ -#undef HAVE_STRUCT_IP_MREQ - -/* Define to 1 if `struct tm' is a member of `tm_zone'. */ -#undef HAVE_STRUCT_TM_TM_ZONE - -/* Define to 1 if you have the <sys/config.h> header file. */ -#undef HAVE_SYS_CONFIG_H - -/* Define to 1 if you have the <sys/filio.h> header file. */ -#undef HAVE_SYS_FILIO_H - -/* Define to 1 if you have the <sys/ioctl.h> header file. */ -#undef HAVE_SYS_IOCTL_H - -/* Define to 1 if you have the <sys/resource.h> header file. */ -#undef HAVE_SYS_RESOURCE_H - -/* Define to 1 if you have the <sys/rw_lock.h> header file. */ -#undef HAVE_SYS_RW_LOCK_H - -/* Define to 1 if you have the <sys/select.h> header file. */ -#undef HAVE_SYS_SELECT_H - -/* Define to 1 if you have the <sys/socket.h> header file. */ -#undef HAVE_SYS_SOCKET_H - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the <sys/time.h> header file. */ -#undef HAVE_SYS_TIME_H - -/* Define to 1 if you have the <sys/types.h> header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the `time' function. */ -#undef HAVE_TIME - -/* Define if global 'timezone' exists. */ -#undef HAVE_TIMEZONE - -/* Define to 1 if the target supports thread-local storage. */ -#undef HAVE_TLS - -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ -#undef HAVE_TM_ZONE - -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ -#undef HAVE_TZNAME - -/* Define to 1 if you have the `uname' function. */ -#undef HAVE_UNAME - -/* Define if your platform has the global _timezone variable. */ -#undef HAVE_UNDERSCORE_TIMEZONE - -/* Define to 1 if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 if you have the `unlink' function. */ -#undef HAVE_UNLINK - -/* Define to 1 if you have the `usleep' function. */ -#undef HAVE_USLEEP - -/* Define if usleep is declared in <unistd.h>. */ -#undef HAVE_USLEEP_DECL - -/* Define to 1 if you have the `utime' function. */ -#undef HAVE_UTIME - -/* Define to 1 if you have the file `/proc/self/exe'. */ -#undef HAVE__PROC_SELF_EXE - -/* Define to 1 if you have the file `/proc/self/maps'. */ -#undef HAVE__PROC_SELF_MAPS - -/* Define as const if the declaration of iconv() needs const. */ -#undef ICONV_CONST - -/* Define if you want a bytecode interpreter. */ -#undef INTERPRETER - -/* API compatibility version string */ -#undef JV_API_VERSION - -/* Define if hash synchronization is in use */ -#undef JV_HASH_SYNCHRONIZATION - -/* Define if <inttypes.h> is available */ -#undef JV_HAVE_INTTYPES_H - -/* Indicate that linker is not able to 8-byte align static data */ -#undef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS - -/* Compatibility version string */ -#undef JV_VERSION - -/* Define if we want to use debug calls into the garbage collector. */ -#undef LIBGCJ_GC_DEBUG - -/* Installation prefix */ -#undef LIBGCJ_PREFIX - -/* Define if using POSIX threads on Linux. */ -#undef LINUX_THREADS - -/* Define to the name of the environment variable that determines the dynamic - library search path. */ -#undef LTDL_SHLIBPATH_VAR - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#undef LT_OBJDIR - -/* Define if MinGW libgcj uses the Windows UNICODE OS API. */ -#undef MINGW_LIBGCJ_UNICODE - -/* Define if getuid() and friends are missing. */ -#undef NO_GETUID - -/* Define to 1 if your C compiler doesn't accept -c and -o together. */ -#undef NO_MINUS_C_MINUS_O - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define if pthread_mutex_t has m_count member. */ -#undef PTHREAD_MUTEX_HAVE_M_COUNT - -/* Define if pthread_mutex_t has __m_count member. */ -#undef PTHREAD_MUTEX_HAVE___M_COUNT - -/* The size of `void *', as computed by sizeof. */ -#undef SIZEOF_VOID_P - -/* Define if if the synchronization code should try to avoid pthread_self - calls by caching thread IDs in a hashtable. */ -#undef SLOW_PTHREAD_SELF - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define if struct tm has tm_gmtoff field. */ -#undef STRUCT_TM_HAS_GMTOFF - -/* Define to 1 if your <sys/time.h> declares `struct tm'. */ -#undef TM_IN_SYS_TIME - -/* Define if we're to use libffi. */ -#undef USE_LIBFFI - -/* Define if libltdl is in use. */ -#undef USE_LTDL - -/* Version number of package */ -#undef VERSION - -/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -# undef WORDS_BIGENDIAN -# endif -#endif - -/* Define to 1 if the X Window System is missing or not being used. */ -#undef X_DISPLAY_MISSING - -/* Required define if using POSIX threads */ -#undef _POSIX_PTHREAD_SEMANTICS - -/* Required define if using POSIX threads */ -#undef _REENTRANT - -/* Define this if you want runtime debugging enabled. */ -#undef __GCJ_DEBUG - -/* Define to `int' if <sys/types.h> does not define. */ -#undef ssize_t diff --git a/libjava/include/darwin-signal.h b/libjava/include/darwin-signal.h deleted file mode 100644 index 5003e21..0000000 --- a/libjava/include/darwin-signal.h +++ /dev/null @@ -1,51 +0,0 @@ -/* darwin-signal.h - Catch runtime signals and turn them into exceptions, - on a Darwin system. */ - -/* Copyright (C) 2004 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -/* This file is really more of a specification. The rest of the system - should be arranged so that this Just Works. */ - -#ifndef JAVA_SIGNAL_H -# define JAVA_SIGNAL_H 1 - -#include <sys/types.h> -#include <stdio.h> -#include <signal.h> - -typedef void (* SIG_PF)(int); - -# define HANDLE_SEGV 1 -# undef HANDLE_FPE - -# define SIGNAL_HANDLER(_name) \ - static void _name (int _dummy __attribute__ ((unused))) - -# define MAKE_THROW_FRAME(_exception) - -# define INIT_SEGV \ - do { \ - struct sigaction sa; \ - sa.sa_handler = catch_segv; \ - sigemptyset (&sa.sa_mask); \ - sa.sa_flags = SA_NODEFER; \ - sigaction (SIGBUS, &sa, NULL); \ - sigaction (SIGSEGV, &sa, NULL); \ - } while (0) - -# define INIT_FPE \ - do { \ - struct sigaction sa; \ - sa.sa_handler = catch_fpe; \ - sigemptyset (&sa.sa_mask); \ - sa.sa_flags = SA_NODEFER; \ - sigaction (SIGFPE, &sa, NULL); \ - } while (0) - -#endif /* JAVA_SIGNAL_H */ diff --git a/libjava/include/default-signal.h b/libjava/include/default-signal.h deleted file mode 100644 index 629acfb..0000000 --- a/libjava/include/default-signal.h +++ /dev/null @@ -1,51 +0,0 @@ -// default-signal.h - Catch runtime signals and turn them into exceptions. - -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#ifdef __USING_SJLJ_EXCEPTIONS__ - -#define HANDLE_SEGV 1 -#define HANDLE_FPE 1 - -#include <signal.h> - -#define SIGNAL_HANDLER(_name) \ -static void _name (int _dummy __attribute__ ((__unused__))) - -#define INIT_SEGV \ -do \ - { \ - signal (SIGSEGV, catch_segv); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - signal (SIGFPE, catch_fpe); \ - } \ -while (0) - -#define MAKE_THROW_FRAME(_exception) do {} while (0) - -#else /* __USING_SJLJ_EXCEPTIONS__ */ - -#undef HANDLE_SEGV -#undef HANDLE_FPE - -#define INIT_SEGV do {} while (0) -#define INIT_FPE do {} while (0) - -#endif /* __USING_SJLJ_EXCEPTIONS__ */ - -#endif /* JAVA_SIGNAL_H */ - diff --git a/libjava/include/dwarf2-signal.h b/libjava/include/dwarf2-signal.h deleted file mode 100644 index ec5929c..0000000 --- a/libjava/include/dwarf2-signal.h +++ /dev/null @@ -1,190 +0,0 @@ -// dwarf2-signal.h - Catch runtime signals and turn them into exceptions. - -/* Copyright (C) 2000, 2001, 2009, 2011, 2014 Free Software Foundation - - This file is part of libgcj. - - Use this file for a target for which the dwarf2 unwinder in libgcc - can unwind through signal handlers. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#include <signal.h> -#include <sys/syscall.h> - -#define HANDLE_SEGV 1 -#undef HANDLE_FPE - -#define SIGNAL_HANDLER(_name) \ -static void _Jv_##_name (int, siginfo_t *, \ - void *_p __attribute__ ((__unused__))) - -// Unwind the stack to the point at which the signal was generated and -// then throw an exception. With the dwarf2 unwinder we don't usually -// need to do anything, with some minor exceptions. - -#ifdef __ia64__ - -#define MAKE_THROW_FRAME(_exception) \ -do \ -{ \ - /* IA-64 either leaves PC pointing at a faulting instruction or the \ - following instruction, depending on the signal. SEGV always does \ - the former, so we adjust the saved PC to point to the following \ - instruction; this is what the handler in libgcc expects. */ \ - /* Note that we are lying to the unwinder here, which expects the \ - faulting pc, not pc+1. But we claim the unwind information can't \ - be changed by such a ld or st instruction, so it doesn't matter. */ \ - struct sigcontext *_sc = (struct sigcontext *)_p; \ - _sc->sc_ip++; \ -} \ -while (0) - -#else -#define MAKE_THROW_FRAME(_exception) -#endif - -#if defined(__sparc__) -#if defined(__arch64__) -extern "C" { - static void __rt_sigreturn_stub(void) - { - __asm__("mov %0, %%g1\n\t" - "ta 0x6d\n\t" - : /* no outputs */ - : "i" (__NR_rt_sigreturn)); - } - struct kernel_sigaction - { - void (*k_sa_sigaction)(int,siginfo_t *,void *); - unsigned long k_sa_flags; - void (*k_sa_restorer)(void); - sigset_t k_sa_mask; - }; -} -#define INIT_SEGV \ -do \ - { \ - struct kernel_sigaction act; \ - unsigned long stub = ((unsigned long)&__rt_sigreturn_stub); \ - act.k_sa_sigaction = _Jv_catch_segv; \ - sigemptyset (&act.k_sa_mask); \ - act.k_sa_flags = SA_SIGINFO; \ - act.k_sa_restorer = NULL; \ - syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, \ - stub - 8, _NSIG / 8); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct kernel_sigaction act; \ - unsigned long stub = ((unsigned long)&__rt_sigreturn_stub); \ - act.k_sa_sigaction = _Jv_catch_fpe; \ - sigemptyset (&act.k_sa_mask); \ - act.k_sa_flags = SA_SIGINFO; \ - act.k_sa_restorer = NULL; \ - syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, \ - stub - 8, _NSIG / 8); \ - } \ -while (0) -#else /* __arch64__ */ - -extern "C" { - struct kernel_sigaction - { - void (*k_sa_sigaction)(int,siginfo_t *,void *); - unsigned long k_sa_mask, k_sa_flags; - void (*k_sa_restorer)(void); - }; -} - -#define INIT_SEGV \ -do \ - { \ - struct kernel_sigaction act; \ - act.k_sa_sigaction = _Jv_catch_segv; \ - act.k_sa_mask = 0; \ - act.k_sa_flags = SA_SIGINFO; \ - act.k_sa_restorer = NULL; \ - syscall (SYS_sigaction, -SIGSEGV, &act, NULL); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct kernel_sigaction act; \ - act.k_sa_sigaction = _Jv_catch_fpe; \ - act.k_sa_mask = 0; \ - act.k_sa_flags = SA_SIGINFO; \ - act.k_sa_restorer = NULL; \ - syscall (SYS_sigaction, -SIGFPE, &act, NULL); \ - } \ -while (0) -#endif -#elif !defined(__ia64__) -#define INIT_SEGV \ -do \ - { \ - struct sigaction act; \ - act.sa_sigaction = _Jv_catch_segv; \ - sigemptyset (&act.sa_mask); \ - act.sa_flags = SA_SIGINFO; \ - syscall (SYS_sigaction, SIGSEGV, &act, NULL); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct sigaction act; \ - act.sa_sigaction = _Jv_catch_fpe; \ - sigemptyset (&act.sa_mask); \ - act.sa_flags = SA_SIGINFO; \ - syscall (SYS_sigaction, SIGFPE, &act, NULL); \ - } \ -while (0) - -/* We use syscall(SYS_sigaction) in INIT_SEGV and INIT_FPE instead of - * sigaction() because on some systems the pthreads wrappers for - * signal handlers are not compiled with unwind information, so it's - * not possible to unwind through them. This is a problem that will - * go away once all systems have pthreads libraries that are - * compiled with full unwind info. */ - -#else /* __ia64__ */ - -// On IA64, unwind information is mandatory, so we can unwind -// correctly through glibc frames. Thus we call the ordinary -// sigaction. - -#define INIT_SEGV \ -do \ - { \ - struct sigaction act; \ - act.sa_sigaction = _Jv_catch_segv; \ - sigemptyset (&act.sa_mask); \ - act.sa_flags = SA_SIGINFO; \ - sigaction (SIGSEGV, &act, NULL); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct sigaction act; \ - act.sa_sigaction = _Jv_catch_fpe; \ - sigemptyset (&act.sa_mask); \ - act.sa_flags = SA_SIGINFO; \ - sigaction (SIGFPE, &act, NULL); \ - } \ -while (0) -#endif /* __ia64__ || __sparc__ */ -#endif /* JAVA_SIGNAL_H */ diff --git a/libjava/include/execution.h b/libjava/include/execution.h deleted file mode 100644 index c48b2fc..0000000 --- a/libjava/include/execution.h +++ /dev/null @@ -1,276 +0,0 @@ -// execution.h - Execution engines. -*- c++ -*- - -/* Copyright (C) 2004, 2006, 2007 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JAVA_EXECUTION_H__ -#define __JAVA_EXECUTION_H__ - -// This represents one execution engine. Note that we use function -// pointers and not virtual methods to avoid calls to -// __cxa_call_unexpected and the like. -struct _Jv_ExecutionEngine -{ - public: - - void (*unregister) (jclass); - // FIXME: probably should handle this elsewhere, see how - // interpreter does it. - bool (*need_resolve_string_fields) (); - void (*verify) (jclass); - void (*allocate_static_fields) (jclass, int, int); - void (*allocate_field_initializers) (jclass); - void (*create_ncode) (jclass); - _Jv_ResolvedMethod *(*resolve_method) (_Jv_Method *, jclass, - jboolean); - void (*post_miranda_hook) (jclass); - _Jv_ClosureList **(*get_closure_list) (jclass); -}; - -// This handles gcj-compiled code except that compiled with -// -findirect-classes. -struct _Jv_CompiledEngine : public _Jv_ExecutionEngine -{ - public: - - static void do_unregister (jclass) - { - } - - static bool do_need_resolve_string_fields () - { - return true; - } - - static void do_verify (jclass klass) - { - _Jv_Linker::verify_type_assertions (klass); - } - - static _Jv_ResolvedMethod *do_resolve_method (_Jv_Method *, jclass, - jboolean) - { - return NULL; - } - - static void do_allocate_static_fields (jclass, - int, - int) - { - } - - static void do_allocate_field_initializers (jclass) - { - } - - static void do_create_ncode (jclass) - { - // Not needed. - } - - static void do_post_miranda_hook (jclass) - { - // Not needed. - } - - static _Jv_ClosureList **do_get_closure_list (jclass) - { - return NULL; - } - - _Jv_CompiledEngine () - { - unregister = do_unregister; - need_resolve_string_fields = do_need_resolve_string_fields; - verify = do_verify; - allocate_static_fields = do_allocate_static_fields; - allocate_field_initializers = do_allocate_field_initializers; - create_ncode = do_create_ncode; - resolve_method = do_resolve_method; - post_miranda_hook = do_post_miranda_hook; - get_closure_list = do_get_closure_list; - } - - // These operators make it so we don't have to link in libstdc++. - void *operator new (size_t bytes) - { - return _Jv_Malloc(bytes); - } - - void operator delete (void *mem) - { - _Jv_Free(mem); - } -}; - -class _Jv_IndirectCompiledClass -{ -public: - void **field_initializers; - _Jv_ClosureList **closures; -}; - -// This handles gcj-compiled code compiled with -findirect-classes. -struct _Jv_IndirectCompiledEngine : public _Jv_CompiledEngine -{ - _Jv_IndirectCompiledEngine () : _Jv_CompiledEngine () - { - allocate_static_fields = do_allocate_static_fields; - allocate_field_initializers = do_allocate_field_initializers; - get_closure_list = do_get_closure_list; - } - - static _Jv_IndirectCompiledClass *get_aux_info (jclass klass) - { - _Jv_IndirectCompiledClass *aux = - (_Jv_IndirectCompiledClass*)klass->aux_info; - if (!aux) - { - aux = (_Jv_IndirectCompiledClass*) - _Jv_AllocRawObj (sizeof (_Jv_IndirectCompiledClass)); - klass->aux_info = aux; - } - - return aux; - } - - static void do_allocate_field_initializers (jclass klass) - { - _Jv_IndirectCompiledClass *aux = get_aux_info (klass); - if (!aux) - { - aux = (_Jv_IndirectCompiledClass*) - _Jv_AllocRawObj (sizeof (_Jv_IndirectCompiledClass)); - klass->aux_info = aux; - } - - aux->field_initializers = (void **)_Jv_Malloc (klass->field_count - * sizeof (void*)); - - for (int i = 0; i < klass->field_count; i++) - { - _Jv_Field *field = &klass->fields[i]; - if (field->flags & java::lang::reflect::Modifier::STATIC) - { - aux->field_initializers[i] = field->u.addr; - field->u.addr = NULL; - } - } - } - - static void do_allocate_static_fields (jclass klass, - int pointer_size, - int other_size) - { - // Splitting the allocations here lets us scan reference fields - // and avoid scanning non-reference fields. - char *reference_fields = (char *) _Jv_AllocRawObj (pointer_size); - char *non_reference_fields = (char *) _Jv_AllocBytes (other_size); - - _Jv_IndirectCompiledClass *aux - = (_Jv_IndirectCompiledClass*)klass->aux_info; - - for (int i = 0; i < klass->field_count; i++) - { - _Jv_Field *field = &klass->fields[i]; - - if ((field->flags & java::lang::reflect::Modifier::STATIC) == 0) - continue; - - char *base = field->isRef() ? reference_fields : non_reference_fields; - field->u.addr = base + field->u.boffset; - - if (aux->field_initializers[i]) - { - int field_size; - if (! field->isRef ()) - field_size = field->type->size (); - else - field_size = sizeof (jobject); - - memcpy (field->u.addr, aux->field_initializers[i], field_size); - } - } - _Jv_Free (aux->field_initializers); - } - -#ifdef INTERPRETER - static _Jv_ClosureList **do_get_closure_list (jclass klass) - { - _Jv_IndirectCompiledClass *aux = get_aux_info (klass); - - if (!aux->closures) - aux->closures = _Jv_ClosureListFinalizer (); - - return aux->closures; - } -#endif -}; - -#ifdef INTERPRETER - -// This handles interpreted code. -class _Jv_InterpreterEngine : public _Jv_ExecutionEngine -{ - public: - - static void do_verify (jclass); - static void do_allocate_static_fields (jclass, int, int); - static void do_create_ncode (jclass); - static _Jv_ResolvedMethod *do_resolve_method (_Jv_Method *, jclass, - jboolean); - - static bool do_need_resolve_string_fields () - { - return false; - } - - static void do_unregister(jclass klass) - { - _Jv_UnregisterClass(klass); - } - - static void do_allocate_field_initializers (jclass) - { - } - - static void do_post_miranda_hook (jclass); - - static _Jv_ClosureList **do_get_closure_list (jclass klass); - - _Jv_InterpreterEngine () - { - unregister = do_unregister; - need_resolve_string_fields = do_need_resolve_string_fields; - verify = do_verify; - allocate_static_fields = do_allocate_static_fields; - allocate_field_initializers = do_allocate_field_initializers; - create_ncode = do_create_ncode; - resolve_method = do_resolve_method; - post_miranda_hook = do_post_miranda_hook; - get_closure_list = do_get_closure_list; - } - - // These operators make it so we don't have to link in libstdc++. - void *operator new (size_t bytes) - { - return _Jv_Malloc(bytes); - } - - void operator delete (void *mem) - { - _Jv_Free(mem); - } -}; - -extern _Jv_InterpreterEngine _Jv_soleInterpreterEngine; -#endif // INTERPRETER - -extern _Jv_CompiledEngine _Jv_soleCompiledEngine; -extern _Jv_IndirectCompiledEngine _Jv_soleIndirectCompiledEngine; -#endif // __JAVA_EXECUTION_H__ diff --git a/libjava/include/freebsd-signal.h b/libjava/include/freebsd-signal.h deleted file mode 100644 index c4f7e99..0000000 --- a/libjava/include/freebsd-signal.h +++ /dev/null @@ -1,48 +0,0 @@ -/* freebsd-signal.h - Catch runtime signals and turn them into exceptions, - on a FreeBSD system. */ - -/* Copyright (C) 2015 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -/* This file is really more of a specification. The rest of the system - should be arranged so that this Just Works. */ - -#ifndef JAVA_SIGNAL_H -# define JAVA_SIGNAL_H 1 - -#include <sys/types.h> -#include <sys/signal.h> - -# define HANDLE_SEGV 1 -# define HANDLE_FPE 1 - -# define SIGNAL_HANDLER(_name) \ - static void _name (int _dummy __attribute__ ((unused))) - -# define MAKE_THROW_FRAME(_exception) - -# define INIT_SEGV \ - do { \ - struct sigaction sa; \ - sa.sa_handler = catch_segv; \ - sigemptyset (&sa.sa_mask); \ - sa.sa_flags = SA_NODEFER; \ - sigaction (SIGBUS, &sa, NULL); \ - sigaction (SIGSEGV, &sa, NULL); \ - } while (0) - -# define INIT_FPE \ - do { \ - struct sigaction sa; \ - sa.sa_handler = catch_fpe; \ - sigemptyset (&sa.sa_mask); \ - sa.sa_flags = SA_NODEFER; \ - sigaction (SIGFPE, &sa, NULL); \ - } while (0) - -#endif /* JAVA_SIGNAL_H */ diff --git a/libjava/include/hppa-signal.h b/libjava/include/hppa-signal.h deleted file mode 100644 index 116a62e..0000000 --- a/libjava/include/hppa-signal.h +++ /dev/null @@ -1,49 +0,0 @@ -/* hppa-signal.h - Catch runtime signals and turn them into exceptions, - on a HP-UX 11 PA system. */ - -/* Copyright (C) 2006, 2009 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#include <signal.h> - -#define HANDLE_SEGV 1 -#define HANDLE_FPE 1 - -#define SIGNAL_HANDLER(_name) \ -static void _name (int _dummy __attribute__ ((unused)), \ - siginfo_t *_info __attribute__ ((__unused__)), \ - void *arg __attribute__ ((__unused__))) - -#define MAKE_THROW_FRAME(_exception) - -#define INIT_SEGV \ -do \ - { \ - struct sigaction sa; \ - sa.sa_sigaction = catch_segv; \ - sigemptyset (&sa.sa_mask); \ - sa.sa_flags = SA_SIGINFO | SA_NODEFER; \ - sigaction (SIGSEGV, &sa, NULL); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct sigaction sa; \ - sa.sa_sigaction = catch_fpe; \ - sigemptyset (&sa.sa_mask); \ - sa.sa_flags = SA_SIGINFO | SA_NODEFER; \ - sigaction (SIGFPE, &sa, NULL); \ - } \ -while (0) - -#endif /* JAVA_SIGNAL_H */ diff --git a/libjava/include/i386-signal.h b/libjava/include/i386-signal.h deleted file mode 100644 index c2409b0..0000000 --- a/libjava/include/i386-signal.h +++ /dev/null @@ -1,178 +0,0 @@ -// i386-signal.h - Catch runtime signals and turn them into exceptions -// on an i386 based Linux system. - -/* Copyright (C) 1998, 1999, 2001, 2002, 2006, 2007, 2011 - Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - - -#ifdef __i386__ - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#include <signal.h> -#include <sys/syscall.h> - -#define HANDLE_SEGV 1 -#define HANDLE_FPE 1 - -#define SIGNAL_HANDLER(_name) \ -static void _Jv_##_name (int, siginfo_t *, \ - void *_p __attribute__ ((__unused__))) - -#define HANDLE_DIVIDE_OVERFLOW \ -do \ -{ \ - struct ucontext *_uc = (struct ucontext *)_p; \ - gregset_t &_gregs = _uc->uc_mcontext.gregs; \ - unsigned char *_eip = (unsigned char *)_gregs[REG_EIP]; \ - \ - /* According to the JVM spec, "if the dividend is the negative \ - * integer of largest possible magnitude for the type and the \ - * divisor is -1, then overflow occurs and the result is equal to \ - * the dividend. Despite the overflow, no exception occurs". \ - \ - * We handle this by inspecting the instruction which generated the \ - * signal and advancing ip to point to the following instruction. \ - * As the instructions are variable length it is necessary to do a \ - * little calculation to figure out where the following instruction \ - * actually is. \ - \ - */ \ - \ - /* Detect a signed division of Integer.MIN_VALUE. */ \ - if (_eip[0] == 0xf7) \ - { \ - bool _min_value_dividend = false; \ - unsigned char _modrm = _eip[1]; \ - \ - if (((_modrm >> 3) & 7) == 7) /* Signed divide */ \ - { \ - _min_value_dividend = \ - _gregs[REG_EAX] == (greg_t)0x80000000UL; \ - } \ - \ - if (_min_value_dividend) \ - { \ - unsigned char _rm = _modrm & 7; \ - _gregs[REG_EDX] = 0; /* the remainder is zero */ \ - switch (_modrm >> 6) \ - { \ - case 0: /* register indirect */ \ - if (_rm == 5) /* 32-bit displacement */ \ - _eip += 4; \ - if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ - _eip += 1; \ - break; \ - case 1: /* register indirect + 8-bit displacement */ \ - _eip += 1; \ - if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ - _eip += 1; \ - break; \ - case 2: /* register indirect + 32-bit displacement */ \ - _eip += 4; \ - if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ - _eip += 1; \ - break; \ - case 3: \ - break; \ - } \ - _eip += 2; \ - _gregs[REG_EIP] = (greg_t)_eip; \ - return; \ - } \ - } \ -} \ -while (0) - -/* We use kernel_sigaction here because we're calling the kernel - directly rather than via glibc. The sigaction structure that the - syscall uses is a different shape from the one in userland and not - visible to us in a header file so we define it here. */ - -extern "C" -{ - struct kernel_sigaction - { - void (*k_sa_sigaction)(int,siginfo_t *,void *); - unsigned long k_sa_flags; - void (*k_sa_restorer) (void); - sigset_t k_sa_mask; - }; -} - -#define MAKE_THROW_FRAME(_exception) - -#define RESTORE(name, syscall) RESTORE2 (name, syscall) -#define RESTORE2(name, syscall) \ -asm \ - ( \ - ".text\n" \ - ".byte 0 # Yes, this really is necessary\n" \ - " .align 16\n" \ - "__" #name ":\n" \ - " movl $" #syscall ", %eax\n" \ - " int $0x80" \ - ); - -/* The return code for realtime-signals. */ -RESTORE (restore_rt, __NR_rt_sigreturn) -void restore_rt (void) asm ("__restore_rt") - __attribute__ ((visibility ("hidden"))); - -#define INIT_SEGV \ -do \ - { \ - struct kernel_sigaction act; \ - act.k_sa_sigaction = _Jv_catch_segv; \ - sigemptyset (&act.k_sa_mask); \ - act.k_sa_flags = SA_SIGINFO|0x4000000; \ - act.k_sa_restorer = restore_rt; \ - syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct kernel_sigaction act; \ - act.k_sa_sigaction = _Jv_catch_fpe; \ - sigemptyset (&act.k_sa_mask); \ - act.k_sa_flags = SA_SIGINFO|0x4000000; \ - act.k_sa_restorer = restore_rt; \ - syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, _NSIG / 8); \ - } \ -while (0) - -/* You might wonder why we use syscall(SYS_sigaction) in INIT_FPE - * instead of the standard sigaction(). This is necessary because of - * the shenanigans above where we increment the PC saved in the - * context and then return. This trick will only work when we are - * called _directly_ by the kernel, because linuxthreads wraps signal - * handlers and its wrappers do not copy the sigcontext struct back - * when returning from a signal handler. If we return from our divide - * handler to a linuxthreads wrapper, we will lose the PC adjustment - * we made and return to the faulting instruction again. Using - * syscall(SYS_sigaction) causes our handler to be called directly - * by the kernel, bypassing any wrappers. - - * Also, there may not be any unwind info in the linuxthreads - * library's signal handlers and so we can't unwind through them - * anyway. */ - -#endif /* JAVA_SIGNAL_H */ - -#else /* __i386__ */ - -/* This is for the 64-bit subsystem on i386. */ - -#define sigcontext_struct sigcontext -#include <java-signal-aux.h> - -#endif /* __i386__ */ diff --git a/libjava/include/java-assert.h b/libjava/include/java-assert.h deleted file mode 100644 index 1d3a49b..0000000 --- a/libjava/include/java-assert.h +++ /dev/null @@ -1,38 +0,0 @@ -// java-assert.h - Header file holding assertion definitions. -*- c++ -*- - -/* Copyright (C) 1998, 1999, 2010 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JAVA_ASSERT_H__ -#define __JAVA_ASSERT_H__ - -// This is a libgcj implementation header. - -void _Jv_Abort (const char *, const char *, int, const char *) - __attribute__ ((__noreturn__)); - -#ifdef __GCJ_DEBUG -#define _Jv_AssertDoCall(Message) _Jv_Abort (__FUNCTION__, __FILE__, __LINE__, Message) - -#define JvAssertMessage(Expr, Message) \ - do { if (! (Expr)) _Jv_AssertDoCall (Message); } while (0) -#define JvAssert(Expr) \ - do { if (! (Expr)) _Jv_AssertDoCall (# Expr); } while (0) - -#define JvFail(Message) _Jv_AssertDoCall (Message) - -#else /* __GCJ_DEBUG */ - -#define _Jv_AssertDoCall(Message) -#define JvAssertMessage(Expr, Message) (void) sizeof (Expr) -#define JvAssert(Expr) (void) sizeof (Expr) -#define JvFail(Message) _Jv_Abort (0, 0, 0, Message) - -#endif /* not __GCJ_DEBUG */ - -#endif /* __JAVA_ASSERT_H__ */ diff --git a/libjava/include/java-chardecomp.h b/libjava/include/java-chardecomp.h deleted file mode 100644 index cdfd6ad..0000000 --- a/libjava/include/java-chardecomp.h +++ /dev/null @@ -1,3510 +0,0 @@ -// java-chardecomp.h - Decomposition character tables -*- c++ -*- - -#ifndef __JAVA_CHARDECOMP_H__ -#define __JAVA_CHARDECOMP_H__ - - -// These tables are automatically generated by the scripts/unicode-decomp.pl -// script. DO NOT EDIT the tables. Instead, fix the script -// and run it again. - -// This file should only be included by natCollator.cc - -struct decomp_entry -{ - jchar key; - const char *value; -}; - -static const decomp_entry canonical_decomposition[] = -{ - { 0x00c0, "\x00\x41\x03\x00" }, - { 0x00c1, "\x00\x41\x03\x01" }, - { 0x00c2, "\x00\x41\x03\x02" }, - { 0x00c3, "\x00\x41\x03\x03" }, - { 0x00c4, "\x00\x41\x03\x08" }, - { 0x00c5, "\x00\x41\x03\x0a" }, - { 0x00c7, "\x00\x43\x03\x27" }, - { 0x00c8, "\x00\x45\x03\x00" }, - { 0x00c9, "\x00\x45\x03\x01" }, - { 0x00ca, "\x00\x45\x03\x02" }, - { 0x00cb, "\x00\x45\x03\x08" }, - { 0x00cc, "\x00\x49\x03\x00" }, - { 0x00cd, "\x00\x49\x03\x01" }, - { 0x00ce, "\x00\x49\x03\x02" }, - { 0x00cf, "\x00\x49\x03\x08" }, - { 0x00d1, "\x00\x4e\x03\x03" }, - { 0x00d2, "\x00\x4f\x03\x00" }, - { 0x00d3, "\x00\x4f\x03\x01" }, - { 0x00d4, "\x00\x4f\x03\x02" }, - { 0x00d5, "\x00\x4f\x03\x03" }, - { 0x00d6, "\x00\x4f\x03\x08" }, - { 0x00d9, "\x00\x55\x03\x00" }, - { 0x00da, "\x00\x55\x03\x01" }, - { 0x00db, "\x00\x55\x03\x02" }, - { 0x00dc, "\x00\x55\x03\x08" }, - { 0x00dd, "\x00\x59\x03\x01" }, - { 0x00e0, "\x00\x61\x03\x00" }, - { 0x00e1, "\x00\x61\x03\x01" }, - { 0x00e2, "\x00\x61\x03\x02" }, - { 0x00e3, "\x00\x61\x03\x03" }, - { 0x00e4, "\x00\x61\x03\x08" }, - { 0x00e5, "\x00\x61\x03\x0a" }, - { 0x00e7, "\x00\x63\x03\x27" }, - { 0x00e8, "\x00\x65\x03\x00" }, - { 0x00e9, "\x00\x65\x03\x01" }, - { 0x00ea, "\x00\x65\x03\x02" }, - { 0x00eb, "\x00\x65\x03\x08" }, - { 0x00ec, "\x00\x69\x03\x00" }, - { 0x00ed, "\x00\x69\x03\x01" }, - { 0x00ee, "\x00\x69\x03\x02" }, - { 0x00ef, "\x00\x69\x03\x08" }, - { 0x00f1, "\x00\x6e\x03\x03" }, - { 0x00f2, "\x00\x6f\x03\x00" }, - { 0x00f3, "\x00\x6f\x03\x01" }, - { 0x00f4, "\x00\x6f\x03\x02" }, - { 0x00f5, "\x00\x6f\x03\x03" }, - { 0x00f6, "\x00\x6f\x03\x08" }, - { 0x00f9, "\x00\x75\x03\x00" }, - { 0x00fa, "\x00\x75\x03\x01" }, - { 0x00fb, "\x00\x75\x03\x02" }, - { 0x00fc, "\x00\x75\x03\x08" }, - { 0x00fd, "\x00\x79\x03\x01" }, - { 0x00ff, "\x00\x79\x03\x08" }, - { 0x0100, "\x00\x41\x03\x04" }, - { 0x0101, "\x00\x61\x03\x04" }, - { 0x0102, "\x00\x41\x03\x06" }, - { 0x0103, "\x00\x61\x03\x06" }, - { 0x0104, "\x00\x41\x03\x28" }, - { 0x0105, "\x00\x61\x03\x28" }, - { 0x0106, "\x00\x43\x03\x01" }, - { 0x0107, "\x00\x63\x03\x01" }, - { 0x0108, "\x00\x43\x03\x02" }, - { 0x0109, "\x00\x63\x03\x02" }, - { 0x010a, "\x00\x43\x03\x07" }, - { 0x010b, "\x00\x63\x03\x07" }, - { 0x010c, "\x00\x43\x03\x0c" }, - { 0x010d, "\x00\x63\x03\x0c" }, - { 0x010e, "\x00\x44\x03\x0c" }, - { 0x010f, "\x00\x64\x03\x0c" }, - { 0x0112, "\x00\x45\x03\x04" }, - { 0x0113, "\x00\x65\x03\x04" }, - { 0x0114, "\x00\x45\x03\x06" }, - { 0x0115, "\x00\x65\x03\x06" }, - { 0x0116, "\x00\x45\x03\x07" }, - { 0x0117, "\x00\x65\x03\x07" }, - { 0x0118, "\x00\x45\x03\x28" }, - { 0x0119, "\x00\x65\x03\x28" }, - { 0x011a, "\x00\x45\x03\x0c" }, - { 0x011b, "\x00\x65\x03\x0c" }, - { 0x011c, "\x00\x47\x03\x02" }, - { 0x011d, "\x00\x67\x03\x02" }, - { 0x011e, "\x00\x47\x03\x06" }, - { 0x011f, "\x00\x67\x03\x06" }, - { 0x0120, "\x00\x47\x03\x07" }, - { 0x0121, "\x00\x67\x03\x07" }, - { 0x0122, "\x00\x47\x03\x27" }, - { 0x0123, "\x00\x67\x03\x27" }, - { 0x0124, "\x00\x48\x03\x02" }, - { 0x0125, "\x00\x68\x03\x02" }, - { 0x0128, "\x00\x49\x03\x03" }, - { 0x0129, "\x00\x69\x03\x03" }, - { 0x012a, "\x00\x49\x03\x04" }, - { 0x012b, "\x00\x69\x03\x04" }, - { 0x012c, "\x00\x49\x03\x06" }, - { 0x012d, "\x00\x69\x03\x06" }, - { 0x012e, "\x00\x49\x03\x28" }, - { 0x012f, "\x00\x69\x03\x28" }, - { 0x0130, "\x00\x49\x03\x07" }, - { 0x0134, "\x00\x4a\x03\x02" }, - { 0x0135, "\x00\x6a\x03\x02" }, - { 0x0136, "\x00\x4b\x03\x27" }, - { 0x0137, "\x00\x6b\x03\x27" }, - { 0x0139, "\x00\x4c\x03\x01" }, - { 0x013a, "\x00\x6c\x03\x01" }, - { 0x013b, "\x00\x4c\x03\x27" }, - { 0x013c, "\x00\x6c\x03\x27" }, - { 0x013d, "\x00\x4c\x03\x0c" }, - { 0x013e, "\x00\x6c\x03\x0c" }, - { 0x0143, "\x00\x4e\x03\x01" }, - { 0x0144, "\x00\x6e\x03\x01" }, - { 0x0145, "\x00\x4e\x03\x27" }, - { 0x0146, "\x00\x6e\x03\x27" }, - { 0x0147, "\x00\x4e\x03\x0c" }, - { 0x0148, "\x00\x6e\x03\x0c" }, - { 0x014c, "\x00\x4f\x03\x04" }, - { 0x014d, "\x00\x6f\x03\x04" }, - { 0x014e, "\x00\x4f\x03\x06" }, - { 0x014f, "\x00\x6f\x03\x06" }, - { 0x0150, "\x00\x4f\x03\x0b" }, - { 0x0151, "\x00\x6f\x03\x0b" }, - { 0x0154, "\x00\x52\x03\x01" }, - { 0x0155, "\x00\x72\x03\x01" }, - { 0x0156, "\x00\x52\x03\x27" }, - { 0x0157, "\x00\x72\x03\x27" }, - { 0x0158, "\x00\x52\x03\x0c" }, - { 0x0159, "\x00\x72\x03\x0c" }, - { 0x015a, "\x00\x53\x03\x01" }, - { 0x015b, "\x00\x73\x03\x01" }, - { 0x015c, "\x00\x53\x03\x02" }, - { 0x015d, "\x00\x73\x03\x02" }, - { 0x015e, "\x00\x53\x03\x27" }, - { 0x015f, "\x00\x73\x03\x27" }, - { 0x0160, "\x00\x53\x03\x0c" }, - { 0x0161, "\x00\x73\x03\x0c" }, - { 0x0162, "\x00\x54\x03\x27" }, - { 0x0163, "\x00\x74\x03\x27" }, - { 0x0164, "\x00\x54\x03\x0c" }, - { 0x0165, "\x00\x74\x03\x0c" }, - { 0x0168, "\x00\x55\x03\x03" }, - { 0x0169, "\x00\x75\x03\x03" }, - { 0x016a, "\x00\x55\x03\x04" }, - { 0x016b, "\x00\x75\x03\x04" }, - { 0x016c, "\x00\x55\x03\x06" }, - { 0x016d, "\x00\x75\x03\x06" }, - { 0x016e, "\x00\x55\x03\x0a" }, - { 0x016f, "\x00\x75\x03\x0a" }, - { 0x0170, "\x00\x55\x03\x0b" }, - { 0x0171, "\x00\x75\x03\x0b" }, - { 0x0172, "\x00\x55\x03\x28" }, - { 0x0173, "\x00\x75\x03\x28" }, - { 0x0174, "\x00\x57\x03\x02" }, - { 0x0175, "\x00\x77\x03\x02" }, - { 0x0176, "\x00\x59\x03\x02" }, - { 0x0177, "\x00\x79\x03\x02" }, - { 0x0178, "\x00\x59\x03\x08" }, - { 0x0179, "\x00\x5a\x03\x01" }, - { 0x017a, "\x00\x7a\x03\x01" }, - { 0x017b, "\x00\x5a\x03\x07" }, - { 0x017c, "\x00\x7a\x03\x07" }, - { 0x017d, "\x00\x5a\x03\x0c" }, - { 0x017e, "\x00\x7a\x03\x0c" }, - { 0x01a0, "\x00\x4f\x03\x1b" }, - { 0x01a1, "\x00\x6f\x03\x1b" }, - { 0x01af, "\x00\x55\x03\x1b" }, - { 0x01b0, "\x00\x75\x03\x1b" }, - { 0x01cd, "\x00\x41\x03\x0c" }, - { 0x01ce, "\x00\x61\x03\x0c" }, - { 0x01cf, "\x00\x49\x03\x0c" }, - { 0x01d0, "\x00\x69\x03\x0c" }, - { 0x01d1, "\x00\x4f\x03\x0c" }, - { 0x01d2, "\x00\x6f\x03\x0c" }, - { 0x01d3, "\x00\x55\x03\x0c" }, - { 0x01d4, "\x00\x75\x03\x0c" }, - { 0x01d5, "\x00\xdc\x03\x04" }, - { 0x01d6, "\x00\xfc\x03\x04" }, - { 0x01d7, "\x00\xdc\x03\x01" }, - { 0x01d8, "\x00\xfc\x03\x01" }, - { 0x01d9, "\x00\xdc\x03\x0c" }, - { 0x01da, "\x00\xfc\x03\x0c" }, - { 0x01db, "\x00\xdc\x03\x00" }, - { 0x01dc, "\x00\xfc\x03\x00" }, - { 0x01de, "\x00\xc4\x03\x04" }, - { 0x01df, "\x00\xe4\x03\x04" }, - { 0x01e0, "\x02\x26\x03\x04" }, - { 0x01e1, "\x02\x27\x03\x04" }, - { 0x01e2, "\x00\xc6\x03\x04" }, - { 0x01e3, "\x00\xe6\x03\x04" }, - { 0x01e6, "\x00\x47\x03\x0c" }, - { 0x01e7, "\x00\x67\x03\x0c" }, - { 0x01e8, "\x00\x4b\x03\x0c" }, - { 0x01e9, "\x00\x6b\x03\x0c" }, - { 0x01ea, "\x00\x4f\x03\x28" }, - { 0x01eb, "\x00\x6f\x03\x28" }, - { 0x01ec, "\x01\xea\x03\x04" }, - { 0x01ed, "\x01\xeb\x03\x04" }, - { 0x01ee, "\x01\xb7\x03\x0c" }, - { 0x01ef, "\x02\x92\x03\x0c" }, - { 0x01f0, "\x00\x6a\x03\x0c" }, - { 0x01f4, "\x00\x47\x03\x01" }, - { 0x01f5, "\x00\x67\x03\x01" }, - { 0x01f8, "\x00\x4e\x03\x00" }, - { 0x01f9, "\x00\x6e\x03\x00" }, - { 0x01fa, "\x00\xc5\x03\x01" }, - { 0x01fb, "\x00\xe5\x03\x01" }, - { 0x01fc, "\x00\xc6\x03\x01" }, - { 0x01fd, "\x00\xe6\x03\x01" }, - { 0x01fe, "\x00\xd8\x03\x01" }, - { 0x01ff, "\x00\xf8\x03\x01" }, - { 0x0200, "\x00\x41\x03\x0f" }, - { 0x0201, "\x00\x61\x03\x0f" }, - { 0x0202, "\x00\x41\x03\x11" }, - { 0x0203, "\x00\x61\x03\x11" }, - { 0x0204, "\x00\x45\x03\x0f" }, - { 0x0205, "\x00\x65\x03\x0f" }, - { 0x0206, "\x00\x45\x03\x11" }, - { 0x0207, "\x00\x65\x03\x11" }, - { 0x0208, "\x00\x49\x03\x0f" }, - { 0x0209, "\x00\x69\x03\x0f" }, - { 0x020a, "\x00\x49\x03\x11" }, - { 0x020b, "\x00\x69\x03\x11" }, - { 0x020c, "\x00\x4f\x03\x0f" }, - { 0x020d, "\x00\x6f\x03\x0f" }, - { 0x020e, "\x00\x4f\x03\x11" }, - { 0x020f, "\x00\x6f\x03\x11" }, - { 0x0210, "\x00\x52\x03\x0f" }, - { 0x0211, "\x00\x72\x03\x0f" }, - { 0x0212, "\x00\x52\x03\x11" }, - { 0x0213, "\x00\x72\x03\x11" }, - { 0x0214, "\x00\x55\x03\x0f" }, - { 0x0215, "\x00\x75\x03\x0f" }, - { 0x0216, "\x00\x55\x03\x11" }, - { 0x0217, "\x00\x75\x03\x11" }, - { 0x0218, "\x00\x53\x03\x26" }, - { 0x0219, "\x00\x73\x03\x26" }, - { 0x021a, "\x00\x54\x03\x26" }, - { 0x021b, "\x00\x74\x03\x26" }, - { 0x021e, "\x00\x48\x03\x0c" }, - { 0x021f, "\x00\x68\x03\x0c" }, - { 0x0226, "\x00\x41\x03\x07" }, - { 0x0227, "\x00\x61\x03\x07" }, - { 0x0228, "\x00\x45\x03\x27" }, - { 0x0229, "\x00\x65\x03\x27" }, - { 0x022a, "\x00\xd6\x03\x04" }, - { 0x022b, "\x00\xf6\x03\x04" }, - { 0x022c, "\x00\xd5\x03\x04" }, - { 0x022d, "\x00\xf5\x03\x04" }, - { 0x022e, "\x00\x4f\x03\x07" }, - { 0x022f, "\x00\x6f\x03\x07" }, - { 0x0230, "\x02\x2e\x03\x04" }, - { 0x0231, "\x02\x2f\x03\x04" }, - { 0x0232, "\x00\x59\x03\x04" }, - { 0x0233, "\x00\x79\x03\x04" }, - { 0x0340, "\x03\x00" }, - { 0x0341, "\x03\x01" }, - { 0x0343, "\x03\x13" }, - { 0x0344, "\x03\x08\x03\x01" }, - { 0x0374, "\x02\xb9" }, - { 0x037e, "\x00\x3b" }, - { 0x0385, "\x00\xa8\x03\x01" }, - { 0x0386, "\x03\x91\x03\x01" }, - { 0x0387, "\x00\xb7" }, - { 0x0388, "\x03\x95\x03\x01" }, - { 0x0389, "\x03\x97\x03\x01" }, - { 0x038a, "\x03\x99\x03\x01" }, - { 0x038c, "\x03\x9f\x03\x01" }, - { 0x038e, "\x03\xa5\x03\x01" }, - { 0x038f, "\x03\xa9\x03\x01" }, - { 0x0390, "\x03\xca\x03\x01" }, - { 0x03aa, "\x03\x99\x03\x08" }, - { 0x03ab, "\x03\xa5\x03\x08" }, - { 0x03ac, "\x03\xb1\x03\x01" }, - { 0x03ad, "\x03\xb5\x03\x01" }, - { 0x03ae, "\x03\xb7\x03\x01" }, - { 0x03af, "\x03\xb9\x03\x01" }, - { 0x03b0, "\x03\xcb\x03\x01" }, - { 0x03ca, "\x03\xb9\x03\x08" }, - { 0x03cb, "\x03\xc5\x03\x08" }, - { 0x03cc, "\x03\xbf\x03\x01" }, - { 0x03cd, "\x03\xc5\x03\x01" }, - { 0x03ce, "\x03\xc9\x03\x01" }, - { 0x03d3, "\x03\xd2\x03\x01" }, - { 0x03d4, "\x03\xd2\x03\x08" }, - { 0x0400, "\x04\x15\x03\x00" }, - { 0x0401, "\x04\x15\x03\x08" }, - { 0x0403, "\x04\x13\x03\x01" }, - { 0x0407, "\x04\x06\x03\x08" }, - { 0x040c, "\x04\x1a\x03\x01" }, - { 0x040d, "\x04\x18\x03\x00" }, - { 0x040e, "\x04\x23\x03\x06" }, - { 0x0419, "\x04\x18\x03\x06" }, - { 0x0439, "\x04\x38\x03\x06" }, - { 0x0450, "\x04\x35\x03\x00" }, - { 0x0451, "\x04\x35\x03\x08" }, - { 0x0453, "\x04\x33\x03\x01" }, - { 0x0457, "\x04\x56\x03\x08" }, - { 0x045c, "\x04\x3a\x03\x01" }, - { 0x045d, "\x04\x38\x03\x00" }, - { 0x045e, "\x04\x43\x03\x06" }, - { 0x0476, "\x04\x74\x03\x0f" }, - { 0x0477, "\x04\x75\x03\x0f" }, - { 0x04c1, "\x04\x16\x03\x06" }, - { 0x04c2, "\x04\x36\x03\x06" }, - { 0x04d0, "\x04\x10\x03\x06" }, - { 0x04d1, "\x04\x30\x03\x06" }, - { 0x04d2, "\x04\x10\x03\x08" }, - { 0x04d3, "\x04\x30\x03\x08" }, - { 0x04d6, "\x04\x15\x03\x06" }, - { 0x04d7, "\x04\x35\x03\x06" }, - { 0x04da, "\x04\xd8\x03\x08" }, - { 0x04db, "\x04\xd9\x03\x08" }, - { 0x04dc, "\x04\x16\x03\x08" }, - { 0x04dd, "\x04\x36\x03\x08" }, - { 0x04de, "\x04\x17\x03\x08" }, - { 0x04df, "\x04\x37\x03\x08" }, - { 0x04e2, "\x04\x18\x03\x04" }, - { 0x04e3, "\x04\x38\x03\x04" }, - { 0x04e4, "\x04\x18\x03\x08" }, - { 0x04e5, "\x04\x38\x03\x08" }, - { 0x04e6, "\x04\x1e\x03\x08" }, - { 0x04e7, "\x04\x3e\x03\x08" }, - { 0x04ea, "\x04\xe8\x03\x08" }, - { 0x04eb, "\x04\xe9\x03\x08" }, - { 0x04ec, "\x04\x2d\x03\x08" }, - { 0x04ed, "\x04\x4d\x03\x08" }, - { 0x04ee, "\x04\x23\x03\x04" }, - { 0x04ef, "\x04\x43\x03\x04" }, - { 0x04f0, "\x04\x23\x03\x08" }, - { 0x04f1, "\x04\x43\x03\x08" }, - { 0x04f2, "\x04\x23\x03\x0b" }, - { 0x04f3, "\x04\x43\x03\x0b" }, - { 0x04f4, "\x04\x27\x03\x08" }, - { 0x04f5, "\x04\x47\x03\x08" }, - { 0x04f8, "\x04\x2b\x03\x08" }, - { 0x04f9, "\x04\x4b\x03\x08" }, - { 0x0622, "\x06\x27\x06\x53" }, - { 0x0623, "\x06\x27\x06\x54" }, - { 0x0624, "\x06\x48\x06\x54" }, - { 0x0625, "\x06\x27\x06\x55" }, - { 0x0626, "\x06\x4a\x06\x54" }, - { 0x06c0, "\x06\xd5\x06\x54" }, - { 0x06c2, "\x06\xc1\x06\x54" }, - { 0x06d3, "\x06\xd2\x06\x54" }, - { 0x0929, "\x09\x28\x09\x3c" }, - { 0x0931, "\x09\x30\x09\x3c" }, - { 0x0934, "\x09\x33\x09\x3c" }, - { 0x0958, "\x09\x15\x09\x3c" }, - { 0x0959, "\x09\x16\x09\x3c" }, - { 0x095a, "\x09\x17\x09\x3c" }, - { 0x095b, "\x09\x1c\x09\x3c" }, - { 0x095c, "\x09\x21\x09\x3c" }, - { 0x095d, "\x09\x22\x09\x3c" }, - { 0x095e, "\x09\x2b\x09\x3c" }, - { 0x095f, "\x09\x2f\x09\x3c" }, - { 0x09cb, "\x09\xc7\x09\xbe" }, - { 0x09cc, "\x09\xc7\x09\xd7" }, - { 0x09dc, "\x09\xa1\x09\xbc" }, - { 0x09dd, "\x09\xa2\x09\xbc" }, - { 0x09df, "\x09\xaf\x09\xbc" }, - { 0x0a33, "\x0a\x32\x0a\x3c" }, - { 0x0a36, "\x0a\x38\x0a\x3c" }, - { 0x0a59, "\x0a\x16\x0a\x3c" }, - { 0x0a5a, "\x0a\x17\x0a\x3c" }, - { 0x0a5b, "\x0a\x1c\x0a\x3c" }, - { 0x0a5e, "\x0a\x2b\x0a\x3c" }, - { 0x0b48, "\x0b\x47\x0b\x56" }, - { 0x0b4b, "\x0b\x47\x0b\x3e" }, - { 0x0b4c, "\x0b\x47\x0b\x57" }, - { 0x0b5c, "\x0b\x21\x0b\x3c" }, - { 0x0b5d, "\x0b\x22\x0b\x3c" }, - { 0x0b94, "\x0b\x92\x0b\xd7" }, - { 0x0bca, "\x0b\xc6\x0b\xbe" }, - { 0x0bcb, "\x0b\xc7\x0b\xbe" }, - { 0x0bcc, "\x0b\xc6\x0b\xd7" }, - { 0x0c48, "\x0c\x46\x0c\x56" }, - { 0x0cc0, "\x0c\xbf\x0c\xd5" }, - { 0x0cc7, "\x0c\xc6\x0c\xd5" }, - { 0x0cc8, "\x0c\xc6\x0c\xd6" }, - { 0x0cca, "\x0c\xc6\x0c\xc2" }, - { 0x0ccb, "\x0c\xca\x0c\xd5" }, - { 0x0d4a, "\x0d\x46\x0d\x3e" }, - { 0x0d4b, "\x0d\x47\x0d\x3e" }, - { 0x0d4c, "\x0d\x46\x0d\x57" }, - { 0x0dda, "\x0d\xd9\x0d\xca" }, - { 0x0ddc, "\x0d\xd9\x0d\xcf" }, - { 0x0ddd, "\x0d\xdc\x0d\xca" }, - { 0x0dde, "\x0d\xd9\x0d\xdf" }, - { 0x0f43, "\x0f\x42\x0f\xb7" }, - { 0x0f4d, "\x0f\x4c\x0f\xb7" }, - { 0x0f52, "\x0f\x51\x0f\xb7" }, - { 0x0f57, "\x0f\x56\x0f\xb7" }, - { 0x0f5c, "\x0f\x5b\x0f\xb7" }, - { 0x0f69, "\x0f\x40\x0f\xb5" }, - { 0x0f73, "\x0f\x71\x0f\x72" }, - { 0x0f75, "\x0f\x71\x0f\x74" }, - { 0x0f76, "\x0f\xb2\x0f\x80" }, - { 0x0f78, "\x0f\xb3\x0f\x80" }, - { 0x0f81, "\x0f\x71\x0f\x80" }, - { 0x0f93, "\x0f\x92\x0f\xb7" }, - { 0x0f9d, "\x0f\x9c\x0f\xb7" }, - { 0x0fa2, "\x0f\xa1\x0f\xb7" }, - { 0x0fa7, "\x0f\xa6\x0f\xb7" }, - { 0x0fac, "\x0f\xab\x0f\xb7" }, - { 0x0fb9, "\x0f\x90\x0f\xb5" }, - { 0x1026, "\x10\x25\x10\x2e" }, - { 0x1e00, "\x00\x41\x03\x25" }, - { 0x1e01, "\x00\x61\x03\x25" }, - { 0x1e02, "\x00\x42\x03\x07" }, - { 0x1e03, "\x00\x62\x03\x07" }, - { 0x1e04, "\x00\x42\x03\x23" }, - { 0x1e05, "\x00\x62\x03\x23" }, - { 0x1e06, "\x00\x42\x03\x31" }, - { 0x1e07, "\x00\x62\x03\x31" }, - { 0x1e08, "\x00\xc7\x03\x01" }, - { 0x1e09, "\x00\xe7\x03\x01" }, - { 0x1e0a, "\x00\x44\x03\x07" }, - { 0x1e0b, "\x00\x64\x03\x07" }, - { 0x1e0c, "\x00\x44\x03\x23" }, - { 0x1e0d, "\x00\x64\x03\x23" }, - { 0x1e0e, "\x00\x44\x03\x31" }, - { 0x1e0f, "\x00\x64\x03\x31" }, - { 0x1e10, "\x00\x44\x03\x27" }, - { 0x1e11, "\x00\x64\x03\x27" }, - { 0x1e12, "\x00\x44\x03\x2d" }, - { 0x1e13, "\x00\x64\x03\x2d" }, - { 0x1e14, "\x01\x12\x03\x00" }, - { 0x1e15, "\x01\x13\x03\x00" }, - { 0x1e16, "\x01\x12\x03\x01" }, - { 0x1e17, "\x01\x13\x03\x01" }, - { 0x1e18, "\x00\x45\x03\x2d" }, - { 0x1e19, "\x00\x65\x03\x2d" }, - { 0x1e1a, "\x00\x45\x03\x30" }, - { 0x1e1b, "\x00\x65\x03\x30" }, - { 0x1e1c, "\x02\x28\x03\x06" }, - { 0x1e1d, "\x02\x29\x03\x06" }, - { 0x1e1e, "\x00\x46\x03\x07" }, - { 0x1e1f, "\x00\x66\x03\x07" }, - { 0x1e20, "\x00\x47\x03\x04" }, - { 0x1e21, "\x00\x67\x03\x04" }, - { 0x1e22, "\x00\x48\x03\x07" }, - { 0x1e23, "\x00\x68\x03\x07" }, - { 0x1e24, "\x00\x48\x03\x23" }, - { 0x1e25, "\x00\x68\x03\x23" }, - { 0x1e26, "\x00\x48\x03\x08" }, - { 0x1e27, "\x00\x68\x03\x08" }, - { 0x1e28, "\x00\x48\x03\x27" }, - { 0x1e29, "\x00\x68\x03\x27" }, - { 0x1e2a, "\x00\x48\x03\x2e" }, - { 0x1e2b, "\x00\x68\x03\x2e" }, - { 0x1e2c, "\x00\x49\x03\x30" }, - { 0x1e2d, "\x00\x69\x03\x30" }, - { 0x1e2e, "\x00\xcf\x03\x01" }, - { 0x1e2f, "\x00\xef\x03\x01" }, - { 0x1e30, "\x00\x4b\x03\x01" }, - { 0x1e31, "\x00\x6b\x03\x01" }, - { 0x1e32, "\x00\x4b\x03\x23" }, - { 0x1e33, "\x00\x6b\x03\x23" }, - { 0x1e34, "\x00\x4b\x03\x31" }, - { 0x1e35, "\x00\x6b\x03\x31" }, - { 0x1e36, "\x00\x4c\x03\x23" }, - { 0x1e37, "\x00\x6c\x03\x23" }, - { 0x1e38, "\x1e\x36\x03\x04" }, - { 0x1e39, "\x1e\x37\x03\x04" }, - { 0x1e3a, "\x00\x4c\x03\x31" }, - { 0x1e3b, "\x00\x6c\x03\x31" }, - { 0x1e3c, "\x00\x4c\x03\x2d" }, - { 0x1e3d, "\x00\x6c\x03\x2d" }, - { 0x1e3e, "\x00\x4d\x03\x01" }, - { 0x1e3f, "\x00\x6d\x03\x01" }, - { 0x1e40, "\x00\x4d\x03\x07" }, - { 0x1e41, "\x00\x6d\x03\x07" }, - { 0x1e42, "\x00\x4d\x03\x23" }, - { 0x1e43, "\x00\x6d\x03\x23" }, - { 0x1e44, "\x00\x4e\x03\x07" }, - { 0x1e45, "\x00\x6e\x03\x07" }, - { 0x1e46, "\x00\x4e\x03\x23" }, - { 0x1e47, "\x00\x6e\x03\x23" }, - { 0x1e48, "\x00\x4e\x03\x31" }, - { 0x1e49, "\x00\x6e\x03\x31" }, - { 0x1e4a, "\x00\x4e\x03\x2d" }, - { 0x1e4b, "\x00\x6e\x03\x2d" }, - { 0x1e4c, "\x00\xd5\x03\x01" }, - { 0x1e4d, "\x00\xf5\x03\x01" }, - { 0x1e4e, "\x00\xd5\x03\x08" }, - { 0x1e4f, "\x00\xf5\x03\x08" }, - { 0x1e50, "\x01\x4c\x03\x00" }, - { 0x1e51, "\x01\x4d\x03\x00" }, - { 0x1e52, "\x01\x4c\x03\x01" }, - { 0x1e53, "\x01\x4d\x03\x01" }, - { 0x1e54, "\x00\x50\x03\x01" }, - { 0x1e55, "\x00\x70\x03\x01" }, - { 0x1e56, "\x00\x50\x03\x07" }, - { 0x1e57, "\x00\x70\x03\x07" }, - { 0x1e58, "\x00\x52\x03\x07" }, - { 0x1e59, "\x00\x72\x03\x07" }, - { 0x1e5a, "\x00\x52\x03\x23" }, - { 0x1e5b, "\x00\x72\x03\x23" }, - { 0x1e5c, "\x1e\x5a\x03\x04" }, - { 0x1e5d, "\x1e\x5b\x03\x04" }, - { 0x1e5e, "\x00\x52\x03\x31" }, - { 0x1e5f, "\x00\x72\x03\x31" }, - { 0x1e60, "\x00\x53\x03\x07" }, - { 0x1e61, "\x00\x73\x03\x07" }, - { 0x1e62, "\x00\x53\x03\x23" }, - { 0x1e63, "\x00\x73\x03\x23" }, - { 0x1e64, "\x01\x5a\x03\x07" }, - { 0x1e65, "\x01\x5b\x03\x07" }, - { 0x1e66, "\x01\x60\x03\x07" }, - { 0x1e67, "\x01\x61\x03\x07" }, - { 0x1e68, "\x1e\x62\x03\x07" }, - { 0x1e69, "\x1e\x63\x03\x07" }, - { 0x1e6a, "\x00\x54\x03\x07" }, - { 0x1e6b, "\x00\x74\x03\x07" }, - { 0x1e6c, "\x00\x54\x03\x23" }, - { 0x1e6d, "\x00\x74\x03\x23" }, - { 0x1e6e, "\x00\x54\x03\x31" }, - { 0x1e6f, "\x00\x74\x03\x31" }, - { 0x1e70, "\x00\x54\x03\x2d" }, - { 0x1e71, "\x00\x74\x03\x2d" }, - { 0x1e72, "\x00\x55\x03\x24" }, - { 0x1e73, "\x00\x75\x03\x24" }, - { 0x1e74, "\x00\x55\x03\x30" }, - { 0x1e75, "\x00\x75\x03\x30" }, - { 0x1e76, "\x00\x55\x03\x2d" }, - { 0x1e77, "\x00\x75\x03\x2d" }, - { 0x1e78, "\x01\x68\x03\x01" }, - { 0x1e79, "\x01\x69\x03\x01" }, - { 0x1e7a, "\x01\x6a\x03\x08" }, - { 0x1e7b, "\x01\x6b\x03\x08" }, - { 0x1e7c, "\x00\x56\x03\x03" }, - { 0x1e7d, "\x00\x76\x03\x03" }, - { 0x1e7e, "\x00\x56\x03\x23" }, - { 0x1e7f, "\x00\x76\x03\x23" }, - { 0x1e80, "\x00\x57\x03\x00" }, - { 0x1e81, "\x00\x77\x03\x00" }, - { 0x1e82, "\x00\x57\x03\x01" }, - { 0x1e83, "\x00\x77\x03\x01" }, - { 0x1e84, "\x00\x57\x03\x08" }, - { 0x1e85, "\x00\x77\x03\x08" }, - { 0x1e86, "\x00\x57\x03\x07" }, - { 0x1e87, "\x00\x77\x03\x07" }, - { 0x1e88, "\x00\x57\x03\x23" }, - { 0x1e89, "\x00\x77\x03\x23" }, - { 0x1e8a, "\x00\x58\x03\x07" }, - { 0x1e8b, "\x00\x78\x03\x07" }, - { 0x1e8c, "\x00\x58\x03\x08" }, - { 0x1e8d, "\x00\x78\x03\x08" }, - { 0x1e8e, "\x00\x59\x03\x07" }, - { 0x1e8f, "\x00\x79\x03\x07" }, - { 0x1e90, "\x00\x5a\x03\x02" }, - { 0x1e91, "\x00\x7a\x03\x02" }, - { 0x1e92, "\x00\x5a\x03\x23" }, - { 0x1e93, "\x00\x7a\x03\x23" }, - { 0x1e94, "\x00\x5a\x03\x31" }, - { 0x1e95, "\x00\x7a\x03\x31" }, - { 0x1e96, "\x00\x68\x03\x31" }, - { 0x1e97, "\x00\x74\x03\x08" }, - { 0x1e98, "\x00\x77\x03\x0a" }, - { 0x1e99, "\x00\x79\x03\x0a" }, - { 0x1e9b, "\x01\x7f\x03\x07" }, - { 0x1ea0, "\x00\x41\x03\x23" }, - { 0x1ea1, "\x00\x61\x03\x23" }, - { 0x1ea2, "\x00\x41\x03\x09" }, - { 0x1ea3, "\x00\x61\x03\x09" }, - { 0x1ea4, "\x00\xc2\x03\x01" }, - { 0x1ea5, "\x00\xe2\x03\x01" }, - { 0x1ea6, "\x00\xc2\x03\x00" }, - { 0x1ea7, "\x00\xe2\x03\x00" }, - { 0x1ea8, "\x00\xc2\x03\x09" }, - { 0x1ea9, "\x00\xe2\x03\x09" }, - { 0x1eaa, "\x00\xc2\x03\x03" }, - { 0x1eab, "\x00\xe2\x03\x03" }, - { 0x1eac, "\x1e\xa0\x03\x02" }, - { 0x1ead, "\x1e\xa1\x03\x02" }, - { 0x1eae, "\x01\x02\x03\x01" }, - { 0x1eaf, "\x01\x03\x03\x01" }, - { 0x1eb0, "\x01\x02\x03\x00" }, - { 0x1eb1, "\x01\x03\x03\x00" }, - { 0x1eb2, "\x01\x02\x03\x09" }, - { 0x1eb3, "\x01\x03\x03\x09" }, - { 0x1eb4, "\x01\x02\x03\x03" }, - { 0x1eb5, "\x01\x03\x03\x03" }, - { 0x1eb6, "\x1e\xa0\x03\x06" }, - { 0x1eb7, "\x1e\xa1\x03\x06" }, - { 0x1eb8, "\x00\x45\x03\x23" }, - { 0x1eb9, "\x00\x65\x03\x23" }, - { 0x1eba, "\x00\x45\x03\x09" }, - { 0x1ebb, "\x00\x65\x03\x09" }, - { 0x1ebc, "\x00\x45\x03\x03" }, - { 0x1ebd, "\x00\x65\x03\x03" }, - { 0x1ebe, "\x00\xca\x03\x01" }, - { 0x1ebf, "\x00\xea\x03\x01" }, - { 0x1ec0, "\x00\xca\x03\x00" }, - { 0x1ec1, "\x00\xea\x03\x00" }, - { 0x1ec2, "\x00\xca\x03\x09" }, - { 0x1ec3, "\x00\xea\x03\x09" }, - { 0x1ec4, "\x00\xca\x03\x03" }, - { 0x1ec5, "\x00\xea\x03\x03" }, - { 0x1ec6, "\x1e\xb8\x03\x02" }, - { 0x1ec7, "\x1e\xb9\x03\x02" }, - { 0x1ec8, "\x00\x49\x03\x09" }, - { 0x1ec9, "\x00\x69\x03\x09" }, - { 0x1eca, "\x00\x49\x03\x23" }, - { 0x1ecb, "\x00\x69\x03\x23" }, - { 0x1ecc, "\x00\x4f\x03\x23" }, - { 0x1ecd, "\x00\x6f\x03\x23" }, - { 0x1ece, "\x00\x4f\x03\x09" }, - { 0x1ecf, "\x00\x6f\x03\x09" }, - { 0x1ed0, "\x00\xd4\x03\x01" }, - { 0x1ed1, "\x00\xf4\x03\x01" }, - { 0x1ed2, "\x00\xd4\x03\x00" }, - { 0x1ed3, "\x00\xf4\x03\x00" }, - { 0x1ed4, "\x00\xd4\x03\x09" }, - { 0x1ed5, "\x00\xf4\x03\x09" }, - { 0x1ed6, "\x00\xd4\x03\x03" }, - { 0x1ed7, "\x00\xf4\x03\x03" }, - { 0x1ed8, "\x1e\xcc\x03\x02" }, - { 0x1ed9, "\x1e\xcd\x03\x02" }, - { 0x1eda, "\x01\xa0\x03\x01" }, - { 0x1edb, "\x01\xa1\x03\x01" }, - { 0x1edc, "\x01\xa0\x03\x00" }, - { 0x1edd, "\x01\xa1\x03\x00" }, - { 0x1ede, "\x01\xa0\x03\x09" }, - { 0x1edf, "\x01\xa1\x03\x09" }, - { 0x1ee0, "\x01\xa0\x03\x03" }, - { 0x1ee1, "\x01\xa1\x03\x03" }, - { 0x1ee2, "\x01\xa0\x03\x23" }, - { 0x1ee3, "\x01\xa1\x03\x23" }, - { 0x1ee4, "\x00\x55\x03\x23" }, - { 0x1ee5, "\x00\x75\x03\x23" }, - { 0x1ee6, "\x00\x55\x03\x09" }, - { 0x1ee7, "\x00\x75\x03\x09" }, - { 0x1ee8, "\x01\xaf\x03\x01" }, - { 0x1ee9, "\x01\xb0\x03\x01" }, - { 0x1eea, "\x01\xaf\x03\x00" }, - { 0x1eeb, "\x01\xb0\x03\x00" }, - { 0x1eec, "\x01\xaf\x03\x09" }, - { 0x1eed, "\x01\xb0\x03\x09" }, - { 0x1eee, "\x01\xaf\x03\x03" }, - { 0x1eef, "\x01\xb0\x03\x03" }, - { 0x1ef0, "\x01\xaf\x03\x23" }, - { 0x1ef1, "\x01\xb0\x03\x23" }, - { 0x1ef2, "\x00\x59\x03\x00" }, - { 0x1ef3, "\x00\x79\x03\x00" }, - { 0x1ef4, "\x00\x59\x03\x23" }, - { 0x1ef5, "\x00\x79\x03\x23" }, - { 0x1ef6, "\x00\x59\x03\x09" }, - { 0x1ef7, "\x00\x79\x03\x09" }, - { 0x1ef8, "\x00\x59\x03\x03" }, - { 0x1ef9, "\x00\x79\x03\x03" }, - { 0x1f00, "\x03\xb1\x03\x13" }, - { 0x1f01, "\x03\xb1\x03\x14" }, - { 0x1f02, "\x1f\x00\x03\x00" }, - { 0x1f03, "\x1f\x01\x03\x00" }, - { 0x1f04, "\x1f\x00\x03\x01" }, - { 0x1f05, "\x1f\x01\x03\x01" }, - { 0x1f06, "\x1f\x00\x03\x42" }, - { 0x1f07, "\x1f\x01\x03\x42" }, - { 0x1f08, "\x03\x91\x03\x13" }, - { 0x1f09, "\x03\x91\x03\x14" }, - { 0x1f0a, "\x1f\x08\x03\x00" }, - { 0x1f0b, "\x1f\x09\x03\x00" }, - { 0x1f0c, "\x1f\x08\x03\x01" }, - { 0x1f0d, "\x1f\x09\x03\x01" }, - { 0x1f0e, "\x1f\x08\x03\x42" }, - { 0x1f0f, "\x1f\x09\x03\x42" }, - { 0x1f10, "\x03\xb5\x03\x13" }, - { 0x1f11, "\x03\xb5\x03\x14" }, - { 0x1f12, "\x1f\x10\x03\x00" }, - { 0x1f13, "\x1f\x11\x03\x00" }, - { 0x1f14, "\x1f\x10\x03\x01" }, - { 0x1f15, "\x1f\x11\x03\x01" }, - { 0x1f18, "\x03\x95\x03\x13" }, - { 0x1f19, "\x03\x95\x03\x14" }, - { 0x1f1a, "\x1f\x18\x03\x00" }, - { 0x1f1b, "\x1f\x19\x03\x00" }, - { 0x1f1c, "\x1f\x18\x03\x01" }, - { 0x1f1d, "\x1f\x19\x03\x01" }, - { 0x1f20, "\x03\xb7\x03\x13" }, - { 0x1f21, "\x03\xb7\x03\x14" }, - { 0x1f22, "\x1f\x20\x03\x00" }, - { 0x1f23, "\x1f\x21\x03\x00" }, - { 0x1f24, "\x1f\x20\x03\x01" }, - { 0x1f25, "\x1f\x21\x03\x01" }, - { 0x1f26, "\x1f\x20\x03\x42" }, - { 0x1f27, "\x1f\x21\x03\x42" }, - { 0x1f28, "\x03\x97\x03\x13" }, - { 0x1f29, "\x03\x97\x03\x14" }, - { 0x1f2a, "\x1f\x28\x03\x00" }, - { 0x1f2b, "\x1f\x29\x03\x00" }, - { 0x1f2c, "\x1f\x28\x03\x01" }, - { 0x1f2d, "\x1f\x29\x03\x01" }, - { 0x1f2e, "\x1f\x28\x03\x42" }, - { 0x1f2f, "\x1f\x29\x03\x42" }, - { 0x1f30, "\x03\xb9\x03\x13" }, - { 0x1f31, "\x03\xb9\x03\x14" }, - { 0x1f32, "\x1f\x30\x03\x00" }, - { 0x1f33, "\x1f\x31\x03\x00" }, - { 0x1f34, "\x1f\x30\x03\x01" }, - { 0x1f35, "\x1f\x31\x03\x01" }, - { 0x1f36, "\x1f\x30\x03\x42" }, - { 0x1f37, "\x1f\x31\x03\x42" }, - { 0x1f38, "\x03\x99\x03\x13" }, - { 0x1f39, "\x03\x99\x03\x14" }, - { 0x1f3a, "\x1f\x38\x03\x00" }, - { 0x1f3b, "\x1f\x39\x03\x00" }, - { 0x1f3c, "\x1f\x38\x03\x01" }, - { 0x1f3d, "\x1f\x39\x03\x01" }, - { 0x1f3e, "\x1f\x38\x03\x42" }, - { 0x1f3f, "\x1f\x39\x03\x42" }, - { 0x1f40, "\x03\xbf\x03\x13" }, - { 0x1f41, "\x03\xbf\x03\x14" }, - { 0x1f42, "\x1f\x40\x03\x00" }, - { 0x1f43, "\x1f\x41\x03\x00" }, - { 0x1f44, "\x1f\x40\x03\x01" }, - { 0x1f45, "\x1f\x41\x03\x01" }, - { 0x1f48, "\x03\x9f\x03\x13" }, - { 0x1f49, "\x03\x9f\x03\x14" }, - { 0x1f4a, "\x1f\x48\x03\x00" }, - { 0x1f4b, "\x1f\x49\x03\x00" }, - { 0x1f4c, "\x1f\x48\x03\x01" }, - { 0x1f4d, "\x1f\x49\x03\x01" }, - { 0x1f50, "\x03\xc5\x03\x13" }, - { 0x1f51, "\x03\xc5\x03\x14" }, - { 0x1f52, "\x1f\x50\x03\x00" }, - { 0x1f53, "\x1f\x51\x03\x00" }, - { 0x1f54, "\x1f\x50\x03\x01" }, - { 0x1f55, "\x1f\x51\x03\x01" }, - { 0x1f56, "\x1f\x50\x03\x42" }, - { 0x1f57, "\x1f\x51\x03\x42" }, - { 0x1f59, "\x03\xa5\x03\x14" }, - { 0x1f5b, "\x1f\x59\x03\x00" }, - { 0x1f5d, "\x1f\x59\x03\x01" }, - { 0x1f5f, "\x1f\x59\x03\x42" }, - { 0x1f60, "\x03\xc9\x03\x13" }, - { 0x1f61, "\x03\xc9\x03\x14" }, - { 0x1f62, "\x1f\x60\x03\x00" }, - { 0x1f63, "\x1f\x61\x03\x00" }, - { 0x1f64, "\x1f\x60\x03\x01" }, - { 0x1f65, "\x1f\x61\x03\x01" }, - { 0x1f66, "\x1f\x60\x03\x42" }, - { 0x1f67, "\x1f\x61\x03\x42" }, - { 0x1f68, "\x03\xa9\x03\x13" }, - { 0x1f69, "\x03\xa9\x03\x14" }, - { 0x1f6a, "\x1f\x68\x03\x00" }, - { 0x1f6b, "\x1f\x69\x03\x00" }, - { 0x1f6c, "\x1f\x68\x03\x01" }, - { 0x1f6d, "\x1f\x69\x03\x01" }, - { 0x1f6e, "\x1f\x68\x03\x42" }, - { 0x1f6f, "\x1f\x69\x03\x42" }, - { 0x1f70, "\x03\xb1\x03\x00" }, - { 0x1f71, "\x03\xac" }, - { 0x1f72, "\x03\xb5\x03\x00" }, - { 0x1f73, "\x03\xad" }, - { 0x1f74, "\x03\xb7\x03\x00" }, - { 0x1f75, "\x03\xae" }, - { 0x1f76, "\x03\xb9\x03\x00" }, - { 0x1f77, "\x03\xaf" }, - { 0x1f78, "\x03\xbf\x03\x00" }, - { 0x1f79, "\x03\xcc" }, - { 0x1f7a, "\x03\xc5\x03\x00" }, - { 0x1f7b, "\x03\xcd" }, - { 0x1f7c, "\x03\xc9\x03\x00" }, - { 0x1f7d, "\x03\xce" }, - { 0x1f80, "\x1f\x00\x03\x45" }, - { 0x1f81, "\x1f\x01\x03\x45" }, - { 0x1f82, "\x1f\x02\x03\x45" }, - { 0x1f83, "\x1f\x03\x03\x45" }, - { 0x1f84, "\x1f\x04\x03\x45" }, - { 0x1f85, "\x1f\x05\x03\x45" }, - { 0x1f86, "\x1f\x06\x03\x45" }, - { 0x1f87, "\x1f\x07\x03\x45" }, - { 0x1f88, "\x1f\x08\x03\x45" }, - { 0x1f89, "\x1f\x09\x03\x45" }, - { 0x1f8a, "\x1f\x0a\x03\x45" }, - { 0x1f8b, "\x1f\x0b\x03\x45" }, - { 0x1f8c, "\x1f\x0c\x03\x45" }, - { 0x1f8d, "\x1f\x0d\x03\x45" }, - { 0x1f8e, "\x1f\x0e\x03\x45" }, - { 0x1f8f, "\x1f\x0f\x03\x45" }, - { 0x1f90, "\x1f\x20\x03\x45" }, - { 0x1f91, "\x1f\x21\x03\x45" }, - { 0x1f92, "\x1f\x22\x03\x45" }, - { 0x1f93, "\x1f\x23\x03\x45" }, - { 0x1f94, "\x1f\x24\x03\x45" }, - { 0x1f95, "\x1f\x25\x03\x45" }, - { 0x1f96, "\x1f\x26\x03\x45" }, - { 0x1f97, "\x1f\x27\x03\x45" }, - { 0x1f98, "\x1f\x28\x03\x45" }, - { 0x1f99, "\x1f\x29\x03\x45" }, - { 0x1f9a, "\x1f\x2a\x03\x45" }, - { 0x1f9b, "\x1f\x2b\x03\x45" }, - { 0x1f9c, "\x1f\x2c\x03\x45" }, - { 0x1f9d, "\x1f\x2d\x03\x45" }, - { 0x1f9e, "\x1f\x2e\x03\x45" }, - { 0x1f9f, "\x1f\x2f\x03\x45" }, - { 0x1fa0, "\x1f\x60\x03\x45" }, - { 0x1fa1, "\x1f\x61\x03\x45" }, - { 0x1fa2, "\x1f\x62\x03\x45" }, - { 0x1fa3, "\x1f\x63\x03\x45" }, - { 0x1fa4, "\x1f\x64\x03\x45" }, - { 0x1fa5, "\x1f\x65\x03\x45" }, - { 0x1fa6, "\x1f\x66\x03\x45" }, - { 0x1fa7, "\x1f\x67\x03\x45" }, - { 0x1fa8, "\x1f\x68\x03\x45" }, - { 0x1fa9, "\x1f\x69\x03\x45" }, - { 0x1faa, "\x1f\x6a\x03\x45" }, - { 0x1fab, "\x1f\x6b\x03\x45" }, - { 0x1fac, "\x1f\x6c\x03\x45" }, - { 0x1fad, "\x1f\x6d\x03\x45" }, - { 0x1fae, "\x1f\x6e\x03\x45" }, - { 0x1faf, "\x1f\x6f\x03\x45" }, - { 0x1fb0, "\x03\xb1\x03\x06" }, - { 0x1fb1, "\x03\xb1\x03\x04" }, - { 0x1fb2, "\x1f\x70\x03\x45" }, - { 0x1fb3, "\x03\xb1\x03\x45" }, - { 0x1fb4, "\x03\xac\x03\x45" }, - { 0x1fb6, "\x03\xb1\x03\x42" }, - { 0x1fb7, "\x1f\xb6\x03\x45" }, - { 0x1fb8, "\x03\x91\x03\x06" }, - { 0x1fb9, "\x03\x91\x03\x04" }, - { 0x1fba, "\x03\x91\x03\x00" }, - { 0x1fbb, "\x03\x86" }, - { 0x1fbc, "\x03\x91\x03\x45" }, - { 0x1fbe, "\x03\xb9" }, - { 0x1fc1, "\x00\xa8\x03\x42" }, - { 0x1fc2, "\x1f\x74\x03\x45" }, - { 0x1fc3, "\x03\xb7\x03\x45" }, - { 0x1fc4, "\x03\xae\x03\x45" }, - { 0x1fc6, "\x03\xb7\x03\x42" }, - { 0x1fc7, "\x1f\xc6\x03\x45" }, - { 0x1fc8, "\x03\x95\x03\x00" }, - { 0x1fc9, "\x03\x88" }, - { 0x1fca, "\x03\x97\x03\x00" }, - { 0x1fcb, "\x03\x89" }, - { 0x1fcc, "\x03\x97\x03\x45" }, - { 0x1fcd, "\x1f\xbf\x03\x00" }, - { 0x1fce, "\x1f\xbf\x03\x01" }, - { 0x1fcf, "\x1f\xbf\x03\x42" }, - { 0x1fd0, "\x03\xb9\x03\x06" }, - { 0x1fd1, "\x03\xb9\x03\x04" }, - { 0x1fd2, "\x03\xca\x03\x00" }, - { 0x1fd3, "\x03\x90" }, - { 0x1fd6, "\x03\xb9\x03\x42" }, - { 0x1fd7, "\x03\xca\x03\x42" }, - { 0x1fd8, "\x03\x99\x03\x06" }, - { 0x1fd9, "\x03\x99\x03\x04" }, - { 0x1fda, "\x03\x99\x03\x00" }, - { 0x1fdb, "\x03\x8a" }, - { 0x1fdd, "\x1f\xfe\x03\x00" }, - { 0x1fde, "\x1f\xfe\x03\x01" }, - { 0x1fdf, "\x1f\xfe\x03\x42" }, - { 0x1fe0, "\x03\xc5\x03\x06" }, - { 0x1fe1, "\x03\xc5\x03\x04" }, - { 0x1fe2, "\x03\xcb\x03\x00" }, - { 0x1fe3, "\x03\xb0" }, - { 0x1fe4, "\x03\xc1\x03\x13" }, - { 0x1fe5, "\x03\xc1\x03\x14" }, - { 0x1fe6, "\x03\xc5\x03\x42" }, - { 0x1fe7, "\x03\xcb\x03\x42" }, - { 0x1fe8, "\x03\xa5\x03\x06" }, - { 0x1fe9, "\x03\xa5\x03\x04" }, - { 0x1fea, "\x03\xa5\x03\x00" }, - { 0x1feb, "\x03\x8e" }, - { 0x1fec, "\x03\xa1\x03\x14" }, - { 0x1fed, "\x00\xa8\x03\x00" }, - { 0x1fee, "\x03\x85" }, - { 0x1fef, "\x00\x60" }, - { 0x1ff2, "\x1f\x7c\x03\x45" }, - { 0x1ff3, "\x03\xc9\x03\x45" }, - { 0x1ff4, "\x03\xce\x03\x45" }, - { 0x1ff6, "\x03\xc9\x03\x42" }, - { 0x1ff7, "\x1f\xf6\x03\x45" }, - { 0x1ff8, "\x03\x9f\x03\x00" }, - { 0x1ff9, "\x03\x8c" }, - { 0x1ffa, "\x03\xa9\x03\x00" }, - { 0x1ffb, "\x03\x8f" }, - { 0x1ffc, "\x03\xa9\x03\x45" }, - { 0x1ffd, "\x00\xb4" }, - { 0x2000, "\x20\x02" }, - { 0x2001, "\x20\x03" }, - { 0x2126, "\x03\xa9" }, - { 0x212a, "\x00\x4b" }, - { 0x212b, "\x00\xc5" }, - { 0x219a, "\x21\x90\x03\x38" }, - { 0x219b, "\x21\x92\x03\x38" }, - { 0x21ae, "\x21\x94\x03\x38" }, - { 0x21cd, "\x21\xd0\x03\x38" }, - { 0x21ce, "\x21\xd4\x03\x38" }, - { 0x21cf, "\x21\xd2\x03\x38" }, - { 0x2204, "\x22\x03\x03\x38" }, - { 0x2209, "\x22\x08\x03\x38" }, - { 0x220c, "\x22\x0b\x03\x38" }, - { 0x2224, "\x22\x23\x03\x38" }, - { 0x2226, "\x22\x25\x03\x38" }, - { 0x2241, "\x22\x3c\x03\x38" }, - { 0x2244, "\x22\x43\x03\x38" }, - { 0x2247, "\x22\x45\x03\x38" }, - { 0x2249, "\x22\x48\x03\x38" }, - { 0x2260, "\x00\x3d\x03\x38" }, - { 0x2262, "\x22\x61\x03\x38" }, - { 0x226d, "\x22\x4d\x03\x38" }, - { 0x226e, "\x00\x3c\x03\x38" }, - { 0x226f, "\x00\x3e\x03\x38" }, - { 0x2270, "\x22\x64\x03\x38" }, - { 0x2271, "\x22\x65\x03\x38" }, - { 0x2274, "\x22\x72\x03\x38" }, - { 0x2275, "\x22\x73\x03\x38" }, - { 0x2278, "\x22\x76\x03\x38" }, - { 0x2279, "\x22\x77\x03\x38" }, - { 0x2280, "\x22\x7a\x03\x38" }, - { 0x2281, "\x22\x7b\x03\x38" }, - { 0x2284, "\x22\x82\x03\x38" }, - { 0x2285, "\x22\x83\x03\x38" }, - { 0x2288, "\x22\x86\x03\x38" }, - { 0x2289, "\x22\x87\x03\x38" }, - { 0x22ac, "\x22\xa2\x03\x38" }, - { 0x22ad, "\x22\xa8\x03\x38" }, - { 0x22ae, "\x22\xa9\x03\x38" }, - { 0x22af, "\x22\xab\x03\x38" }, - { 0x22e0, "\x22\x7c\x03\x38" }, - { 0x22e1, "\x22\x7d\x03\x38" }, - { 0x22e2, "\x22\x91\x03\x38" }, - { 0x22e3, "\x22\x92\x03\x38" }, - { 0x22ea, "\x22\xb2\x03\x38" }, - { 0x22eb, "\x22\xb3\x03\x38" }, - { 0x22ec, "\x22\xb4\x03\x38" }, - { 0x22ed, "\x22\xb5\x03\x38" }, - { 0x2329, "\x30\x08" }, - { 0x232a, "\x30\x09" }, - { 0x304c, "\x30\x4b\x30\x99" }, - { 0x304e, "\x30\x4d\x30\x99" }, - { 0x3050, "\x30\x4f\x30\x99" }, - { 0x3052, "\x30\x51\x30\x99" }, - { 0x3054, "\x30\x53\x30\x99" }, - { 0x3056, "\x30\x55\x30\x99" }, - { 0x3058, "\x30\x57\x30\x99" }, - { 0x305a, "\x30\x59\x30\x99" }, - { 0x305c, "\x30\x5b\x30\x99" }, - { 0x305e, "\x30\x5d\x30\x99" }, - { 0x3060, "\x30\x5f\x30\x99" }, - { 0x3062, "\x30\x61\x30\x99" }, - { 0x3065, "\x30\x64\x30\x99" }, - { 0x3067, "\x30\x66\x30\x99" }, - { 0x3069, "\x30\x68\x30\x99" }, - { 0x3070, "\x30\x6f\x30\x99" }, - { 0x3071, "\x30\x6f\x30\x9a" }, - { 0x3073, "\x30\x72\x30\x99" }, - { 0x3074, "\x30\x72\x30\x9a" }, - { 0x3076, "\x30\x75\x30\x99" }, - { 0x3077, "\x30\x75\x30\x9a" }, - { 0x3079, "\x30\x78\x30\x99" }, - { 0x307a, "\x30\x78\x30\x9a" }, - { 0x307c, "\x30\x7b\x30\x99" }, - { 0x307d, "\x30\x7b\x30\x9a" }, - { 0x3094, "\x30\x46\x30\x99" }, - { 0x309e, "\x30\x9d\x30\x99" }, - { 0x30ac, "\x30\xab\x30\x99" }, - { 0x30ae, "\x30\xad\x30\x99" }, - { 0x30b0, "\x30\xaf\x30\x99" }, - { 0x30b2, "\x30\xb1\x30\x99" }, - { 0x30b4, "\x30\xb3\x30\x99" }, - { 0x30b6, "\x30\xb5\x30\x99" }, - { 0x30b8, "\x30\xb7\x30\x99" }, - { 0x30ba, "\x30\xb9\x30\x99" }, - { 0x30bc, "\x30\xbb\x30\x99" }, - { 0x30be, "\x30\xbd\x30\x99" }, - { 0x30c0, "\x30\xbf\x30\x99" }, - { 0x30c2, "\x30\xc1\x30\x99" }, - { 0x30c5, "\x30\xc4\x30\x99" }, - { 0x30c7, "\x30\xc6\x30\x99" }, - { 0x30c9, "\x30\xc8\x30\x99" }, - { 0x30d0, "\x30\xcf\x30\x99" }, - { 0x30d1, "\x30\xcf\x30\x9a" }, - { 0x30d3, "\x30\xd2\x30\x99" }, - { 0x30d4, "\x30\xd2\x30\x9a" }, - { 0x30d6, "\x30\xd5\x30\x99" }, - { 0x30d7, "\x30\xd5\x30\x9a" }, - { 0x30d9, "\x30\xd8\x30\x99" }, - { 0x30da, "\x30\xd8\x30\x9a" }, - { 0x30dc, "\x30\xdb\x30\x99" }, - { 0x30dd, "\x30\xdb\x30\x9a" }, - { 0x30f4, "\x30\xa6\x30\x99" }, - { 0x30f7, "\x30\xef\x30\x99" }, - { 0x30f8, "\x30\xf0\x30\x99" }, - { 0x30f9, "\x30\xf1\x30\x99" }, - { 0x30fa, "\x30\xf2\x30\x99" }, - { 0x30fe, "\x30\xfd\x30\x99" }, - { 0xf900, "\x8c\x48" }, - { 0xf901, "\x66\xf4" }, - { 0xf902, "\x8e\xca" }, - { 0xf903, "\x8c\xc8" }, - { 0xf904, "\x6e\xd1" }, - { 0xf905, "\x4e\x32" }, - { 0xf906, "\x53\xe5" }, - { 0xf907, "\x9f\x9c" }, - { 0xf908, "\x9f\x9c" }, - { 0xf909, "\x59\x51" }, - { 0xf90a, "\x91\xd1" }, - { 0xf90b, "\x55\x87" }, - { 0xf90c, "\x59\x48" }, - { 0xf90d, "\x61\xf6" }, - { 0xf90e, "\x76\x69" }, - { 0xf90f, "\x7f\x85" }, - { 0xf910, "\x86\x3f" }, - { 0xf911, "\x87\xba" }, - { 0xf912, "\x88\xf8" }, - { 0xf913, "\x90\x8f" }, - { 0xf914, "\x6a\x02" }, - { 0xf915, "\x6d\x1b" }, - { 0xf916, "\x70\xd9" }, - { 0xf917, "\x73\xde" }, - { 0xf918, "\x84\x3d" }, - { 0xf919, "\x91\x6a" }, - { 0xf91a, "\x99\xf1" }, - { 0xf91b, "\x4e\x82" }, - { 0xf91c, "\x53\x75" }, - { 0xf91d, "\x6b\x04" }, - { 0xf91e, "\x72\x1b" }, - { 0xf91f, "\x86\x2d" }, - { 0xf920, "\x9e\x1e" }, - { 0xf921, "\x5d\x50" }, - { 0xf922, "\x6f\xeb" }, - { 0xf923, "\x85\xcd" }, - { 0xf924, "\x89\x64" }, - { 0xf925, "\x62\xc9" }, - { 0xf926, "\x81\xd8" }, - { 0xf927, "\x88\x1f" }, - { 0xf928, "\x5e\xca" }, - { 0xf929, "\x67\x17" }, - { 0xf92a, "\x6d\x6a" }, - { 0xf92b, "\x72\xfc" }, - { 0xf92c, "\x90\xce" }, - { 0xf92d, "\x4f\x86" }, - { 0xf92e, "\x51\xb7" }, - { 0xf92f, "\x52\xde" }, - { 0xf930, "\x64\xc4" }, - { 0xf931, "\x6a\xd3" }, - { 0xf932, "\x72\x10" }, - { 0xf933, "\x76\xe7" }, - { 0xf934, "\x80\x01" }, - { 0xf935, "\x86\x06" }, - { 0xf936, "\x86\x5c" }, - { 0xf937, "\x8d\xef" }, - { 0xf938, "\x97\x32" }, - { 0xf939, "\x9b\x6f" }, - { 0xf93a, "\x9d\xfa" }, - { 0xf93b, "\x78\x8c" }, - { 0xf93c, "\x79\x7f" }, - { 0xf93d, "\x7d\xa0" }, - { 0xf93e, "\x83\xc9" }, - { 0xf93f, "\x93\x04" }, - { 0xf940, "\x9e\x7f" }, - { 0xf941, "\x8a\xd6" }, - { 0xf942, "\x58\xdf" }, - { 0xf943, "\x5f\x04" }, - { 0xf944, "\x7c\x60" }, - { 0xf945, "\x80\x7e" }, - { 0xf946, "\x72\x62" }, - { 0xf947, "\x78\xca" }, - { 0xf948, "\x8c\xc2" }, - { 0xf949, "\x96\xf7" }, - { 0xf94a, "\x58\xd8" }, - { 0xf94b, "\x5c\x62" }, - { 0xf94c, "\x6a\x13" }, - { 0xf94d, "\x6d\xda" }, - { 0xf94e, "\x6f\x0f" }, - { 0xf94f, "\x7d\x2f" }, - { 0xf950, "\x7e\x37" }, - { 0xf951, "\x96\xfb" }, - { 0xf952, "\x52\xd2" }, - { 0xf953, "\x80\x8b" }, - { 0xf954, "\x51\xdc" }, - { 0xf955, "\x51\xcc" }, - { 0xf956, "\x7a\x1c" }, - { 0xf957, "\x7d\xbe" }, - { 0xf958, "\x83\xf1" }, - { 0xf959, "\x96\x75" }, - { 0xf95a, "\x8b\x80" }, - { 0xf95b, "\x62\xcf" }, - { 0xf95c, "\x6a\x02" }, - { 0xf95d, "\x8a\xfe" }, - { 0xf95e, "\x4e\x39" }, - { 0xf95f, "\x5b\xe7" }, - { 0xf960, "\x60\x12" }, - { 0xf961, "\x73\x87" }, - { 0xf962, "\x75\x70" }, - { 0xf963, "\x53\x17" }, - { 0xf964, "\x78\xfb" }, - { 0xf965, "\x4f\xbf" }, - { 0xf966, "\x5f\xa9" }, - { 0xf967, "\x4e\x0d" }, - { 0xf968, "\x6c\xcc" }, - { 0xf969, "\x65\x78" }, - { 0xf96a, "\x7d\x22" }, - { 0xf96b, "\x53\xc3" }, - { 0xf96c, "\x58\x5e" }, - { 0xf96d, "\x77\x01" }, - { 0xf96e, "\x84\x49" }, - { 0xf96f, "\x8a\xaa" }, - { 0xf970, "\x6b\xba" }, - { 0xf971, "\x8f\xb0" }, - { 0xf972, "\x6c\x88" }, - { 0xf973, "\x62\xfe" }, - { 0xf974, "\x82\xe5" }, - { 0xf975, "\x63\xa0" }, - { 0xf976, "\x75\x65" }, - { 0xf977, "\x4e\xae" }, - { 0xf978, "\x51\x69" }, - { 0xf979, "\x51\xc9" }, - { 0xf97a, "\x68\x81" }, - { 0xf97b, "\x7c\xe7" }, - { 0xf97c, "\x82\x6f" }, - { 0xf97d, "\x8a\xd2" }, - { 0xf97e, "\x91\xcf" }, - { 0xf97f, "\x52\xf5" }, - { 0xf980, "\x54\x42" }, - { 0xf981, "\x59\x73" }, - { 0xf982, "\x5e\xec" }, - { 0xf983, "\x65\xc5" }, - { 0xf984, "\x6f\xfe" }, - { 0xf985, "\x79\x2a" }, - { 0xf986, "\x95\xad" }, - { 0xf987, "\x9a\x6a" }, - { 0xf988, "\x9e\x97" }, - { 0xf989, "\x9e\xce" }, - { 0xf98a, "\x52\x9b" }, - { 0xf98b, "\x66\xc6" }, - { 0xf98c, "\x6b\x77" }, - { 0xf98d, "\x8f\x62" }, - { 0xf98e, "\x5e\x74" }, - { 0xf98f, "\x61\x90" }, - { 0xf990, "\x62\x00" }, - { 0xf991, "\x64\x9a" }, - { 0xf992, "\x6f\x23" }, - { 0xf993, "\x71\x49" }, - { 0xf994, "\x74\x89" }, - { 0xf995, "\x79\xca" }, - { 0xf996, "\x7d\xf4" }, - { 0xf997, "\x80\x6f" }, - { 0xf998, "\x8f\x26" }, - { 0xf999, "\x84\xee" }, - { 0xf99a, "\x90\x23" }, - { 0xf99b, "\x93\x4a" }, - { 0xf99c, "\x52\x17" }, - { 0xf99d, "\x52\xa3" }, - { 0xf99e, "\x54\xbd" }, - { 0xf99f, "\x70\xc8" }, - { 0xf9a0, "\x88\xc2" }, - { 0xf9a1, "\x8a\xaa" }, - { 0xf9a2, "\x5e\xc9" }, - { 0xf9a3, "\x5f\xf5" }, - { 0xf9a4, "\x63\x7b" }, - { 0xf9a5, "\x6b\xae" }, - { 0xf9a6, "\x7c\x3e" }, - { 0xf9a7, "\x73\x75" }, - { 0xf9a8, "\x4e\xe4" }, - { 0xf9a9, "\x56\xf9" }, - { 0xf9aa, "\x5b\xe7" }, - { 0xf9ab, "\x5d\xba" }, - { 0xf9ac, "\x60\x1c" }, - { 0xf9ad, "\x73\xb2" }, - { 0xf9ae, "\x74\x69" }, - { 0xf9af, "\x7f\x9a" }, - { 0xf9b0, "\x80\x46" }, - { 0xf9b1, "\x92\x34" }, - { 0xf9b2, "\x96\xf6" }, - { 0xf9b3, "\x97\x48" }, - { 0xf9b4, "\x98\x18" }, - { 0xf9b5, "\x4f\x8b" }, - { 0xf9b6, "\x79\xae" }, - { 0xf9b7, "\x91\xb4" }, - { 0xf9b8, "\x96\xb8" }, - { 0xf9b9, "\x60\xe1" }, - { 0xf9ba, "\x4e\x86" }, - { 0xf9bb, "\x50\xda" }, - { 0xf9bc, "\x5b\xee" }, - { 0xf9bd, "\x5c\x3f" }, - { 0xf9be, "\x65\x99" }, - { 0xf9bf, "\x6a\x02" }, - { 0xf9c0, "\x71\xce" }, - { 0xf9c1, "\x76\x42" }, - { 0xf9c2, "\x84\xfc" }, - { 0xf9c3, "\x90\x7c" }, - { 0xf9c4, "\x9f\x8d" }, - { 0xf9c5, "\x66\x88" }, - { 0xf9c6, "\x96\x2e" }, - { 0xf9c7, "\x52\x89" }, - { 0xf9c8, "\x67\x7b" }, - { 0xf9c9, "\x67\xf3" }, - { 0xf9ca, "\x6d\x41" }, - { 0xf9cb, "\x6e\x9c" }, - { 0xf9cc, "\x74\x09" }, - { 0xf9cd, "\x75\x59" }, - { 0xf9ce, "\x78\x6b" }, - { 0xf9cf, "\x7d\x10" }, - { 0xf9d0, "\x98\x5e" }, - { 0xf9d1, "\x51\x6d" }, - { 0xf9d2, "\x62\x2e" }, - { 0xf9d3, "\x96\x78" }, - { 0xf9d4, "\x50\x2b" }, - { 0xf9d5, "\x5d\x19" }, - { 0xf9d6, "\x6d\xea" }, - { 0xf9d7, "\x8f\x2a" }, - { 0xf9d8, "\x5f\x8b" }, - { 0xf9d9, "\x61\x44" }, - { 0xf9da, "\x68\x17" }, - { 0xf9db, "\x73\x87" }, - { 0xf9dc, "\x96\x86" }, - { 0xf9dd, "\x52\x29" }, - { 0xf9de, "\x54\x0f" }, - { 0xf9df, "\x5c\x65" }, - { 0xf9e0, "\x66\x13" }, - { 0xf9e1, "\x67\x4e" }, - { 0xf9e2, "\x68\xa8" }, - { 0xf9e3, "\x6c\xe5" }, - { 0xf9e4, "\x74\x06" }, - { 0xf9e5, "\x75\xe2" }, - { 0xf9e6, "\x7f\x79" }, - { 0xf9e7, "\x88\xcf" }, - { 0xf9e8, "\x88\xe1" }, - { 0xf9e9, "\x91\xcc" }, - { 0xf9ea, "\x96\xe2" }, - { 0xf9eb, "\x53\x3f" }, - { 0xf9ec, "\x6e\xba" }, - { 0xf9ed, "\x54\x1d" }, - { 0xf9ee, "\x71\xd0" }, - { 0xf9ef, "\x74\x98" }, - { 0xf9f0, "\x85\xfa" }, - { 0xf9f1, "\x96\xa3" }, - { 0xf9f2, "\x9c\x57" }, - { 0xf9f3, "\x9e\x9f" }, - { 0xf9f4, "\x67\x97" }, - { 0xf9f5, "\x6d\xcb" }, - { 0xf9f6, "\x81\xe8" }, - { 0xf9f7, "\x7a\xcb" }, - { 0xf9f8, "\x7b\x20" }, - { 0xf9f9, "\x7c\x92" }, - { 0xf9fa, "\x72\xc0" }, - { 0xf9fb, "\x70\x99" }, - { 0xf9fc, "\x8b\x58" }, - { 0xf9fd, "\x4e\xc0" }, - { 0xf9fe, "\x83\x36" }, - { 0xf9ff, "\x52\x3a" }, - { 0xfa00, "\x52\x07" }, - { 0xfa01, "\x5e\xa6" }, - { 0xfa02, "\x62\xd3" }, - { 0xfa03, "\x7c\xd6" }, - { 0xfa04, "\x5b\x85" }, - { 0xfa05, "\x6d\x1e" }, - { 0xfa06, "\x66\xb4" }, - { 0xfa07, "\x8f\x3b" }, - { 0xfa08, "\x88\x4c" }, - { 0xfa09, "\x96\x4d" }, - { 0xfa0a, "\x89\x8b" }, - { 0xfa0b, "\x5e\xd3" }, - { 0xfa0c, "\x51\x40" }, - { 0xfa0d, "\x55\xc0" }, - { 0xfa10, "\x58\x5a" }, - { 0xfa12, "\x66\x74" }, - { 0xfa15, "\x51\xde" }, - { 0xfa16, "\x73\x2a" }, - { 0xfa17, "\x76\xca" }, - { 0xfa18, "\x79\x3c" }, - { 0xfa19, "\x79\x5e" }, - { 0xfa1a, "\x79\x65" }, - { 0xfa1b, "\x79\x8f" }, - { 0xfa1c, "\x97\x56" }, - { 0xfa1d, "\x7c\xbe" }, - { 0xfa1e, "\x7f\xbd" }, - { 0xfa20, "\x86\x12" }, - { 0xfa22, "\x8a\xf8" }, - { 0xfa25, "\x90\x38" }, - { 0xfa26, "\x90\xfd" }, - { 0xfa2a, "\x98\xef" }, - { 0xfa2b, "\x98\xfc" }, - { 0xfa2c, "\x99\x28" }, - { 0xfa2d, "\x9d\xb4" }, - { 0xfb1d, "\x05\xd9\x05\xb4" }, - { 0xfb1f, "\x05\xf2\x05\xb7" }, - { 0xfb2a, "\x05\xe9\x05\xc1" }, - { 0xfb2b, "\x05\xe9\x05\xc2" }, - { 0xfb2c, "\xfb\x49\x05\xc1" }, - { 0xfb2d, "\xfb\x49\x05\xc2" }, - { 0xfb2e, "\x05\xd0\x05\xb7" }, - { 0xfb2f, "\x05\xd0\x05\xb8" }, - { 0xfb30, "\x05\xd0\x05\xbc" }, - { 0xfb31, "\x05\xd1\x05\xbc" }, - { 0xfb32, "\x05\xd2\x05\xbc" }, - { 0xfb33, "\x05\xd3\x05\xbc" }, - { 0xfb34, "\x05\xd4\x05\xbc" }, - { 0xfb35, "\x05\xd5\x05\xbc" }, - { 0xfb36, "\x05\xd6\x05\xbc" }, - { 0xfb38, "\x05\xd8\x05\xbc" }, - { 0xfb39, "\x05\xd9\x05\xbc" }, - { 0xfb3a, "\x05\xda\x05\xbc" }, - { 0xfb3b, "\x05\xdb\x05\xbc" }, - { 0xfb3c, "\x05\xdc\x05\xbc" }, - { 0xfb3e, "\x05\xde\x05\xbc" }, - { 0xfb40, "\x05\xe0\x05\xbc" }, - { 0xfb41, "\x05\xe1\x05\xbc" }, - { 0xfb43, "\x05\xe3\x05\xbc" }, - { 0xfb44, "\x05\xe4\x05\xbc" }, - { 0xfb46, "\x05\xe6\x05\xbc" }, - { 0xfb47, "\x05\xe7\x05\xbc" }, - { 0xfb48, "\x05\xe8\x05\xbc" }, - { 0xfb49, "\x05\xe9\x05\xbc" }, - { 0xfb4a, "\x05\xea\x05\xbc" }, - { 0xfb4b, "\x05\xd5\x05\xb9" }, - { 0xfb4c, "\x05\xd1\x05\xbf" }, - { 0xfb4d, "\x05\xdb\x05\xbf" }, - { 0xfb4e, "\x05\xe4\x05\xbf" } -}; - -static const decomp_entry full_decomposition[] = -{ - { 0x00a0, "\x00\x20" }, - { 0x00a8, "\x00\x20\x03\x08" }, - { 0x00aa, "\x00\x61" }, - { 0x00af, "\x00\x20\x03\x04" }, - { 0x00b2, "\x00\x32" }, - { 0x00b3, "\x00\x33" }, - { 0x00b4, "\x00\x20\x03\x01" }, - { 0x00b5, "\x03\xbc" }, - { 0x00b8, "\x00\x20\x03\x27" }, - { 0x00b9, "\x00\x31" }, - { 0x00ba, "\x00\x6f" }, - { 0x00bc, "\x00\x31\x20\x44\x00\x34" }, - { 0x00bd, "\x00\x31\x20\x44\x00\x32" }, - { 0x00be, "\x00\x33\x20\x44\x00\x34" }, - { 0x0132, "\x00\x49\x00\x4a" }, - { 0x0133, "\x00\x69\x00\x6a" }, - { 0x013f, "\x00\x4c\x00\xb7" }, - { 0x0140, "\x00\x6c\x00\xb7" }, - { 0x0149, "\x02\xbc\x00\x6e" }, - { 0x017f, "\x00\x73" }, - { 0x01c4, "\x00\x44\x01\x7d" }, - { 0x01c5, "\x00\x44\x01\x7e" }, - { 0x01c6, "\x00\x64\x01\x7e" }, - { 0x01c7, "\x00\x4c\x00\x4a" }, - { 0x01c8, "\x00\x4c\x00\x6a" }, - { 0x01c9, "\x00\x6c\x00\x6a" }, - { 0x01ca, "\x00\x4e\x00\x4a" }, - { 0x01cb, "\x00\x4e\x00\x6a" }, - { 0x01cc, "\x00\x6e\x00\x6a" }, - { 0x01f1, "\x00\x44\x00\x5a" }, - { 0x01f2, "\x00\x44\x00\x7a" }, - { 0x01f3, "\x00\x64\x00\x7a" }, - { 0x02b0, "\x00\x68" }, - { 0x02b1, "\x02\x66" }, - { 0x02b2, "\x00\x6a" }, - { 0x02b3, "\x00\x72" }, - { 0x02b4, "\x02\x79" }, - { 0x02b5, "\x02\x7b" }, - { 0x02b6, "\x02\x81" }, - { 0x02b7, "\x00\x77" }, - { 0x02b8, "\x00\x79" }, - { 0x02d8, "\x00\x20\x03\x06" }, - { 0x02d9, "\x00\x20\x03\x07" }, - { 0x02da, "\x00\x20\x03\x0a" }, - { 0x02db, "\x00\x20\x03\x28" }, - { 0x02dc, "\x00\x20\x03\x03" }, - { 0x02dd, "\x00\x20\x03\x0b" }, - { 0x02e0, "\x02\x63" }, - { 0x02e1, "\x00\x6c" }, - { 0x02e2, "\x00\x73" }, - { 0x02e3, "\x00\x78" }, - { 0x02e4, "\x02\x95" }, - { 0x037a, "\x00\x20\x03\x45" }, - { 0x0384, "\x00\x20\x03\x01" }, - { 0x03d0, "\x03\xb2" }, - { 0x03d1, "\x03\xb8" }, - { 0x03d2, "\x03\xa5" }, - { 0x03d5, "\x03\xc6" }, - { 0x03d6, "\x03\xc0" }, - { 0x03f0, "\x03\xba" }, - { 0x03f1, "\x03\xc1" }, - { 0x03f2, "\x03\xc2" }, - { 0x0587, "\x05\x65\x05\x82" }, - { 0x0675, "\x06\x27\x06\x74" }, - { 0x0676, "\x06\x48\x06\x74" }, - { 0x0677, "\x06\xc7\x06\x74" }, - { 0x0678, "\x06\x4a\x06\x74" }, - { 0x0e33, "\x0e\x4d\x0e\x32" }, - { 0x0eb3, "\x0e\xcd\x0e\xb2" }, - { 0x0edc, "\x0e\xab\x0e\x99" }, - { 0x0edd, "\x0e\xab\x0e\xa1" }, - { 0x0f0c, "\x0f\x0b" }, - { 0x0f77, "\x0f\xb2\x0f\x81" }, - { 0x0f79, "\x0f\xb3\x0f\x81" }, - { 0x1e9a, "\x00\x61\x02\xbe" }, - { 0x1fbd, "\x00\x20\x03\x13" }, - { 0x1fbf, "\x00\x20\x03\x13" }, - { 0x1fc0, "\x00\x20\x03\x42" }, - { 0x1ffe, "\x00\x20\x03\x14" }, - { 0x2002, "\x00\x20" }, - { 0x2003, "\x00\x20" }, - { 0x2004, "\x00\x20" }, - { 0x2005, "\x00\x20" }, - { 0x2006, "\x00\x20" }, - { 0x2007, "\x00\x20" }, - { 0x2008, "\x00\x20" }, - { 0x2009, "\x00\x20" }, - { 0x200a, "\x00\x20" }, - { 0x2011, "\x20\x10" }, - { 0x2017, "\x00\x20\x03\x33" }, - { 0x2024, "\x00\x2e" }, - { 0x2025, "\x00\x2e\x00\x2e" }, - { 0x2026, "\x00\x2e\x00\x2e\x00\x2e" }, - { 0x202f, "\x00\x20" }, - { 0x2033, "\x20\x32\x20\x32" }, - { 0x2034, "\x20\x32\x20\x32\x20\x32" }, - { 0x2036, "\x20\x35\x20\x35" }, - { 0x2037, "\x20\x35\x20\x35\x20\x35" }, - { 0x203c, "\x00\x21\x00\x21" }, - { 0x203e, "\x00\x20\x03\x05" }, - { 0x2048, "\x00\x3f\x00\x21" }, - { 0x2049, "\x00\x21\x00\x3f" }, - { 0x2070, "\x00\x30" }, - { 0x2074, "\x00\x34" }, - { 0x2075, "\x00\x35" }, - { 0x2076, "\x00\x36" }, - { 0x2077, "\x00\x37" }, - { 0x2078, "\x00\x38" }, - { 0x2079, "\x00\x39" }, - { 0x207a, "\x00\x2b" }, - { 0x207b, "\x22\x12" }, - { 0x207c, "\x00\x3d" }, - { 0x207d, "\x00\x28" }, - { 0x207e, "\x00\x29" }, - { 0x207f, "\x00\x6e" }, - { 0x2080, "\x00\x30" }, - { 0x2081, "\x00\x31" }, - { 0x2082, "\x00\x32" }, - { 0x2083, "\x00\x33" }, - { 0x2084, "\x00\x34" }, - { 0x2085, "\x00\x35" }, - { 0x2086, "\x00\x36" }, - { 0x2087, "\x00\x37" }, - { 0x2088, "\x00\x38" }, - { 0x2089, "\x00\x39" }, - { 0x208a, "\x00\x2b" }, - { 0x208b, "\x22\x12" }, - { 0x208c, "\x00\x3d" }, - { 0x208d, "\x00\x28" }, - { 0x208e, "\x00\x29" }, - { 0x20a8, "\x00\x52\x00\x73" }, - { 0x2100, "\x00\x61\x00\x2f\x00\x63" }, - { 0x2101, "\x00\x61\x00\x2f\x00\x73" }, - { 0x2102, "\x00\x43" }, - { 0x2103, "\x00\xb0\x00\x43" }, - { 0x2105, "\x00\x63\x00\x2f\x00\x6f" }, - { 0x2106, "\x00\x63\x00\x2f\x00\x75" }, - { 0x2107, "\x01\x90" }, - { 0x2109, "\x00\xb0\x00\x46" }, - { 0x210a, "\x00\x67" }, - { 0x210b, "\x00\x48" }, - { 0x210c, "\x00\x48" }, - { 0x210d, "\x00\x48" }, - { 0x210e, "\x00\x68" }, - { 0x210f, "\x01\x27" }, - { 0x2110, "\x00\x49" }, - { 0x2111, "\x00\x49" }, - { 0x2112, "\x00\x4c" }, - { 0x2113, "\x00\x6c" }, - { 0x2115, "\x00\x4e" }, - { 0x2116, "\x00\x4e\x00\x6f" }, - { 0x2119, "\x00\x50" }, - { 0x211a, "\x00\x51" }, - { 0x211b, "\x00\x52" }, - { 0x211c, "\x00\x52" }, - { 0x211d, "\x00\x52" }, - { 0x2120, "\x00\x53\x00\x4d" }, - { 0x2121, "\x00\x54\x00\x45\x00\x4c" }, - { 0x2122, "\x00\x54\x00\x4d" }, - { 0x2124, "\x00\x5a" }, - { 0x2128, "\x00\x5a" }, - { 0x212c, "\x00\x42" }, - { 0x212d, "\x00\x43" }, - { 0x212f, "\x00\x65" }, - { 0x2130, "\x00\x45" }, - { 0x2131, "\x00\x46" }, - { 0x2133, "\x00\x4d" }, - { 0x2134, "\x00\x6f" }, - { 0x2135, "\x05\xd0" }, - { 0x2136, "\x05\xd1" }, - { 0x2137, "\x05\xd2" }, - { 0x2138, "\x05\xd3" }, - { 0x2139, "\x00\x69" }, - { 0x2153, "\x00\x31\x20\x44\x00\x33" }, - { 0x2154, "\x00\x32\x20\x44\x00\x33" }, - { 0x2155, "\x00\x31\x20\x44\x00\x35" }, - { 0x2156, "\x00\x32\x20\x44\x00\x35" }, - { 0x2157, "\x00\x33\x20\x44\x00\x35" }, - { 0x2158, "\x00\x34\x20\x44\x00\x35" }, - { 0x2159, "\x00\x31\x20\x44\x00\x36" }, - { 0x215a, "\x00\x35\x20\x44\x00\x36" }, - { 0x215b, "\x00\x31\x20\x44\x00\x38" }, - { 0x215c, "\x00\x33\x20\x44\x00\x38" }, - { 0x215d, "\x00\x35\x20\x44\x00\x38" }, - { 0x215e, "\x00\x37\x20\x44\x00\x38" }, - { 0x215f, "\x00\x31\x20\x44" }, - { 0x2160, "\x00\x49" }, - { 0x2161, "\x00\x49\x00\x49" }, - { 0x2162, "\x00\x49\x00\x49\x00\x49" }, - { 0x2163, "\x00\x49\x00\x56" }, - { 0x2164, "\x00\x56" }, - { 0x2165, "\x00\x56\x00\x49" }, - { 0x2166, "\x00\x56\x00\x49\x00\x49" }, - { 0x2167, "\x00\x56\x00\x49\x00\x49\x00\x49" }, - { 0x2168, "\x00\x49\x00\x58" }, - { 0x2169, "\x00\x58" }, - { 0x216a, "\x00\x58\x00\x49" }, - { 0x216b, "\x00\x58\x00\x49\x00\x49" }, - { 0x216c, "\x00\x4c" }, - { 0x216d, "\x00\x43" }, - { 0x216e, "\x00\x44" }, - { 0x216f, "\x00\x4d" }, - { 0x2170, "\x00\x69" }, - { 0x2171, "\x00\x69\x00\x69" }, - { 0x2172, "\x00\x69\x00\x69\x00\x69" }, - { 0x2173, "\x00\x69\x00\x76" }, - { 0x2174, "\x00\x76" }, - { 0x2175, "\x00\x76\x00\x69" }, - { 0x2176, "\x00\x76\x00\x69\x00\x69" }, - { 0x2177, "\x00\x76\x00\x69\x00\x69\x00\x69" }, - { 0x2178, "\x00\x69\x00\x78" }, - { 0x2179, "\x00\x78" }, - { 0x217a, "\x00\x78\x00\x69" }, - { 0x217b, "\x00\x78\x00\x69\x00\x69" }, - { 0x217c, "\x00\x6c" }, - { 0x217d, "\x00\x63" }, - { 0x217e, "\x00\x64" }, - { 0x217f, "\x00\x6d" }, - { 0x222c, "\x22\x2b\x22\x2b" }, - { 0x222d, "\x22\x2b\x22\x2b\x22\x2b" }, - { 0x222f, "\x22\x2e\x22\x2e" }, - { 0x2230, "\x22\x2e\x22\x2e\x22\x2e" }, - { 0x2460, "\x00\x31" }, - { 0x2461, "\x00\x32" }, - { 0x2462, "\x00\x33" }, - { 0x2463, "\x00\x34" }, - { 0x2464, "\x00\x35" }, - { 0x2465, "\x00\x36" }, - { 0x2466, "\x00\x37" }, - { 0x2467, "\x00\x38" }, - { 0x2468, "\x00\x39" }, - { 0x2469, "\x00\x31\x00\x30" }, - { 0x246a, "\x00\x31\x00\x31" }, - { 0x246b, "\x00\x31\x00\x32" }, - { 0x246c, "\x00\x31\x00\x33" }, - { 0x246d, "\x00\x31\x00\x34" }, - { 0x246e, "\x00\x31\x00\x35" }, - { 0x246f, "\x00\x31\x00\x36" }, - { 0x2470, "\x00\x31\x00\x37" }, - { 0x2471, "\x00\x31\x00\x38" }, - { 0x2472, "\x00\x31\x00\x39" }, - { 0x2473, "\x00\x32\x00\x30" }, - { 0x2474, "\x00\x28\x00\x31\x00\x29" }, - { 0x2475, "\x00\x28\x00\x32\x00\x29" }, - { 0x2476, "\x00\x28\x00\x33\x00\x29" }, - { 0x2477, "\x00\x28\x00\x34\x00\x29" }, - { 0x2478, "\x00\x28\x00\x35\x00\x29" }, - { 0x2479, "\x00\x28\x00\x36\x00\x29" }, - { 0x247a, "\x00\x28\x00\x37\x00\x29" }, - { 0x247b, "\x00\x28\x00\x38\x00\x29" }, - { 0x247c, "\x00\x28\x00\x39\x00\x29" }, - { 0x247d, "\x00\x28\x00\x31\x00\x30\x00\x29" }, - { 0x247e, "\x00\x28\x00\x31\x00\x31\x00\x29" }, - { 0x247f, "\x00\x28\x00\x31\x00\x32\x00\x29" }, - { 0x2480, "\x00\x28\x00\x31\x00\x33\x00\x29" }, - { 0x2481, "\x00\x28\x00\x31\x00\x34\x00\x29" }, - { 0x2482, "\x00\x28\x00\x31\x00\x35\x00\x29" }, - { 0x2483, "\x00\x28\x00\x31\x00\x36\x00\x29" }, - { 0x2484, "\x00\x28\x00\x31\x00\x37\x00\x29" }, - { 0x2485, "\x00\x28\x00\x31\x00\x38\x00\x29" }, - { 0x2486, "\x00\x28\x00\x31\x00\x39\x00\x29" }, - { 0x2487, "\x00\x28\x00\x32\x00\x30\x00\x29" }, - { 0x2488, "\x00\x31\x00\x2e" }, - { 0x2489, "\x00\x32\x00\x2e" }, - { 0x248a, "\x00\x33\x00\x2e" }, - { 0x248b, "\x00\x34\x00\x2e" }, - { 0x248c, "\x00\x35\x00\x2e" }, - { 0x248d, "\x00\x36\x00\x2e" }, - { 0x248e, "\x00\x37\x00\x2e" }, - { 0x248f, "\x00\x38\x00\x2e" }, - { 0x2490, "\x00\x39\x00\x2e" }, - { 0x2491, "\x00\x31\x00\x30\x00\x2e" }, - { 0x2492, "\x00\x31\x00\x31\x00\x2e" }, - { 0x2493, "\x00\x31\x00\x32\x00\x2e" }, - { 0x2494, "\x00\x31\x00\x33\x00\x2e" }, - { 0x2495, "\x00\x31\x00\x34\x00\x2e" }, - { 0x2496, "\x00\x31\x00\x35\x00\x2e" }, - { 0x2497, "\x00\x31\x00\x36\x00\x2e" }, - { 0x2498, "\x00\x31\x00\x37\x00\x2e" }, - { 0x2499, "\x00\x31\x00\x38\x00\x2e" }, - { 0x249a, "\x00\x31\x00\x39\x00\x2e" }, - { 0x249b, "\x00\x32\x00\x30\x00\x2e" }, - { 0x249c, "\x00\x28\x00\x61\x00\x29" }, - { 0x249d, "\x00\x28\x00\x62\x00\x29" }, - { 0x249e, "\x00\x28\x00\x63\x00\x29" }, - { 0x249f, "\x00\x28\x00\x64\x00\x29" }, - { 0x24a0, "\x00\x28\x00\x65\x00\x29" }, - { 0x24a1, "\x00\x28\x00\x66\x00\x29" }, - { 0x24a2, "\x00\x28\x00\x67\x00\x29" }, - { 0x24a3, "\x00\x28\x00\x68\x00\x29" }, - { 0x24a4, "\x00\x28\x00\x69\x00\x29" }, - { 0x24a5, "\x00\x28\x00\x6a\x00\x29" }, - { 0x24a6, "\x00\x28\x00\x6b\x00\x29" }, - { 0x24a7, "\x00\x28\x00\x6c\x00\x29" }, - { 0x24a8, "\x00\x28\x00\x6d\x00\x29" }, - { 0x24a9, "\x00\x28\x00\x6e\x00\x29" }, - { 0x24aa, "\x00\x28\x00\x6f\x00\x29" }, - { 0x24ab, "\x00\x28\x00\x70\x00\x29" }, - { 0x24ac, "\x00\x28\x00\x71\x00\x29" }, - { 0x24ad, "\x00\x28\x00\x72\x00\x29" }, - { 0x24ae, "\x00\x28\x00\x73\x00\x29" }, - { 0x24af, "\x00\x28\x00\x74\x00\x29" }, - { 0x24b0, "\x00\x28\x00\x75\x00\x29" }, - { 0x24b1, "\x00\x28\x00\x76\x00\x29" }, - { 0x24b2, "\x00\x28\x00\x77\x00\x29" }, - { 0x24b3, "\x00\x28\x00\x78\x00\x29" }, - { 0x24b4, "\x00\x28\x00\x79\x00\x29" }, - { 0x24b5, "\x00\x28\x00\x7a\x00\x29" }, - { 0x24b6, "\x00\x41" }, - { 0x24b7, "\x00\x42" }, - { 0x24b8, "\x00\x43" }, - { 0x24b9, "\x00\x44" }, - { 0x24ba, "\x00\x45" }, - { 0x24bb, "\x00\x46" }, - { 0x24bc, "\x00\x47" }, - { 0x24bd, "\x00\x48" }, - { 0x24be, "\x00\x49" }, - { 0x24bf, "\x00\x4a" }, - { 0x24c0, "\x00\x4b" }, - { 0x24c1, "\x00\x4c" }, - { 0x24c2, "\x00\x4d" }, - { 0x24c3, "\x00\x4e" }, - { 0x24c4, "\x00\x4f" }, - { 0x24c5, "\x00\x50" }, - { 0x24c6, "\x00\x51" }, - { 0x24c7, "\x00\x52" }, - { 0x24c8, "\x00\x53" }, - { 0x24c9, "\x00\x54" }, - { 0x24ca, "\x00\x55" }, - { 0x24cb, "\x00\x56" }, - { 0x24cc, "\x00\x57" }, - { 0x24cd, "\x00\x58" }, - { 0x24ce, "\x00\x59" }, - { 0x24cf, "\x00\x5a" }, - { 0x24d0, "\x00\x61" }, - { 0x24d1, "\x00\x62" }, - { 0x24d2, "\x00\x63" }, - { 0x24d3, "\x00\x64" }, - { 0x24d4, "\x00\x65" }, - { 0x24d5, "\x00\x66" }, - { 0x24d6, "\x00\x67" }, - { 0x24d7, "\x00\x68" }, - { 0x24d8, "\x00\x69" }, - { 0x24d9, "\x00\x6a" }, - { 0x24da, "\x00\x6b" }, - { 0x24db, "\x00\x6c" }, - { 0x24dc, "\x00\x6d" }, - { 0x24dd, "\x00\x6e" }, - { 0x24de, "\x00\x6f" }, - { 0x24df, "\x00\x70" }, - { 0x24e0, "\x00\x71" }, - { 0x24e1, "\x00\x72" }, - { 0x24e2, "\x00\x73" }, - { 0x24e3, "\x00\x74" }, - { 0x24e4, "\x00\x75" }, - { 0x24e5, "\x00\x76" }, - { 0x24e6, "\x00\x77" }, - { 0x24e7, "\x00\x78" }, - { 0x24e8, "\x00\x79" }, - { 0x24e9, "\x00\x7a" }, - { 0x24ea, "\x00\x30" }, - { 0x2e9f, "\x6b\xcd" }, - { 0x2ef3, "\x9f\x9f" }, - { 0x2f00, "\x4e\x00" }, - { 0x2f01, "\x4e\x28" }, - { 0x2f02, "\x4e\x36" }, - { 0x2f03, "\x4e\x3f" }, - { 0x2f04, "\x4e\x59" }, - { 0x2f05, "\x4e\x85" }, - { 0x2f06, "\x4e\x8c" }, - { 0x2f07, "\x4e\xa0" }, - { 0x2f08, "\x4e\xba" }, - { 0x2f09, "\x51\x3f" }, - { 0x2f0a, "\x51\x65" }, - { 0x2f0b, "\x51\x6b" }, - { 0x2f0c, "\x51\x82" }, - { 0x2f0d, "\x51\x96" }, - { 0x2f0e, "\x51\xab" }, - { 0x2f0f, "\x51\xe0" }, - { 0x2f10, "\x51\xf5" }, - { 0x2f11, "\x52\x00" }, - { 0x2f12, "\x52\x9b" }, - { 0x2f13, "\x52\xf9" }, - { 0x2f14, "\x53\x15" }, - { 0x2f15, "\x53\x1a" }, - { 0x2f16, "\x53\x38" }, - { 0x2f17, "\x53\x41" }, - { 0x2f18, "\x53\x5c" }, - { 0x2f19, "\x53\x69" }, - { 0x2f1a, "\x53\x82" }, - { 0x2f1b, "\x53\xb6" }, - { 0x2f1c, "\x53\xc8" }, - { 0x2f1d, "\x53\xe3" }, - { 0x2f1e, "\x56\xd7" }, - { 0x2f1f, "\x57\x1f" }, - { 0x2f20, "\x58\xeb" }, - { 0x2f21, "\x59\x02" }, - { 0x2f22, "\x59\x0a" }, - { 0x2f23, "\x59\x15" }, - { 0x2f24, "\x59\x27" }, - { 0x2f25, "\x59\x73" }, - { 0x2f26, "\x5b\x50" }, - { 0x2f27, "\x5b\x80" }, - { 0x2f28, "\x5b\xf8" }, - { 0x2f29, "\x5c\x0f" }, - { 0x2f2a, "\x5c\x22" }, - { 0x2f2b, "\x5c\x38" }, - { 0x2f2c, "\x5c\x6e" }, - { 0x2f2d, "\x5c\x71" }, - { 0x2f2e, "\x5d\xdb" }, - { 0x2f2f, "\x5d\xe5" }, - { 0x2f30, "\x5d\xf1" }, - { 0x2f31, "\x5d\xfe" }, - { 0x2f32, "\x5e\x72" }, - { 0x2f33, "\x5e\x7a" }, - { 0x2f34, "\x5e\x7f" }, - { 0x2f35, "\x5e\xf4" }, - { 0x2f36, "\x5e\xfe" }, - { 0x2f37, "\x5f\x0b" }, - { 0x2f38, "\x5f\x13" }, - { 0x2f39, "\x5f\x50" }, - { 0x2f3a, "\x5f\x61" }, - { 0x2f3b, "\x5f\x73" }, - { 0x2f3c, "\x5f\xc3" }, - { 0x2f3d, "\x62\x08" }, - { 0x2f3e, "\x62\x36" }, - { 0x2f3f, "\x62\x4b" }, - { 0x2f40, "\x65\x2f" }, - { 0x2f41, "\x65\x34" }, - { 0x2f42, "\x65\x87" }, - { 0x2f43, "\x65\x97" }, - { 0x2f44, "\x65\xa4" }, - { 0x2f45, "\x65\xb9" }, - { 0x2f46, "\x65\xe0" }, - { 0x2f47, "\x65\xe5" }, - { 0x2f48, "\x66\xf0" }, - { 0x2f49, "\x67\x08" }, - { 0x2f4a, "\x67\x28" }, - { 0x2f4b, "\x6b\x20" }, - { 0x2f4c, "\x6b\x62" }, - { 0x2f4d, "\x6b\x79" }, - { 0x2f4e, "\x6b\xb3" }, - { 0x2f4f, "\x6b\xcb" }, - { 0x2f50, "\x6b\xd4" }, - { 0x2f51, "\x6b\xdb" }, - { 0x2f52, "\x6c\x0f" }, - { 0x2f53, "\x6c\x14" }, - { 0x2f54, "\x6c\x34" }, - { 0x2f55, "\x70\x6b" }, - { 0x2f56, "\x72\x2a" }, - { 0x2f57, "\x72\x36" }, - { 0x2f58, "\x72\x3b" }, - { 0x2f59, "\x72\x3f" }, - { 0x2f5a, "\x72\x47" }, - { 0x2f5b, "\x72\x59" }, - { 0x2f5c, "\x72\x5b" }, - { 0x2f5d, "\x72\xac" }, - { 0x2f5e, "\x73\x84" }, - { 0x2f5f, "\x73\x89" }, - { 0x2f60, "\x74\xdc" }, - { 0x2f61, "\x74\xe6" }, - { 0x2f62, "\x75\x18" }, - { 0x2f63, "\x75\x1f" }, - { 0x2f64, "\x75\x28" }, - { 0x2f65, "\x75\x30" }, - { 0x2f66, "\x75\x8b" }, - { 0x2f67, "\x75\x92" }, - { 0x2f68, "\x76\x76" }, - { 0x2f69, "\x76\x7d" }, - { 0x2f6a, "\x76\xae" }, - { 0x2f6b, "\x76\xbf" }, - { 0x2f6c, "\x76\xee" }, - { 0x2f6d, "\x77\xdb" }, - { 0x2f6e, "\x77\xe2" }, - { 0x2f6f, "\x77\xf3" }, - { 0x2f70, "\x79\x3a" }, - { 0x2f71, "\x79\xb8" }, - { 0x2f72, "\x79\xbe" }, - { 0x2f73, "\x7a\x74" }, - { 0x2f74, "\x7a\xcb" }, - { 0x2f75, "\x7a\xf9" }, - { 0x2f76, "\x7c\x73" }, - { 0x2f77, "\x7c\xf8" }, - { 0x2f78, "\x7f\x36" }, - { 0x2f79, "\x7f\x51" }, - { 0x2f7a, "\x7f\x8a" }, - { 0x2f7b, "\x7f\xbd" }, - { 0x2f7c, "\x80\x01" }, - { 0x2f7d, "\x80\x0c" }, - { 0x2f7e, "\x80\x12" }, - { 0x2f7f, "\x80\x33" }, - { 0x2f80, "\x80\x7f" }, - { 0x2f81, "\x80\x89" }, - { 0x2f82, "\x81\xe3" }, - { 0x2f83, "\x81\xea" }, - { 0x2f84, "\x81\xf3" }, - { 0x2f85, "\x81\xfc" }, - { 0x2f86, "\x82\x0c" }, - { 0x2f87, "\x82\x1b" }, - { 0x2f88, "\x82\x1f" }, - { 0x2f89, "\x82\x6e" }, - { 0x2f8a, "\x82\x72" }, - { 0x2f8b, "\x82\x78" }, - { 0x2f8c, "\x86\x4d" }, - { 0x2f8d, "\x86\x6b" }, - { 0x2f8e, "\x88\x40" }, - { 0x2f8f, "\x88\x4c" }, - { 0x2f90, "\x88\x63" }, - { 0x2f91, "\x89\x7e" }, - { 0x2f92, "\x89\x8b" }, - { 0x2f93, "\x89\xd2" }, - { 0x2f94, "\x8a\x00" }, - { 0x2f95, "\x8c\x37" }, - { 0x2f96, "\x8c\x46" }, - { 0x2f97, "\x8c\x55" }, - { 0x2f98, "\x8c\x78" }, - { 0x2f99, "\x8c\x9d" }, - { 0x2f9a, "\x8d\x64" }, - { 0x2f9b, "\x8d\x70" }, - { 0x2f9c, "\x8d\xb3" }, - { 0x2f9d, "\x8e\xab" }, - { 0x2f9e, "\x8e\xca" }, - { 0x2f9f, "\x8f\x9b" }, - { 0x2fa0, "\x8f\xb0" }, - { 0x2fa1, "\x8f\xb5" }, - { 0x2fa2, "\x90\x91" }, - { 0x2fa3, "\x91\x49" }, - { 0x2fa4, "\x91\xc6" }, - { 0x2fa5, "\x91\xcc" }, - { 0x2fa6, "\x91\xd1" }, - { 0x2fa7, "\x95\x77" }, - { 0x2fa8, "\x95\x80" }, - { 0x2fa9, "\x96\x1c" }, - { 0x2faa, "\x96\xb6" }, - { 0x2fab, "\x96\xb9" }, - { 0x2fac, "\x96\xe8" }, - { 0x2fad, "\x97\x51" }, - { 0x2fae, "\x97\x5e" }, - { 0x2faf, "\x97\x62" }, - { 0x2fb0, "\x97\x69" }, - { 0x2fb1, "\x97\xcb" }, - { 0x2fb2, "\x97\xed" }, - { 0x2fb3, "\x97\xf3" }, - { 0x2fb4, "\x98\x01" }, - { 0x2fb5, "\x98\xa8" }, - { 0x2fb6, "\x98\xdb" }, - { 0x2fb7, "\x98\xdf" }, - { 0x2fb8, "\x99\x96" }, - { 0x2fb9, "\x99\x99" }, - { 0x2fba, "\x99\xac" }, - { 0x2fbb, "\x9a\xa8" }, - { 0x2fbc, "\x9a\xd8" }, - { 0x2fbd, "\x9a\xdf" }, - { 0x2fbe, "\x9b\x25" }, - { 0x2fbf, "\x9b\x2f" }, - { 0x2fc0, "\x9b\x32" }, - { 0x2fc1, "\x9b\x3c" }, - { 0x2fc2, "\x9b\x5a" }, - { 0x2fc3, "\x9c\xe5" }, - { 0x2fc4, "\x9e\x75" }, - { 0x2fc5, "\x9e\x7f" }, - { 0x2fc6, "\x9e\xa5" }, - { 0x2fc7, "\x9e\xbb" }, - { 0x2fc8, "\x9e\xc3" }, - { 0x2fc9, "\x9e\xcd" }, - { 0x2fca, "\x9e\xd1" }, - { 0x2fcb, "\x9e\xf9" }, - { 0x2fcc, "\x9e\xfd" }, - { 0x2fcd, "\x9f\x0e" }, - { 0x2fce, "\x9f\x13" }, - { 0x2fcf, "\x9f\x20" }, - { 0x2fd0, "\x9f\x3b" }, - { 0x2fd1, "\x9f\x4a" }, - { 0x2fd2, "\x9f\x52" }, - { 0x2fd3, "\x9f\x8d" }, - { 0x2fd4, "\x9f\x9c" }, - { 0x2fd5, "\x9f\xa0" }, - { 0x3000, "\x00\x20" }, - { 0x3036, "\x30\x12" }, - { 0x3038, "\x53\x41" }, - { 0x3039, "\x53\x44" }, - { 0x303a, "\x53\x45" }, - { 0x309b, "\x00\x20\x30\x99" }, - { 0x309c, "\x00\x20\x30\x9a" }, - { 0x3131, "\x11\x00" }, - { 0x3132, "\x11\x01" }, - { 0x3133, "\x11\xaa" }, - { 0x3134, "\x11\x02" }, - { 0x3135, "\x11\xac" }, - { 0x3136, "\x11\xad" }, - { 0x3137, "\x11\x03" }, - { 0x3138, "\x11\x04" }, - { 0x3139, "\x11\x05" }, - { 0x313a, "\x11\xb0" }, - { 0x313b, "\x11\xb1" }, - { 0x313c, "\x11\xb2" }, - { 0x313d, "\x11\xb3" }, - { 0x313e, "\x11\xb4" }, - { 0x313f, "\x11\xb5" }, - { 0x3140, "\x11\x1a" }, - { 0x3141, "\x11\x06" }, - { 0x3142, "\x11\x07" }, - { 0x3143, "\x11\x08" }, - { 0x3144, "\x11\x21" }, - { 0x3145, "\x11\x09" }, - { 0x3146, "\x11\x0a" }, - { 0x3147, "\x11\x0b" }, - { 0x3148, "\x11\x0c" }, - { 0x3149, "\x11\x0d" }, - { 0x314a, "\x11\x0e" }, - { 0x314b, "\x11\x0f" }, - { 0x314c, "\x11\x10" }, - { 0x314d, "\x11\x11" }, - { 0x314e, "\x11\x12" }, - { 0x314f, "\x11\x61" }, - { 0x3150, "\x11\x62" }, - { 0x3151, "\x11\x63" }, - { 0x3152, "\x11\x64" }, - { 0x3153, "\x11\x65" }, - { 0x3154, "\x11\x66" }, - { 0x3155, "\x11\x67" }, - { 0x3156, "\x11\x68" }, - { 0x3157, "\x11\x69" }, - { 0x3158, "\x11\x6a" }, - { 0x3159, "\x11\x6b" }, - { 0x315a, "\x11\x6c" }, - { 0x315b, "\x11\x6d" }, - { 0x315c, "\x11\x6e" }, - { 0x315d, "\x11\x6f" }, - { 0x315e, "\x11\x70" }, - { 0x315f, "\x11\x71" }, - { 0x3160, "\x11\x72" }, - { 0x3161, "\x11\x73" }, - { 0x3162, "\x11\x74" }, - { 0x3163, "\x11\x75" }, - { 0x3164, "\x11\x60" }, - { 0x3165, "\x11\x14" }, - { 0x3166, "\x11\x15" }, - { 0x3167, "\x11\xc7" }, - { 0x3168, "\x11\xc8" }, - { 0x3169, "\x11\xcc" }, - { 0x316a, "\x11\xce" }, - { 0x316b, "\x11\xd3" }, - { 0x316c, "\x11\xd7" }, - { 0x316d, "\x11\xd9" }, - { 0x316e, "\x11\x1c" }, - { 0x316f, "\x11\xdd" }, - { 0x3170, "\x11\xdf" }, - { 0x3171, "\x11\x1d" }, - { 0x3172, "\x11\x1e" }, - { 0x3173, "\x11\x20" }, - { 0x3174, "\x11\x22" }, - { 0x3175, "\x11\x23" }, - { 0x3176, "\x11\x27" }, - { 0x3177, "\x11\x29" }, - { 0x3178, "\x11\x2b" }, - { 0x3179, "\x11\x2c" }, - { 0x317a, "\x11\x2d" }, - { 0x317b, "\x11\x2e" }, - { 0x317c, "\x11\x2f" }, - { 0x317d, "\x11\x32" }, - { 0x317e, "\x11\x36" }, - { 0x317f, "\x11\x40" }, - { 0x3180, "\x11\x47" }, - { 0x3181, "\x11\x4c" }, - { 0x3182, "\x11\xf1" }, - { 0x3183, "\x11\xf2" }, - { 0x3184, "\x11\x57" }, - { 0x3185, "\x11\x58" }, - { 0x3186, "\x11\x59" }, - { 0x3187, "\x11\x84" }, - { 0x3188, "\x11\x85" }, - { 0x3189, "\x11\x88" }, - { 0x318a, "\x11\x91" }, - { 0x318b, "\x11\x92" }, - { 0x318c, "\x11\x94" }, - { 0x318d, "\x11\x9e" }, - { 0x318e, "\x11\xa1" }, - { 0x3192, "\x4e\x00" }, - { 0x3193, "\x4e\x8c" }, - { 0x3194, "\x4e\x09" }, - { 0x3195, "\x56\xdb" }, - { 0x3196, "\x4e\x0a" }, - { 0x3197, "\x4e\x2d" }, - { 0x3198, "\x4e\x0b" }, - { 0x3199, "\x75\x32" }, - { 0x319a, "\x4e\x59" }, - { 0x319b, "\x4e\x19" }, - { 0x319c, "\x4e\x01" }, - { 0x319d, "\x59\x29" }, - { 0x319e, "\x57\x30" }, - { 0x319f, "\x4e\xba" }, - { 0x3200, "\x00\x28\x11\x00\x00\x29" }, - { 0x3201, "\x00\x28\x11\x02\x00\x29" }, - { 0x3202, "\x00\x28\x11\x03\x00\x29" }, - { 0x3203, "\x00\x28\x11\x05\x00\x29" }, - { 0x3204, "\x00\x28\x11\x06\x00\x29" }, - { 0x3205, "\x00\x28\x11\x07\x00\x29" }, - { 0x3206, "\x00\x28\x11\x09\x00\x29" }, - { 0x3207, "\x00\x28\x11\x0b\x00\x29" }, - { 0x3208, "\x00\x28\x11\x0c\x00\x29" }, - { 0x3209, "\x00\x28\x11\x0e\x00\x29" }, - { 0x320a, "\x00\x28\x11\x0f\x00\x29" }, - { 0x320b, "\x00\x28\x11\x10\x00\x29" }, - { 0x320c, "\x00\x28\x11\x11\x00\x29" }, - { 0x320d, "\x00\x28\x11\x12\x00\x29" }, - { 0x320e, "\x00\x28\x11\x00\x11\x61\x00\x29" }, - { 0x320f, "\x00\x28\x11\x02\x11\x61\x00\x29" }, - { 0x3210, "\x00\x28\x11\x03\x11\x61\x00\x29" }, - { 0x3211, "\x00\x28\x11\x05\x11\x61\x00\x29" }, - { 0x3212, "\x00\x28\x11\x06\x11\x61\x00\x29" }, - { 0x3213, "\x00\x28\x11\x07\x11\x61\x00\x29" }, - { 0x3214, "\x00\x28\x11\x09\x11\x61\x00\x29" }, - { 0x3215, "\x00\x28\x11\x0b\x11\x61\x00\x29" }, - { 0x3216, "\x00\x28\x11\x0c\x11\x61\x00\x29" }, - { 0x3217, "\x00\x28\x11\x0e\x11\x61\x00\x29" }, - { 0x3218, "\x00\x28\x11\x0f\x11\x61\x00\x29" }, - { 0x3219, "\x00\x28\x11\x10\x11\x61\x00\x29" }, - { 0x321a, "\x00\x28\x11\x11\x11\x61\x00\x29" }, - { 0x321b, "\x00\x28\x11\x12\x11\x61\x00\x29" }, - { 0x321c, "\x00\x28\x11\x0c\x11\x6e\x00\x29" }, - { 0x3220, "\x00\x28\x4e\x00\x00\x29" }, - { 0x3221, "\x00\x28\x4e\x8c\x00\x29" }, - { 0x3222, "\x00\x28\x4e\x09\x00\x29" }, - { 0x3223, "\x00\x28\x56\xdb\x00\x29" }, - { 0x3224, "\x00\x28\x4e\x94\x00\x29" }, - { 0x3225, "\x00\x28\x51\x6d\x00\x29" }, - { 0x3226, "\x00\x28\x4e\x03\x00\x29" }, - { 0x3227, "\x00\x28\x51\x6b\x00\x29" }, - { 0x3228, "\x00\x28\x4e\x5d\x00\x29" }, - { 0x3229, "\x00\x28\x53\x41\x00\x29" }, - { 0x322a, "\x00\x28\x67\x08\x00\x29" }, - { 0x322b, "\x00\x28\x70\x6b\x00\x29" }, - { 0x322c, "\x00\x28\x6c\x34\x00\x29" }, - { 0x322d, "\x00\x28\x67\x28\x00\x29" }, - { 0x322e, "\x00\x28\x91\xd1\x00\x29" }, - { 0x322f, "\x00\x28\x57\x1f\x00\x29" }, - { 0x3230, "\x00\x28\x65\xe5\x00\x29" }, - { 0x3231, "\x00\x28\x68\x2a\x00\x29" }, - { 0x3232, "\x00\x28\x67\x09\x00\x29" }, - { 0x3233, "\x00\x28\x79\x3e\x00\x29" }, - { 0x3234, "\x00\x28\x54\x0d\x00\x29" }, - { 0x3235, "\x00\x28\x72\x79\x00\x29" }, - { 0x3236, "\x00\x28\x8c\xa1\x00\x29" }, - { 0x3237, "\x00\x28\x79\x5d\x00\x29" }, - { 0x3238, "\x00\x28\x52\xb4\x00\x29" }, - { 0x3239, "\x00\x28\x4e\xe3\x00\x29" }, - { 0x323a, "\x00\x28\x54\x7c\x00\x29" }, - { 0x323b, "\x00\x28\x5b\x66\x00\x29" }, - { 0x323c, "\x00\x28\x76\xe3\x00\x29" }, - { 0x323d, "\x00\x28\x4f\x01\x00\x29" }, - { 0x323e, "\x00\x28\x8c\xc7\x00\x29" }, - { 0x323f, "\x00\x28\x53\x54\x00\x29" }, - { 0x3240, "\x00\x28\x79\x6d\x00\x29" }, - { 0x3241, "\x00\x28\x4f\x11\x00\x29" }, - { 0x3242, "\x00\x28\x81\xea\x00\x29" }, - { 0x3243, "\x00\x28\x81\xf3\x00\x29" }, - { 0x3260, "\x11\x00" }, - { 0x3261, "\x11\x02" }, - { 0x3262, "\x11\x03" }, - { 0x3263, "\x11\x05" }, - { 0x3264, "\x11\x06" }, - { 0x3265, "\x11\x07" }, - { 0x3266, "\x11\x09" }, - { 0x3267, "\x11\x0b" }, - { 0x3268, "\x11\x0c" }, - { 0x3269, "\x11\x0e" }, - { 0x326a, "\x11\x0f" }, - { 0x326b, "\x11\x10" }, - { 0x326c, "\x11\x11" }, - { 0x326d, "\x11\x12" }, - { 0x326e, "\x11\x00\x11\x61" }, - { 0x326f, "\x11\x02\x11\x61" }, - { 0x3270, "\x11\x03\x11\x61" }, - { 0x3271, "\x11\x05\x11\x61" }, - { 0x3272, "\x11\x06\x11\x61" }, - { 0x3273, "\x11\x07\x11\x61" }, - { 0x3274, "\x11\x09\x11\x61" }, - { 0x3275, "\x11\x0b\x11\x61" }, - { 0x3276, "\x11\x0c\x11\x61" }, - { 0x3277, "\x11\x0e\x11\x61" }, - { 0x3278, "\x11\x0f\x11\x61" }, - { 0x3279, "\x11\x10\x11\x61" }, - { 0x327a, "\x11\x11\x11\x61" }, - { 0x327b, "\x11\x12\x11\x61" }, - { 0x3280, "\x4e\x00" }, - { 0x3281, "\x4e\x8c" }, - { 0x3282, "\x4e\x09" }, - { 0x3283, "\x56\xdb" }, - { 0x3284, "\x4e\x94" }, - { 0x3285, "\x51\x6d" }, - { 0x3286, "\x4e\x03" }, - { 0x3287, "\x51\x6b" }, - { 0x3288, "\x4e\x5d" }, - { 0x3289, "\x53\x41" }, - { 0x328a, "\x67\x08" }, - { 0x328b, "\x70\x6b" }, - { 0x328c, "\x6c\x34" }, - { 0x328d, "\x67\x28" }, - { 0x328e, "\x91\xd1" }, - { 0x328f, "\x57\x1f" }, - { 0x3290, "\x65\xe5" }, - { 0x3291, "\x68\x2a" }, - { 0x3292, "\x67\x09" }, - { 0x3293, "\x79\x3e" }, - { 0x3294, "\x54\x0d" }, - { 0x3295, "\x72\x79" }, - { 0x3296, "\x8c\xa1" }, - { 0x3297, "\x79\x5d" }, - { 0x3298, "\x52\xb4" }, - { 0x3299, "\x79\xd8" }, - { 0x329a, "\x75\x37" }, - { 0x329b, "\x59\x73" }, - { 0x329c, "\x90\x69" }, - { 0x329d, "\x51\x2a" }, - { 0x329e, "\x53\x70" }, - { 0x329f, "\x6c\xe8" }, - { 0x32a0, "\x98\x05" }, - { 0x32a1, "\x4f\x11" }, - { 0x32a2, "\x51\x99" }, - { 0x32a3, "\x6b\x63" }, - { 0x32a4, "\x4e\x0a" }, - { 0x32a5, "\x4e\x2d" }, - { 0x32a6, "\x4e\x0b" }, - { 0x32a7, "\x5d\xe6" }, - { 0x32a8, "\x53\xf3" }, - { 0x32a9, "\x53\x3b" }, - { 0x32aa, "\x5b\x97" }, - { 0x32ab, "\x5b\x66" }, - { 0x32ac, "\x76\xe3" }, - { 0x32ad, "\x4f\x01" }, - { 0x32ae, "\x8c\xc7" }, - { 0x32af, "\x53\x54" }, - { 0x32b0, "\x59\x1c" }, - { 0x32c0, "\x00\x31\x67\x08" }, - { 0x32c1, "\x00\x32\x67\x08" }, - { 0x32c2, "\x00\x33\x67\x08" }, - { 0x32c3, "\x00\x34\x67\x08" }, - { 0x32c4, "\x00\x35\x67\x08" }, - { 0x32c5, "\x00\x36\x67\x08" }, - { 0x32c6, "\x00\x37\x67\x08" }, - { 0x32c7, "\x00\x38\x67\x08" }, - { 0x32c8, "\x00\x39\x67\x08" }, - { 0x32c9, "\x00\x31\x00\x30\x67\x08" }, - { 0x32ca, "\x00\x31\x00\x31\x67\x08" }, - { 0x32cb, "\x00\x31\x00\x32\x67\x08" }, - { 0x32d0, "\x30\xa2" }, - { 0x32d1, "\x30\xa4" }, - { 0x32d2, "\x30\xa6" }, - { 0x32d3, "\x30\xa8" }, - { 0x32d4, "\x30\xaa" }, - { 0x32d5, "\x30\xab" }, - { 0x32d6, "\x30\xad" }, - { 0x32d7, "\x30\xaf" }, - { 0x32d8, "\x30\xb1" }, - { 0x32d9, "\x30\xb3" }, - { 0x32da, "\x30\xb5" }, - { 0x32db, "\x30\xb7" }, - { 0x32dc, "\x30\xb9" }, - { 0x32dd, "\x30\xbb" }, - { 0x32de, "\x30\xbd" }, - { 0x32df, "\x30\xbf" }, - { 0x32e0, "\x30\xc1" }, - { 0x32e1, "\x30\xc4" }, - { 0x32e2, "\x30\xc6" }, - { 0x32e3, "\x30\xc8" }, - { 0x32e4, "\x30\xca" }, - { 0x32e5, "\x30\xcb" }, - { 0x32e6, "\x30\xcc" }, - { 0x32e7, "\x30\xcd" }, - { 0x32e8, "\x30\xce" }, - { 0x32e9, "\x30\xcf" }, - { 0x32ea, "\x30\xd2" }, - { 0x32eb, "\x30\xd5" }, - { 0x32ec, "\x30\xd8" }, - { 0x32ed, "\x30\xdb" }, - { 0x32ee, "\x30\xde" }, - { 0x32ef, "\x30\xdf" }, - { 0x32f0, "\x30\xe0" }, - { 0x32f1, "\x30\xe1" }, - { 0x32f2, "\x30\xe2" }, - { 0x32f3, "\x30\xe4" }, - { 0x32f4, "\x30\xe6" }, - { 0x32f5, "\x30\xe8" }, - { 0x32f6, "\x30\xe9" }, - { 0x32f7, "\x30\xea" }, - { 0x32f8, "\x30\xeb" }, - { 0x32f9, "\x30\xec" }, - { 0x32fa, "\x30\xed" }, - { 0x32fb, "\x30\xef" }, - { 0x32fc, "\x30\xf0" }, - { 0x32fd, "\x30\xf1" }, - { 0x32fe, "\x30\xf2" }, - { 0x3300, "\x30\xa2\x30\xd1\x30\xfc\x30\xc8" }, - { 0x3301, "\x30\xa2\x30\xeb\x30\xd5\x30\xa1" }, - { 0x3302, "\x30\xa2\x30\xf3\x30\xda\x30\xa2" }, - { 0x3303, "\x30\xa2\x30\xfc\x30\xeb" }, - { 0x3304, "\x30\xa4\x30\xcb\x30\xf3\x30\xb0" }, - { 0x3305, "\x30\xa4\x30\xf3\x30\xc1" }, - { 0x3306, "\x30\xa6\x30\xa9\x30\xf3" }, - { 0x3307, "\x30\xa8\x30\xb9\x30\xaf\x30\xfc\x30\xc9" }, - { 0x3308, "\x30\xa8\x30\xfc\x30\xab\x30\xfc" }, - { 0x3309, "\x30\xaa\x30\xf3\x30\xb9" }, - { 0x330a, "\x30\xaa\x30\xfc\x30\xe0" }, - { 0x330b, "\x30\xab\x30\xa4\x30\xea" }, - { 0x330c, "\x30\xab\x30\xe9\x30\xc3\x30\xc8" }, - { 0x330d, "\x30\xab\x30\xed\x30\xea\x30\xfc" }, - { 0x330e, "\x30\xac\x30\xed\x30\xf3" }, - { 0x330f, "\x30\xac\x30\xf3\x30\xde" }, - { 0x3310, "\x30\xae\x30\xac" }, - { 0x3311, "\x30\xae\x30\xcb\x30\xfc" }, - { 0x3312, "\x30\xad\x30\xe5\x30\xea\x30\xfc" }, - { 0x3313, "\x30\xae\x30\xeb\x30\xc0\x30\xfc" }, - { 0x3314, "\x30\xad\x30\xed" }, - { 0x3315, "\x30\xad\x30\xed\x30\xb0\x30\xe9\x30\xe0" }, - { 0x3316, "\x30\xad\x30\xed\x30\xe1\x30\xfc\x30\xc8\x30\xeb" }, - { 0x3317, "\x30\xad\x30\xed\x30\xef\x30\xc3\x30\xc8" }, - { 0x3318, "\x30\xb0\x30\xe9\x30\xe0" }, - { 0x3319, "\x30\xb0\x30\xe9\x30\xe0\x30\xc8\x30\xf3" }, - { 0x331a, "\x30\xaf\x30\xeb\x30\xbc\x30\xa4\x30\xed" }, - { 0x331b, "\x30\xaf\x30\xed\x30\xfc\x30\xcd" }, - { 0x331c, "\x30\xb1\x30\xfc\x30\xb9" }, - { 0x331d, "\x30\xb3\x30\xeb\x30\xca" }, - { 0x331e, "\x30\xb3\x30\xfc\x30\xdd" }, - { 0x331f, "\x30\xb5\x30\xa4\x30\xaf\x30\xeb" }, - { 0x3320, "\x30\xb5\x30\xf3\x30\xc1\x30\xfc\x30\xe0" }, - { 0x3321, "\x30\xb7\x30\xea\x30\xf3\x30\xb0" }, - { 0x3322, "\x30\xbb\x30\xf3\x30\xc1" }, - { 0x3323, "\x30\xbb\x30\xf3\x30\xc8" }, - { 0x3324, "\x30\xc0\x30\xfc\x30\xb9" }, - { 0x3325, "\x30\xc7\x30\xb7" }, - { 0x3326, "\x30\xc9\x30\xeb" }, - { 0x3327, "\x30\xc8\x30\xf3" }, - { 0x3328, "\x30\xca\x30\xce" }, - { 0x3329, "\x30\xce\x30\xc3\x30\xc8" }, - { 0x332a, "\x30\xcf\x30\xa4\x30\xc4" }, - { 0x332b, "\x30\xd1\x30\xfc\x30\xbb\x30\xf3\x30\xc8" }, - { 0x332c, "\x30\xd1\x30\xfc\x30\xc4" }, - { 0x332d, "\x30\xd0\x30\xfc\x30\xec\x30\xeb" }, - { 0x332e, "\x30\xd4\x30\xa2\x30\xb9\x30\xc8\x30\xeb" }, - { 0x332f, "\x30\xd4\x30\xaf\x30\xeb" }, - { 0x3330, "\x30\xd4\x30\xb3" }, - { 0x3331, "\x30\xd3\x30\xeb" }, - { 0x3332, "\x30\xd5\x30\xa1\x30\xe9\x30\xc3\x30\xc9" }, - { 0x3333, "\x30\xd5\x30\xa3\x30\xfc\x30\xc8" }, - { 0x3334, "\x30\xd6\x30\xc3\x30\xb7\x30\xa7\x30\xeb" }, - { 0x3335, "\x30\xd5\x30\xe9\x30\xf3" }, - { 0x3336, "\x30\xd8\x30\xaf\x30\xbf\x30\xfc\x30\xeb" }, - { 0x3337, "\x30\xda\x30\xbd" }, - { 0x3338, "\x30\xda\x30\xcb\x30\xd2" }, - { 0x3339, "\x30\xd8\x30\xeb\x30\xc4" }, - { 0x333a, "\x30\xda\x30\xf3\x30\xb9" }, - { 0x333b, "\x30\xda\x30\xfc\x30\xb8" }, - { 0x333c, "\x30\xd9\x30\xfc\x30\xbf" }, - { 0x333d, "\x30\xdd\x30\xa4\x30\xf3\x30\xc8" }, - { 0x333e, "\x30\xdc\x30\xeb\x30\xc8" }, - { 0x333f, "\x30\xdb\x30\xf3" }, - { 0x3340, "\x30\xdd\x30\xf3\x30\xc9" }, - { 0x3341, "\x30\xdb\x30\xfc\x30\xeb" }, - { 0x3342, "\x30\xdb\x30\xfc\x30\xf3" }, - { 0x3343, "\x30\xde\x30\xa4\x30\xaf\x30\xed" }, - { 0x3344, "\x30\xde\x30\xa4\x30\xeb" }, - { 0x3345, "\x30\xde\x30\xc3\x30\xcf" }, - { 0x3346, "\x30\xde\x30\xeb\x30\xaf" }, - { 0x3347, "\x30\xde\x30\xf3\x30\xb7\x30\xe7\x30\xf3" }, - { 0x3348, "\x30\xdf\x30\xaf\x30\xed\x30\xf3" }, - { 0x3349, "\x30\xdf\x30\xea" }, - { 0x334a, "\x30\xdf\x30\xea\x30\xd0\x30\xfc\x30\xeb" }, - { 0x334b, "\x30\xe1\x30\xac" }, - { 0x334c, "\x30\xe1\x30\xac\x30\xc8\x30\xf3" }, - { 0x334d, "\x30\xe1\x30\xfc\x30\xc8\x30\xeb" }, - { 0x334e, "\x30\xe4\x30\xfc\x30\xc9" }, - { 0x334f, "\x30\xe4\x30\xfc\x30\xeb" }, - { 0x3350, "\x30\xe6\x30\xa2\x30\xf3" }, - { 0x3351, "\x30\xea\x30\xc3\x30\xc8\x30\xeb" }, - { 0x3352, "\x30\xea\x30\xe9" }, - { 0x3353, "\x30\xeb\x30\xd4\x30\xfc" }, - { 0x3354, "\x30\xeb\x30\xfc\x30\xd6\x30\xeb" }, - { 0x3355, "\x30\xec\x30\xe0" }, - { 0x3356, "\x30\xec\x30\xf3\x30\xc8\x30\xb2\x30\xf3" }, - { 0x3357, "\x30\xef\x30\xc3\x30\xc8" }, - { 0x3358, "\x00\x30\x70\xb9" }, - { 0x3359, "\x00\x31\x70\xb9" }, - { 0x335a, "\x00\x32\x70\xb9" }, - { 0x335b, "\x00\x33\x70\xb9" }, - { 0x335c, "\x00\x34\x70\xb9" }, - { 0x335d, "\x00\x35\x70\xb9" }, - { 0x335e, "\x00\x36\x70\xb9" }, - { 0x335f, "\x00\x37\x70\xb9" }, - { 0x3360, "\x00\x38\x70\xb9" }, - { 0x3361, "\x00\x39\x70\xb9" }, - { 0x3362, "\x00\x31\x00\x30\x70\xb9" }, - { 0x3363, "\x00\x31\x00\x31\x70\xb9" }, - { 0x3364, "\x00\x31\x00\x32\x70\xb9" }, - { 0x3365, "\x00\x31\x00\x33\x70\xb9" }, - { 0x3366, "\x00\x31\x00\x34\x70\xb9" }, - { 0x3367, "\x00\x31\x00\x35\x70\xb9" }, - { 0x3368, "\x00\x31\x00\x36\x70\xb9" }, - { 0x3369, "\x00\x31\x00\x37\x70\xb9" }, - { 0x336a, "\x00\x31\x00\x38\x70\xb9" }, - { 0x336b, "\x00\x31\x00\x39\x70\xb9" }, - { 0x336c, "\x00\x32\x00\x30\x70\xb9" }, - { 0x336d, "\x00\x32\x00\x31\x70\xb9" }, - { 0x336e, "\x00\x32\x00\x32\x70\xb9" }, - { 0x336f, "\x00\x32\x00\x33\x70\xb9" }, - { 0x3370, "\x00\x32\x00\x34\x70\xb9" }, - { 0x3371, "\x00\x68\x00\x50\x00\x61" }, - { 0x3372, "\x00\x64\x00\x61" }, - { 0x3373, "\x00\x41\x00\x55" }, - { 0x3374, "\x00\x62\x00\x61\x00\x72" }, - { 0x3375, "\x00\x6f\x00\x56" }, - { 0x3376, "\x00\x70\x00\x63" }, - { 0x337b, "\x5e\x73\x62\x10" }, - { 0x337c, "\x66\x2d\x54\x8c" }, - { 0x337d, "\x59\x27\x6b\x63" }, - { 0x337e, "\x66\x0e\x6c\xbb" }, - { 0x337f, "\x68\x2a\x5f\x0f\x4f\x1a\x79\x3e" }, - { 0x3380, "\x00\x70\x00\x41" }, - { 0x3381, "\x00\x6e\x00\x41" }, - { 0x3382, "\x03\xbc\x00\x41" }, - { 0x3383, "\x00\x6d\x00\x41" }, - { 0x3384, "\x00\x6b\x00\x41" }, - { 0x3385, "\x00\x4b\x00\x42" }, - { 0x3386, "\x00\x4d\x00\x42" }, - { 0x3387, "\x00\x47\x00\x42" }, - { 0x3388, "\x00\x63\x00\x61\x00\x6c" }, - { 0x3389, "\x00\x6b\x00\x63\x00\x61\x00\x6c" }, - { 0x338a, "\x00\x70\x00\x46" }, - { 0x338b, "\x00\x6e\x00\x46" }, - { 0x338c, "\x03\xbc\x00\x46" }, - { 0x338d, "\x03\xbc\x00\x67" }, - { 0x338e, "\x00\x6d\x00\x67" }, - { 0x338f, "\x00\x6b\x00\x67" }, - { 0x3390, "\x00\x48\x00\x7a" }, - { 0x3391, "\x00\x6b\x00\x48\x00\x7a" }, - { 0x3392, "\x00\x4d\x00\x48\x00\x7a" }, - { 0x3393, "\x00\x47\x00\x48\x00\x7a" }, - { 0x3394, "\x00\x54\x00\x48\x00\x7a" }, - { 0x3395, "\x03\xbc\x21\x13" }, - { 0x3396, "\x00\x6d\x21\x13" }, - { 0x3397, "\x00\x64\x21\x13" }, - { 0x3398, "\x00\x6b\x21\x13" }, - { 0x3399, "\x00\x66\x00\x6d" }, - { 0x339a, "\x00\x6e\x00\x6d" }, - { 0x339b, "\x03\xbc\x00\x6d" }, - { 0x339c, "\x00\x6d\x00\x6d" }, - { 0x339d, "\x00\x63\x00\x6d" }, - { 0x339e, "\x00\x6b\x00\x6d" }, - { 0x339f, "\x00\x6d\x00\x6d\x00\xb2" }, - { 0x33a0, "\x00\x63\x00\x6d\x00\xb2" }, - { 0x33a1, "\x00\x6d\x00\xb2" }, - { 0x33a2, "\x00\x6b\x00\x6d\x00\xb2" }, - { 0x33a3, "\x00\x6d\x00\x6d\x00\xb3" }, - { 0x33a4, "\x00\x63\x00\x6d\x00\xb3" }, - { 0x33a5, "\x00\x6d\x00\xb3" }, - { 0x33a6, "\x00\x6b\x00\x6d\x00\xb3" }, - { 0x33a7, "\x00\x6d\x22\x15\x00\x73" }, - { 0x33a8, "\x00\x6d\x22\x15\x00\x73\x00\xb2" }, - { 0x33a9, "\x00\x50\x00\x61" }, - { 0x33aa, "\x00\x6b\x00\x50\x00\x61" }, - { 0x33ab, "\x00\x4d\x00\x50\x00\x61" }, - { 0x33ac, "\x00\x47\x00\x50\x00\x61" }, - { 0x33ad, "\x00\x72\x00\x61\x00\x64" }, - { 0x33ae, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73" }, - { 0x33af, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73\x00\xb2" }, - { 0x33b0, "\x00\x70\x00\x73" }, - { 0x33b1, "\x00\x6e\x00\x73" }, - { 0x33b2, "\x03\xbc\x00\x73" }, - { 0x33b3, "\x00\x6d\x00\x73" }, - { 0x33b4, "\x00\x70\x00\x56" }, - { 0x33b5, "\x00\x6e\x00\x56" }, - { 0x33b6, "\x03\xbc\x00\x56" }, - { 0x33b7, "\x00\x6d\x00\x56" }, - { 0x33b8, "\x00\x6b\x00\x56" }, - { 0x33b9, "\x00\x4d\x00\x56" }, - { 0x33ba, "\x00\x70\x00\x57" }, - { 0x33bb, "\x00\x6e\x00\x57" }, - { 0x33bc, "\x03\xbc\x00\x57" }, - { 0x33bd, "\x00\x6d\x00\x57" }, - { 0x33be, "\x00\x6b\x00\x57" }, - { 0x33bf, "\x00\x4d\x00\x57" }, - { 0x33c0, "\x00\x6b\x03\xa9" }, - { 0x33c1, "\x00\x4d\x03\xa9" }, - { 0x33c2, "\x00\x61\x00\x2e\x00\x6d\x00\x2e" }, - { 0x33c3, "\x00\x42\x00\x71" }, - { 0x33c4, "\x00\x63\x00\x63" }, - { 0x33c5, "\x00\x63\x00\x64" }, - { 0x33c6, "\x00\x43\x22\x15\x00\x6b\x00\x67" }, - { 0x33c7, "\x00\x43\x00\x6f\x00\x2e" }, - { 0x33c8, "\x00\x64\x00\x42" }, - { 0x33c9, "\x00\x47\x00\x79" }, - { 0x33ca, "\x00\x68\x00\x61" }, - { 0x33cb, "\x00\x48\x00\x50" }, - { 0x33cc, "\x00\x69\x00\x6e" }, - { 0x33cd, "\x00\x4b\x00\x4b" }, - { 0x33ce, "\x00\x4b\x00\x4d" }, - { 0x33cf, "\x00\x6b\x00\x74" }, - { 0x33d0, "\x00\x6c\x00\x6d" }, - { 0x33d1, "\x00\x6c\x00\x6e" }, - { 0x33d2, "\x00\x6c\x00\x6f\x00\x67" }, - { 0x33d3, "\x00\x6c\x00\x78" }, - { 0x33d4, "\x00\x6d\x00\x62" }, - { 0x33d5, "\x00\x6d\x00\x69\x00\x6c" }, - { 0x33d6, "\x00\x6d\x00\x6f\x00\x6c" }, - { 0x33d7, "\x00\x50\x00\x48" }, - { 0x33d8, "\x00\x70\x00\x2e\x00\x6d\x00\x2e" }, - { 0x33d9, "\x00\x50\x00\x50\x00\x4d" }, - { 0x33da, "\x00\x50\x00\x52" }, - { 0x33db, "\x00\x73\x00\x72" }, - { 0x33dc, "\x00\x53\x00\x76" }, - { 0x33dd, "\x00\x57\x00\x62" }, - { 0x33e0, "\x00\x31\x65\xe5" }, - { 0x33e1, "\x00\x32\x65\xe5" }, - { 0x33e2, "\x00\x33\x65\xe5" }, - { 0x33e3, "\x00\x34\x65\xe5" }, - { 0x33e4, "\x00\x35\x65\xe5" }, - { 0x33e5, "\x00\x36\x65\xe5" }, - { 0x33e6, "\x00\x37\x65\xe5" }, - { 0x33e7, "\x00\x38\x65\xe5" }, - { 0x33e8, "\x00\x39\x65\xe5" }, - { 0x33e9, "\x00\x31\x00\x30\x65\xe5" }, - { 0x33ea, "\x00\x31\x00\x31\x65\xe5" }, - { 0x33eb, "\x00\x31\x00\x32\x65\xe5" }, - { 0x33ec, "\x00\x31\x00\x33\x65\xe5" }, - { 0x33ed, "\x00\x31\x00\x34\x65\xe5" }, - { 0x33ee, "\x00\x31\x00\x35\x65\xe5" }, - { 0x33ef, "\x00\x31\x00\x36\x65\xe5" }, - { 0x33f0, "\x00\x31\x00\x37\x65\xe5" }, - { 0x33f1, "\x00\x31\x00\x38\x65\xe5" }, - { 0x33f2, "\x00\x31\x00\x39\x65\xe5" }, - { 0x33f3, "\x00\x32\x00\x30\x65\xe5" }, - { 0x33f4, "\x00\x32\x00\x31\x65\xe5" }, - { 0x33f5, "\x00\x32\x00\x32\x65\xe5" }, - { 0x33f6, "\x00\x32\x00\x33\x65\xe5" }, - { 0x33f7, "\x00\x32\x00\x34\x65\xe5" }, - { 0x33f8, "\x00\x32\x00\x35\x65\xe5" }, - { 0x33f9, "\x00\x32\x00\x36\x65\xe5" }, - { 0x33fa, "\x00\x32\x00\x37\x65\xe5" }, - { 0x33fb, "\x00\x32\x00\x38\x65\xe5" }, - { 0x33fc, "\x00\x32\x00\x39\x65\xe5" }, - { 0x33fd, "\x00\x33\x00\x30\x65\xe5" }, - { 0x33fe, "\x00\x33\x00\x31\x65\xe5" }, - { 0xfb00, "\x00\x66\x00\x66" }, - { 0xfb01, "\x00\x66\x00\x69" }, - { 0xfb02, "\x00\x66\x00\x6c" }, - { 0xfb03, "\x00\x66\x00\x66\x00\x69" }, - { 0xfb04, "\x00\x66\x00\x66\x00\x6c" }, - { 0xfb05, "\x01\x7f\x00\x74" }, - { 0xfb06, "\x00\x73\x00\x74" }, - { 0xfb13, "\x05\x74\x05\x76" }, - { 0xfb14, "\x05\x74\x05\x65" }, - { 0xfb15, "\x05\x74\x05\x6b" }, - { 0xfb16, "\x05\x7e\x05\x76" }, - { 0xfb17, "\x05\x74\x05\x6d" }, - { 0xfb20, "\x05\xe2" }, - { 0xfb21, "\x05\xd0" }, - { 0xfb22, "\x05\xd3" }, - { 0xfb23, "\x05\xd4" }, - { 0xfb24, "\x05\xdb" }, - { 0xfb25, "\x05\xdc" }, - { 0xfb26, "\x05\xdd" }, - { 0xfb27, "\x05\xe8" }, - { 0xfb28, "\x05\xea" }, - { 0xfb29, "\x00\x2b" }, - { 0xfb4f, "\x05\xd0\x05\xdc" }, - { 0xfb50, "\x06\x71" }, - { 0xfb51, "\x06\x71" }, - { 0xfb52, "\x06\x7b" }, - { 0xfb53, "\x06\x7b" }, - { 0xfb54, "\x06\x7b" }, - { 0xfb55, "\x06\x7b" }, - { 0xfb56, "\x06\x7e" }, - { 0xfb57, "\x06\x7e" }, - { 0xfb58, "\x06\x7e" }, - { 0xfb59, "\x06\x7e" }, - { 0xfb5a, "\x06\x80" }, - { 0xfb5b, "\x06\x80" }, - { 0xfb5c, "\x06\x80" }, - { 0xfb5d, "\x06\x80" }, - { 0xfb5e, "\x06\x7a" }, - { 0xfb5f, "\x06\x7a" }, - { 0xfb60, "\x06\x7a" }, - { 0xfb61, "\x06\x7a" }, - { 0xfb62, "\x06\x7f" }, - { 0xfb63, "\x06\x7f" }, - { 0xfb64, "\x06\x7f" }, - { 0xfb65, "\x06\x7f" }, - { 0xfb66, "\x06\x79" }, - { 0xfb67, "\x06\x79" }, - { 0xfb68, "\x06\x79" }, - { 0xfb69, "\x06\x79" }, - { 0xfb6a, "\x06\xa4" }, - { 0xfb6b, "\x06\xa4" }, - { 0xfb6c, "\x06\xa4" }, - { 0xfb6d, "\x06\xa4" }, - { 0xfb6e, "\x06\xa6" }, - { 0xfb6f, "\x06\xa6" }, - { 0xfb70, "\x06\xa6" }, - { 0xfb71, "\x06\xa6" }, - { 0xfb72, "\x06\x84" }, - { 0xfb73, "\x06\x84" }, - { 0xfb74, "\x06\x84" }, - { 0xfb75, "\x06\x84" }, - { 0xfb76, "\x06\x83" }, - { 0xfb77, "\x06\x83" }, - { 0xfb78, "\x06\x83" }, - { 0xfb79, "\x06\x83" }, - { 0xfb7a, "\x06\x86" }, - { 0xfb7b, "\x06\x86" }, - { 0xfb7c, "\x06\x86" }, - { 0xfb7d, "\x06\x86" }, - { 0xfb7e, "\x06\x87" }, - { 0xfb7f, "\x06\x87" }, - { 0xfb80, "\x06\x87" }, - { 0xfb81, "\x06\x87" }, - { 0xfb82, "\x06\x8d" }, - { 0xfb83, "\x06\x8d" }, - { 0xfb84, "\x06\x8c" }, - { 0xfb85, "\x06\x8c" }, - { 0xfb86, "\x06\x8e" }, - { 0xfb87, "\x06\x8e" }, - { 0xfb88, "\x06\x88" }, - { 0xfb89, "\x06\x88" }, - { 0xfb8a, "\x06\x98" }, - { 0xfb8b, "\x06\x98" }, - { 0xfb8c, "\x06\x91" }, - { 0xfb8d, "\x06\x91" }, - { 0xfb8e, "\x06\xa9" }, - { 0xfb8f, "\x06\xa9" }, - { 0xfb90, "\x06\xa9" }, - { 0xfb91, "\x06\xa9" }, - { 0xfb92, "\x06\xaf" }, - { 0xfb93, "\x06\xaf" }, - { 0xfb94, "\x06\xaf" }, - { 0xfb95, "\x06\xaf" }, - { 0xfb96, "\x06\xb3" }, - { 0xfb97, "\x06\xb3" }, - { 0xfb98, "\x06\xb3" }, - { 0xfb99, "\x06\xb3" }, - { 0xfb9a, "\x06\xb1" }, - { 0xfb9b, "\x06\xb1" }, - { 0xfb9c, "\x06\xb1" }, - { 0xfb9d, "\x06\xb1" }, - { 0xfb9e, "\x06\xba" }, - { 0xfb9f, "\x06\xba" }, - { 0xfba0, "\x06\xbb" }, - { 0xfba1, "\x06\xbb" }, - { 0xfba2, "\x06\xbb" }, - { 0xfba3, "\x06\xbb" }, - { 0xfba4, "\x06\xc0" }, - { 0xfba5, "\x06\xc0" }, - { 0xfba6, "\x06\xc1" }, - { 0xfba7, "\x06\xc1" }, - { 0xfba8, "\x06\xc1" }, - { 0xfba9, "\x06\xc1" }, - { 0xfbaa, "\x06\xbe" }, - { 0xfbab, "\x06\xbe" }, - { 0xfbac, "\x06\xbe" }, - { 0xfbad, "\x06\xbe" }, - { 0xfbae, "\x06\xd2" }, - { 0xfbaf, "\x06\xd2" }, - { 0xfbb0, "\x06\xd3" }, - { 0xfbb1, "\x06\xd3" }, - { 0xfbd3, "\x06\xad" }, - { 0xfbd4, "\x06\xad" }, - { 0xfbd5, "\x06\xad" }, - { 0xfbd6, "\x06\xad" }, - { 0xfbd7, "\x06\xc7" }, - { 0xfbd8, "\x06\xc7" }, - { 0xfbd9, "\x06\xc6" }, - { 0xfbda, "\x06\xc6" }, - { 0xfbdb, "\x06\xc8" }, - { 0xfbdc, "\x06\xc8" }, - { 0xfbdd, "\x06\x77" }, - { 0xfbde, "\x06\xcb" }, - { 0xfbdf, "\x06\xcb" }, - { 0xfbe0, "\x06\xc5" }, - { 0xfbe1, "\x06\xc5" }, - { 0xfbe2, "\x06\xc9" }, - { 0xfbe3, "\x06\xc9" }, - { 0xfbe4, "\x06\xd0" }, - { 0xfbe5, "\x06\xd0" }, - { 0xfbe6, "\x06\xd0" }, - { 0xfbe7, "\x06\xd0" }, - { 0xfbe8, "\x06\x49" }, - { 0xfbe9, "\x06\x49" }, - { 0xfbea, "\x06\x26\x06\x27" }, - { 0xfbeb, "\x06\x26\x06\x27" }, - { 0xfbec, "\x06\x26\x06\xd5" }, - { 0xfbed, "\x06\x26\x06\xd5" }, - { 0xfbee, "\x06\x26\x06\x48" }, - { 0xfbef, "\x06\x26\x06\x48" }, - { 0xfbf0, "\x06\x26\x06\xc7" }, - { 0xfbf1, "\x06\x26\x06\xc7" }, - { 0xfbf2, "\x06\x26\x06\xc6" }, - { 0xfbf3, "\x06\x26\x06\xc6" }, - { 0xfbf4, "\x06\x26\x06\xc8" }, - { 0xfbf5, "\x06\x26\x06\xc8" }, - { 0xfbf6, "\x06\x26\x06\xd0" }, - { 0xfbf7, "\x06\x26\x06\xd0" }, - { 0xfbf8, "\x06\x26\x06\xd0" }, - { 0xfbf9, "\x06\x26\x06\x49" }, - { 0xfbfa, "\x06\x26\x06\x49" }, - { 0xfbfb, "\x06\x26\x06\x49" }, - { 0xfbfc, "\x06\xcc" }, - { 0xfbfd, "\x06\xcc" }, - { 0xfbfe, "\x06\xcc" }, - { 0xfbff, "\x06\xcc" }, - { 0xfc00, "\x06\x26\x06\x2c" }, - { 0xfc01, "\x06\x26\x06\x2d" }, - { 0xfc02, "\x06\x26\x06\x45" }, - { 0xfc03, "\x06\x26\x06\x49" }, - { 0xfc04, "\x06\x26\x06\x4a" }, - { 0xfc05, "\x06\x28\x06\x2c" }, - { 0xfc06, "\x06\x28\x06\x2d" }, - { 0xfc07, "\x06\x28\x06\x2e" }, - { 0xfc08, "\x06\x28\x06\x45" }, - { 0xfc09, "\x06\x28\x06\x49" }, - { 0xfc0a, "\x06\x28\x06\x4a" }, - { 0xfc0b, "\x06\x2a\x06\x2c" }, - { 0xfc0c, "\x06\x2a\x06\x2d" }, - { 0xfc0d, "\x06\x2a\x06\x2e" }, - { 0xfc0e, "\x06\x2a\x06\x45" }, - { 0xfc0f, "\x06\x2a\x06\x49" }, - { 0xfc10, "\x06\x2a\x06\x4a" }, - { 0xfc11, "\x06\x2b\x06\x2c" }, - { 0xfc12, "\x06\x2b\x06\x45" }, - { 0xfc13, "\x06\x2b\x06\x49" }, - { 0xfc14, "\x06\x2b\x06\x4a" }, - { 0xfc15, "\x06\x2c\x06\x2d" }, - { 0xfc16, "\x06\x2c\x06\x45" }, - { 0xfc17, "\x06\x2d\x06\x2c" }, - { 0xfc18, "\x06\x2d\x06\x45" }, - { 0xfc19, "\x06\x2e\x06\x2c" }, - { 0xfc1a, "\x06\x2e\x06\x2d" }, - { 0xfc1b, "\x06\x2e\x06\x45" }, - { 0xfc1c, "\x06\x33\x06\x2c" }, - { 0xfc1d, "\x06\x33\x06\x2d" }, - { 0xfc1e, "\x06\x33\x06\x2e" }, - { 0xfc1f, "\x06\x33\x06\x45" }, - { 0xfc20, "\x06\x35\x06\x2d" }, - { 0xfc21, "\x06\x35\x06\x45" }, - { 0xfc22, "\x06\x36\x06\x2c" }, - { 0xfc23, "\x06\x36\x06\x2d" }, - { 0xfc24, "\x06\x36\x06\x2e" }, - { 0xfc25, "\x06\x36\x06\x45" }, - { 0xfc26, "\x06\x37\x06\x2d" }, - { 0xfc27, "\x06\x37\x06\x45" }, - { 0xfc28, "\x06\x38\x06\x45" }, - { 0xfc29, "\x06\x39\x06\x2c" }, - { 0xfc2a, "\x06\x39\x06\x45" }, - { 0xfc2b, "\x06\x3a\x06\x2c" }, - { 0xfc2c, "\x06\x3a\x06\x45" }, - { 0xfc2d, "\x06\x41\x06\x2c" }, - { 0xfc2e, "\x06\x41\x06\x2d" }, - { 0xfc2f, "\x06\x41\x06\x2e" }, - { 0xfc30, "\x06\x41\x06\x45" }, - { 0xfc31, "\x06\x41\x06\x49" }, - { 0xfc32, "\x06\x41\x06\x4a" }, - { 0xfc33, "\x06\x42\x06\x2d" }, - { 0xfc34, "\x06\x42\x06\x45" }, - { 0xfc35, "\x06\x42\x06\x49" }, - { 0xfc36, "\x06\x42\x06\x4a" }, - { 0xfc37, "\x06\x43\x06\x27" }, - { 0xfc38, "\x06\x43\x06\x2c" }, - { 0xfc39, "\x06\x43\x06\x2d" }, - { 0xfc3a, "\x06\x43\x06\x2e" }, - { 0xfc3b, "\x06\x43\x06\x44" }, - { 0xfc3c, "\x06\x43\x06\x45" }, - { 0xfc3d, "\x06\x43\x06\x49" }, - { 0xfc3e, "\x06\x43\x06\x4a" }, - { 0xfc3f, "\x06\x44\x06\x2c" }, - { 0xfc40, "\x06\x44\x06\x2d" }, - { 0xfc41, "\x06\x44\x06\x2e" }, - { 0xfc42, "\x06\x44\x06\x45" }, - { 0xfc43, "\x06\x44\x06\x49" }, - { 0xfc44, "\x06\x44\x06\x4a" }, - { 0xfc45, "\x06\x45\x06\x2c" }, - { 0xfc46, "\x06\x45\x06\x2d" }, - { 0xfc47, "\x06\x45\x06\x2e" }, - { 0xfc48, "\x06\x45\x06\x45" }, - { 0xfc49, "\x06\x45\x06\x49" }, - { 0xfc4a, "\x06\x45\x06\x4a" }, - { 0xfc4b, "\x06\x46\x06\x2c" }, - { 0xfc4c, "\x06\x46\x06\x2d" }, - { 0xfc4d, "\x06\x46\x06\x2e" }, - { 0xfc4e, "\x06\x46\x06\x45" }, - { 0xfc4f, "\x06\x46\x06\x49" }, - { 0xfc50, "\x06\x46\x06\x4a" }, - { 0xfc51, "\x06\x47\x06\x2c" }, - { 0xfc52, "\x06\x47\x06\x45" }, - { 0xfc53, "\x06\x47\x06\x49" }, - { 0xfc54, "\x06\x47\x06\x4a" }, - { 0xfc55, "\x06\x4a\x06\x2c" }, - { 0xfc56, "\x06\x4a\x06\x2d" }, - { 0xfc57, "\x06\x4a\x06\x2e" }, - { 0xfc58, "\x06\x4a\x06\x45" }, - { 0xfc59, "\x06\x4a\x06\x49" }, - { 0xfc5a, "\x06\x4a\x06\x4a" }, - { 0xfc5b, "\x06\x30\x06\x70" }, - { 0xfc5c, "\x06\x31\x06\x70" }, - { 0xfc5d, "\x06\x49\x06\x70" }, - { 0xfc5e, "\x00\x20\x06\x4c\x06\x51" }, - { 0xfc5f, "\x00\x20\x06\x4d\x06\x51" }, - { 0xfc60, "\x00\x20\x06\x4e\x06\x51" }, - { 0xfc61, "\x00\x20\x06\x4f\x06\x51" }, - { 0xfc62, "\x00\x20\x06\x50\x06\x51" }, - { 0xfc63, "\x00\x20\x06\x51\x06\x70" }, - { 0xfc64, "\x06\x26\x06\x31" }, - { 0xfc65, "\x06\x26\x06\x32" }, - { 0xfc66, "\x06\x26\x06\x45" }, - { 0xfc67, "\x06\x26\x06\x46" }, - { 0xfc68, "\x06\x26\x06\x49" }, - { 0xfc69, "\x06\x26\x06\x4a" }, - { 0xfc6a, "\x06\x28\x06\x31" }, - { 0xfc6b, "\x06\x28\x06\x32" }, - { 0xfc6c, "\x06\x28\x06\x45" }, - { 0xfc6d, "\x06\x28\x06\x46" }, - { 0xfc6e, "\x06\x28\x06\x49" }, - { 0xfc6f, "\x06\x28\x06\x4a" }, - { 0xfc70, "\x06\x2a\x06\x31" }, - { 0xfc71, "\x06\x2a\x06\x32" }, - { 0xfc72, "\x06\x2a\x06\x45" }, - { 0xfc73, "\x06\x2a\x06\x46" }, - { 0xfc74, "\x06\x2a\x06\x49" }, - { 0xfc75, "\x06\x2a\x06\x4a" }, - { 0xfc76, "\x06\x2b\x06\x31" }, - { 0xfc77, "\x06\x2b\x06\x32" }, - { 0xfc78, "\x06\x2b\x06\x45" }, - { 0xfc79, "\x06\x2b\x06\x46" }, - { 0xfc7a, "\x06\x2b\x06\x49" }, - { 0xfc7b, "\x06\x2b\x06\x4a" }, - { 0xfc7c, "\x06\x41\x06\x49" }, - { 0xfc7d, "\x06\x41\x06\x4a" }, - { 0xfc7e, "\x06\x42\x06\x49" }, - { 0xfc7f, "\x06\x42\x06\x4a" }, - { 0xfc80, "\x06\x43\x06\x27" }, - { 0xfc81, "\x06\x43\x06\x44" }, - { 0xfc82, "\x06\x43\x06\x45" }, - { 0xfc83, "\x06\x43\x06\x49" }, - { 0xfc84, "\x06\x43\x06\x4a" }, - { 0xfc85, "\x06\x44\x06\x45" }, - { 0xfc86, "\x06\x44\x06\x49" }, - { 0xfc87, "\x06\x44\x06\x4a" }, - { 0xfc88, "\x06\x45\x06\x27" }, - { 0xfc89, "\x06\x45\x06\x45" }, - { 0xfc8a, "\x06\x46\x06\x31" }, - { 0xfc8b, "\x06\x46\x06\x32" }, - { 0xfc8c, "\x06\x46\x06\x45" }, - { 0xfc8d, "\x06\x46\x06\x46" }, - { 0xfc8e, "\x06\x46\x06\x49" }, - { 0xfc8f, "\x06\x46\x06\x4a" }, - { 0xfc90, "\x06\x49\x06\x70" }, - { 0xfc91, "\x06\x4a\x06\x31" }, - { 0xfc92, "\x06\x4a\x06\x32" }, - { 0xfc93, "\x06\x4a\x06\x45" }, - { 0xfc94, "\x06\x4a\x06\x46" }, - { 0xfc95, "\x06\x4a\x06\x49" }, - { 0xfc96, "\x06\x4a\x06\x4a" }, - { 0xfc97, "\x06\x26\x06\x2c" }, - { 0xfc98, "\x06\x26\x06\x2d" }, - { 0xfc99, "\x06\x26\x06\x2e" }, - { 0xfc9a, "\x06\x26\x06\x45" }, - { 0xfc9b, "\x06\x26\x06\x47" }, - { 0xfc9c, "\x06\x28\x06\x2c" }, - { 0xfc9d, "\x06\x28\x06\x2d" }, - { 0xfc9e, "\x06\x28\x06\x2e" }, - { 0xfc9f, "\x06\x28\x06\x45" }, - { 0xfca0, "\x06\x28\x06\x47" }, - { 0xfca1, "\x06\x2a\x06\x2c" }, - { 0xfca2, "\x06\x2a\x06\x2d" }, - { 0xfca3, "\x06\x2a\x06\x2e" }, - { 0xfca4, "\x06\x2a\x06\x45" }, - { 0xfca5, "\x06\x2a\x06\x47" }, - { 0xfca6, "\x06\x2b\x06\x45" }, - { 0xfca7, "\x06\x2c\x06\x2d" }, - { 0xfca8, "\x06\x2c\x06\x45" }, - { 0xfca9, "\x06\x2d\x06\x2c" }, - { 0xfcaa, "\x06\x2d\x06\x45" }, - { 0xfcab, "\x06\x2e\x06\x2c" }, - { 0xfcac, "\x06\x2e\x06\x45" }, - { 0xfcad, "\x06\x33\x06\x2c" }, - { 0xfcae, "\x06\x33\x06\x2d" }, - { 0xfcaf, "\x06\x33\x06\x2e" }, - { 0xfcb0, "\x06\x33\x06\x45" }, - { 0xfcb1, "\x06\x35\x06\x2d" }, - { 0xfcb2, "\x06\x35\x06\x2e" }, - { 0xfcb3, "\x06\x35\x06\x45" }, - { 0xfcb4, "\x06\x36\x06\x2c" }, - { 0xfcb5, "\x06\x36\x06\x2d" }, - { 0xfcb6, "\x06\x36\x06\x2e" }, - { 0xfcb7, "\x06\x36\x06\x45" }, - { 0xfcb8, "\x06\x37\x06\x2d" }, - { 0xfcb9, "\x06\x38\x06\x45" }, - { 0xfcba, "\x06\x39\x06\x2c" }, - { 0xfcbb, "\x06\x39\x06\x45" }, - { 0xfcbc, "\x06\x3a\x06\x2c" }, - { 0xfcbd, "\x06\x3a\x06\x45" }, - { 0xfcbe, "\x06\x41\x06\x2c" }, - { 0xfcbf, "\x06\x41\x06\x2d" }, - { 0xfcc0, "\x06\x41\x06\x2e" }, - { 0xfcc1, "\x06\x41\x06\x45" }, - { 0xfcc2, "\x06\x42\x06\x2d" }, - { 0xfcc3, "\x06\x42\x06\x45" }, - { 0xfcc4, "\x06\x43\x06\x2c" }, - { 0xfcc5, "\x06\x43\x06\x2d" }, - { 0xfcc6, "\x06\x43\x06\x2e" }, - { 0xfcc7, "\x06\x43\x06\x44" }, - { 0xfcc8, "\x06\x43\x06\x45" }, - { 0xfcc9, "\x06\x44\x06\x2c" }, - { 0xfcca, "\x06\x44\x06\x2d" }, - { 0xfccb, "\x06\x44\x06\x2e" }, - { 0xfccc, "\x06\x44\x06\x45" }, - { 0xfccd, "\x06\x44\x06\x47" }, - { 0xfcce, "\x06\x45\x06\x2c" }, - { 0xfccf, "\x06\x45\x06\x2d" }, - { 0xfcd0, "\x06\x45\x06\x2e" }, - { 0xfcd1, "\x06\x45\x06\x45" }, - { 0xfcd2, "\x06\x46\x06\x2c" }, - { 0xfcd3, "\x06\x46\x06\x2d" }, - { 0xfcd4, "\x06\x46\x06\x2e" }, - { 0xfcd5, "\x06\x46\x06\x45" }, - { 0xfcd6, "\x06\x46\x06\x47" }, - { 0xfcd7, "\x06\x47\x06\x2c" }, - { 0xfcd8, "\x06\x47\x06\x45" }, - { 0xfcd9, "\x06\x47\x06\x70" }, - { 0xfcda, "\x06\x4a\x06\x2c" }, - { 0xfcdb, "\x06\x4a\x06\x2d" }, - { 0xfcdc, "\x06\x4a\x06\x2e" }, - { 0xfcdd, "\x06\x4a\x06\x45" }, - { 0xfcde, "\x06\x4a\x06\x47" }, - { 0xfcdf, "\x06\x26\x06\x45" }, - { 0xfce0, "\x06\x26\x06\x47" }, - { 0xfce1, "\x06\x28\x06\x45" }, - { 0xfce2, "\x06\x28\x06\x47" }, - { 0xfce3, "\x06\x2a\x06\x45" }, - { 0xfce4, "\x06\x2a\x06\x47" }, - { 0xfce5, "\x06\x2b\x06\x45" }, - { 0xfce6, "\x06\x2b\x06\x47" }, - { 0xfce7, "\x06\x33\x06\x45" }, - { 0xfce8, "\x06\x33\x06\x47" }, - { 0xfce9, "\x06\x34\x06\x45" }, - { 0xfcea, "\x06\x34\x06\x47" }, - { 0xfceb, "\x06\x43\x06\x44" }, - { 0xfcec, "\x06\x43\x06\x45" }, - { 0xfced, "\x06\x44\x06\x45" }, - { 0xfcee, "\x06\x46\x06\x45" }, - { 0xfcef, "\x06\x46\x06\x47" }, - { 0xfcf0, "\x06\x4a\x06\x45" }, - { 0xfcf1, "\x06\x4a\x06\x47" }, - { 0xfcf2, "\x06\x40\x06\x4e\x06\x51" }, - { 0xfcf3, "\x06\x40\x06\x4f\x06\x51" }, - { 0xfcf4, "\x06\x40\x06\x50\x06\x51" }, - { 0xfcf5, "\x06\x37\x06\x49" }, - { 0xfcf6, "\x06\x37\x06\x4a" }, - { 0xfcf7, "\x06\x39\x06\x49" }, - { 0xfcf8, "\x06\x39\x06\x4a" }, - { 0xfcf9, "\x06\x3a\x06\x49" }, - { 0xfcfa, "\x06\x3a\x06\x4a" }, - { 0xfcfb, "\x06\x33\x06\x49" }, - { 0xfcfc, "\x06\x33\x06\x4a" }, - { 0xfcfd, "\x06\x34\x06\x49" }, - { 0xfcfe, "\x06\x34\x06\x4a" }, - { 0xfcff, "\x06\x2d\x06\x49" }, - { 0xfd00, "\x06\x2d\x06\x4a" }, - { 0xfd01, "\x06\x2c\x06\x49" }, - { 0xfd02, "\x06\x2c\x06\x4a" }, - { 0xfd03, "\x06\x2e\x06\x49" }, - { 0xfd04, "\x06\x2e\x06\x4a" }, - { 0xfd05, "\x06\x35\x06\x49" }, - { 0xfd06, "\x06\x35\x06\x4a" }, - { 0xfd07, "\x06\x36\x06\x49" }, - { 0xfd08, "\x06\x36\x06\x4a" }, - { 0xfd09, "\x06\x34\x06\x2c" }, - { 0xfd0a, "\x06\x34\x06\x2d" }, - { 0xfd0b, "\x06\x34\x06\x2e" }, - { 0xfd0c, "\x06\x34\x06\x45" }, - { 0xfd0d, "\x06\x34\x06\x31" }, - { 0xfd0e, "\x06\x33\x06\x31" }, - { 0xfd0f, "\x06\x35\x06\x31" }, - { 0xfd10, "\x06\x36\x06\x31" }, - { 0xfd11, "\x06\x37\x06\x49" }, - { 0xfd12, "\x06\x37\x06\x4a" }, - { 0xfd13, "\x06\x39\x06\x49" }, - { 0xfd14, "\x06\x39\x06\x4a" }, - { 0xfd15, "\x06\x3a\x06\x49" }, - { 0xfd16, "\x06\x3a\x06\x4a" }, - { 0xfd17, "\x06\x33\x06\x49" }, - { 0xfd18, "\x06\x33\x06\x4a" }, - { 0xfd19, "\x06\x34\x06\x49" }, - { 0xfd1a, "\x06\x34\x06\x4a" }, - { 0xfd1b, "\x06\x2d\x06\x49" }, - { 0xfd1c, "\x06\x2d\x06\x4a" }, - { 0xfd1d, "\x06\x2c\x06\x49" }, - { 0xfd1e, "\x06\x2c\x06\x4a" }, - { 0xfd1f, "\x06\x2e\x06\x49" }, - { 0xfd20, "\x06\x2e\x06\x4a" }, - { 0xfd21, "\x06\x35\x06\x49" }, - { 0xfd22, "\x06\x35\x06\x4a" }, - { 0xfd23, "\x06\x36\x06\x49" }, - { 0xfd24, "\x06\x36\x06\x4a" }, - { 0xfd25, "\x06\x34\x06\x2c" }, - { 0xfd26, "\x06\x34\x06\x2d" }, - { 0xfd27, "\x06\x34\x06\x2e" }, - { 0xfd28, "\x06\x34\x06\x45" }, - { 0xfd29, "\x06\x34\x06\x31" }, - { 0xfd2a, "\x06\x33\x06\x31" }, - { 0xfd2b, "\x06\x35\x06\x31" }, - { 0xfd2c, "\x06\x36\x06\x31" }, - { 0xfd2d, "\x06\x34\x06\x2c" }, - { 0xfd2e, "\x06\x34\x06\x2d" }, - { 0xfd2f, "\x06\x34\x06\x2e" }, - { 0xfd30, "\x06\x34\x06\x45" }, - { 0xfd31, "\x06\x33\x06\x47" }, - { 0xfd32, "\x06\x34\x06\x47" }, - { 0xfd33, "\x06\x37\x06\x45" }, - { 0xfd34, "\x06\x33\x06\x2c" }, - { 0xfd35, "\x06\x33\x06\x2d" }, - { 0xfd36, "\x06\x33\x06\x2e" }, - { 0xfd37, "\x06\x34\x06\x2c" }, - { 0xfd38, "\x06\x34\x06\x2d" }, - { 0xfd39, "\x06\x34\x06\x2e" }, - { 0xfd3a, "\x06\x37\x06\x45" }, - { 0xfd3b, "\x06\x38\x06\x45" }, - { 0xfd3c, "\x06\x27\x06\x4b" }, - { 0xfd3d, "\x06\x27\x06\x4b" }, - { 0xfd50, "\x06\x2a\x06\x2c\x06\x45" }, - { 0xfd51, "\x06\x2a\x06\x2d\x06\x2c" }, - { 0xfd52, "\x06\x2a\x06\x2d\x06\x2c" }, - { 0xfd53, "\x06\x2a\x06\x2d\x06\x45" }, - { 0xfd54, "\x06\x2a\x06\x2e\x06\x45" }, - { 0xfd55, "\x06\x2a\x06\x45\x06\x2c" }, - { 0xfd56, "\x06\x2a\x06\x45\x06\x2d" }, - { 0xfd57, "\x06\x2a\x06\x45\x06\x2e" }, - { 0xfd58, "\x06\x2c\x06\x45\x06\x2d" }, - { 0xfd59, "\x06\x2c\x06\x45\x06\x2d" }, - { 0xfd5a, "\x06\x2d\x06\x45\x06\x4a" }, - { 0xfd5b, "\x06\x2d\x06\x45\x06\x49" }, - { 0xfd5c, "\x06\x33\x06\x2d\x06\x2c" }, - { 0xfd5d, "\x06\x33\x06\x2c\x06\x2d" }, - { 0xfd5e, "\x06\x33\x06\x2c\x06\x49" }, - { 0xfd5f, "\x06\x33\x06\x45\x06\x2d" }, - { 0xfd60, "\x06\x33\x06\x45\x06\x2d" }, - { 0xfd61, "\x06\x33\x06\x45\x06\x2c" }, - { 0xfd62, "\x06\x33\x06\x45\x06\x45" }, - { 0xfd63, "\x06\x33\x06\x45\x06\x45" }, - { 0xfd64, "\x06\x35\x06\x2d\x06\x2d" }, - { 0xfd65, "\x06\x35\x06\x2d\x06\x2d" }, - { 0xfd66, "\x06\x35\x06\x45\x06\x45" }, - { 0xfd67, "\x06\x34\x06\x2d\x06\x45" }, - { 0xfd68, "\x06\x34\x06\x2d\x06\x45" }, - { 0xfd69, "\x06\x34\x06\x2c\x06\x4a" }, - { 0xfd6a, "\x06\x34\x06\x45\x06\x2e" }, - { 0xfd6b, "\x06\x34\x06\x45\x06\x2e" }, - { 0xfd6c, "\x06\x34\x06\x45\x06\x45" }, - { 0xfd6d, "\x06\x34\x06\x45\x06\x45" }, - { 0xfd6e, "\x06\x36\x06\x2d\x06\x49" }, - { 0xfd6f, "\x06\x36\x06\x2e\x06\x45" }, - { 0xfd70, "\x06\x36\x06\x2e\x06\x45" }, - { 0xfd71, "\x06\x37\x06\x45\x06\x2d" }, - { 0xfd72, "\x06\x37\x06\x45\x06\x2d" }, - { 0xfd73, "\x06\x37\x06\x45\x06\x45" }, - { 0xfd74, "\x06\x37\x06\x45\x06\x4a" }, - { 0xfd75, "\x06\x39\x06\x2c\x06\x45" }, - { 0xfd76, "\x06\x39\x06\x45\x06\x45" }, - { 0xfd77, "\x06\x39\x06\x45\x06\x45" }, - { 0xfd78, "\x06\x39\x06\x45\x06\x49" }, - { 0xfd79, "\x06\x3a\x06\x45\x06\x45" }, - { 0xfd7a, "\x06\x3a\x06\x45\x06\x4a" }, - { 0xfd7b, "\x06\x3a\x06\x45\x06\x49" }, - { 0xfd7c, "\x06\x41\x06\x2e\x06\x45" }, - { 0xfd7d, "\x06\x41\x06\x2e\x06\x45" }, - { 0xfd7e, "\x06\x42\x06\x45\x06\x2d" }, - { 0xfd7f, "\x06\x42\x06\x45\x06\x45" }, - { 0xfd80, "\x06\x44\x06\x2d\x06\x45" }, - { 0xfd81, "\x06\x44\x06\x2d\x06\x4a" }, - { 0xfd82, "\x06\x44\x06\x2d\x06\x49" }, - { 0xfd83, "\x06\x44\x06\x2c\x06\x2c" }, - { 0xfd84, "\x06\x44\x06\x2c\x06\x2c" }, - { 0xfd85, "\x06\x44\x06\x2e\x06\x45" }, - { 0xfd86, "\x06\x44\x06\x2e\x06\x45" }, - { 0xfd87, "\x06\x44\x06\x45\x06\x2d" }, - { 0xfd88, "\x06\x44\x06\x45\x06\x2d" }, - { 0xfd89, "\x06\x45\x06\x2d\x06\x2c" }, - { 0xfd8a, "\x06\x45\x06\x2d\x06\x45" }, - { 0xfd8b, "\x06\x45\x06\x2d\x06\x4a" }, - { 0xfd8c, "\x06\x45\x06\x2c\x06\x2d" }, - { 0xfd8d, "\x06\x45\x06\x2c\x06\x45" }, - { 0xfd8e, "\x06\x45\x06\x2e\x06\x2c" }, - { 0xfd8f, "\x06\x45\x06\x2e\x06\x45" }, - { 0xfd92, "\x06\x45\x06\x2c\x06\x2e" }, - { 0xfd93, "\x06\x47\x06\x45\x06\x2c" }, - { 0xfd94, "\x06\x47\x06\x45\x06\x45" }, - { 0xfd95, "\x06\x46\x06\x2d\x06\x45" }, - { 0xfd96, "\x06\x46\x06\x2d\x06\x49" }, - { 0xfd97, "\x06\x46\x06\x2c\x06\x45" }, - { 0xfd98, "\x06\x46\x06\x2c\x06\x45" }, - { 0xfd99, "\x06\x46\x06\x2c\x06\x49" }, - { 0xfd9a, "\x06\x46\x06\x45\x06\x4a" }, - { 0xfd9b, "\x06\x46\x06\x45\x06\x49" }, - { 0xfd9c, "\x06\x4a\x06\x45\x06\x45" }, - { 0xfd9d, "\x06\x4a\x06\x45\x06\x45" }, - { 0xfd9e, "\x06\x28\x06\x2e\x06\x4a" }, - { 0xfd9f, "\x06\x2a\x06\x2c\x06\x4a" }, - { 0xfda0, "\x06\x2a\x06\x2c\x06\x49" }, - { 0xfda1, "\x06\x2a\x06\x2e\x06\x4a" }, - { 0xfda2, "\x06\x2a\x06\x2e\x06\x49" }, - { 0xfda3, "\x06\x2a\x06\x45\x06\x4a" }, - { 0xfda4, "\x06\x2a\x06\x45\x06\x49" }, - { 0xfda5, "\x06\x2c\x06\x45\x06\x4a" }, - { 0xfda6, "\x06\x2c\x06\x2d\x06\x49" }, - { 0xfda7, "\x06\x2c\x06\x45\x06\x49" }, - { 0xfda8, "\x06\x33\x06\x2e\x06\x49" }, - { 0xfda9, "\x06\x35\x06\x2d\x06\x4a" }, - { 0xfdaa, "\x06\x34\x06\x2d\x06\x4a" }, - { 0xfdab, "\x06\x36\x06\x2d\x06\x4a" }, - { 0xfdac, "\x06\x44\x06\x2c\x06\x4a" }, - { 0xfdad, "\x06\x44\x06\x45\x06\x4a" }, - { 0xfdae, "\x06\x4a\x06\x2d\x06\x4a" }, - { 0xfdaf, "\x06\x4a\x06\x2c\x06\x4a" }, - { 0xfdb0, "\x06\x4a\x06\x45\x06\x4a" }, - { 0xfdb1, "\x06\x45\x06\x45\x06\x4a" }, - { 0xfdb2, "\x06\x42\x06\x45\x06\x4a" }, - { 0xfdb3, "\x06\x46\x06\x2d\x06\x4a" }, - { 0xfdb4, "\x06\x42\x06\x45\x06\x2d" }, - { 0xfdb5, "\x06\x44\x06\x2d\x06\x45" }, - { 0xfdb6, "\x06\x39\x06\x45\x06\x4a" }, - { 0xfdb7, "\x06\x43\x06\x45\x06\x4a" }, - { 0xfdb8, "\x06\x46\x06\x2c\x06\x2d" }, - { 0xfdb9, "\x06\x45\x06\x2e\x06\x4a" }, - { 0xfdba, "\x06\x44\x06\x2c\x06\x45" }, - { 0xfdbb, "\x06\x43\x06\x45\x06\x45" }, - { 0xfdbc, "\x06\x44\x06\x2c\x06\x45" }, - { 0xfdbd, "\x06\x46\x06\x2c\x06\x2d" }, - { 0xfdbe, "\x06\x2c\x06\x2d\x06\x4a" }, - { 0xfdbf, "\x06\x2d\x06\x2c\x06\x4a" }, - { 0xfdc0, "\x06\x45\x06\x2c\x06\x4a" }, - { 0xfdc1, "\x06\x41\x06\x45\x06\x4a" }, - { 0xfdc2, "\x06\x28\x06\x2d\x06\x4a" }, - { 0xfdc3, "\x06\x43\x06\x45\x06\x45" }, - { 0xfdc4, "\x06\x39\x06\x2c\x06\x45" }, - { 0xfdc5, "\x06\x35\x06\x45\x06\x45" }, - { 0xfdc6, "\x06\x33\x06\x2e\x06\x4a" }, - { 0xfdc7, "\x06\x46\x06\x2c\x06\x4a" }, - { 0xfdf0, "\x06\x35\x06\x44\x06\xd2" }, - { 0xfdf1, "\x06\x42\x06\x44\x06\xd2" }, - { 0xfdf2, "\x06\x27\x06\x44\x06\x44\x06\x47" }, - { 0xfdf3, "\x06\x27\x06\x43\x06\x28\x06\x31" }, - { 0xfdf4, "\x06\x45\x06\x2d\x06\x45\x06\x2f" }, - { 0xfdf5, "\x06\x35\x06\x44\x06\x39\x06\x45" }, - { 0xfdf6, "\x06\x31\x06\x33\x06\x48\x06\x44" }, - { 0xfdf7, "\x06\x39\x06\x44\x06\x4a\x06\x47" }, - { 0xfdf8, "\x06\x48\x06\x33\x06\x44\x06\x45" }, - { 0xfdf9, "\x06\x35\x06\x44\x06\x49" }, - { 0xfdfa, "\x06\x35\x06\x44\x06\x49\x00\x20\x06\x27\x06\x44\x06\x44\x06\x47\x00\x20\x06\x39\x06\x44\x06\x4a\x06\x47\x00\x20\x06\x48\x06\x33\x06\x44\x06\x45" }, - { 0xfdfb, "\x06\x2c\x06\x44\x00\x20\x06\x2c\x06\x44\x06\x27\x06\x44\x06\x47" }, - { 0xfe30, "\x20\x25" }, - { 0xfe31, "\x20\x14" }, - { 0xfe32, "\x20\x13" }, - { 0xfe33, "\x00\x5f" }, - { 0xfe34, "\x00\x5f" }, - { 0xfe35, "\x00\x28" }, - { 0xfe36, "\x00\x29" }, - { 0xfe37, "\x00\x7b" }, - { 0xfe38, "\x00\x7d" }, - { 0xfe39, "\x30\x14" }, - { 0xfe3a, "\x30\x15" }, - { 0xfe3b, "\x30\x10" }, - { 0xfe3c, "\x30\x11" }, - { 0xfe3d, "\x30\x0a" }, - { 0xfe3e, "\x30\x0b" }, - { 0xfe3f, "\x30\x08" }, - { 0xfe40, "\x30\x09" }, - { 0xfe41, "\x30\x0c" }, - { 0xfe42, "\x30\x0d" }, - { 0xfe43, "\x30\x0e" }, - { 0xfe44, "\x30\x0f" }, - { 0xfe49, "\x20\x3e" }, - { 0xfe4a, "\x20\x3e" }, - { 0xfe4b, "\x20\x3e" }, - { 0xfe4c, "\x20\x3e" }, - { 0xfe4d, "\x00\x5f" }, - { 0xfe4e, "\x00\x5f" }, - { 0xfe4f, "\x00\x5f" }, - { 0xfe50, "\x00\x2c" }, - { 0xfe51, "\x30\x01" }, - { 0xfe52, "\x00\x2e" }, - { 0xfe54, "\x00\x3b" }, - { 0xfe55, "\x00\x3a" }, - { 0xfe56, "\x00\x3f" }, - { 0xfe57, "\x00\x21" }, - { 0xfe58, "\x20\x14" }, - { 0xfe59, "\x00\x28" }, - { 0xfe5a, "\x00\x29" }, - { 0xfe5b, "\x00\x7b" }, - { 0xfe5c, "\x00\x7d" }, - { 0xfe5d, "\x30\x14" }, - { 0xfe5e, "\x30\x15" }, - { 0xfe5f, "\x00\x23" }, - { 0xfe60, "\x00\x26" }, - { 0xfe61, "\x00\x2a" }, - { 0xfe62, "\x00\x2b" }, - { 0xfe63, "\x00\x2d" }, - { 0xfe64, "\x00\x3c" }, - { 0xfe65, "\x00\x3e" }, - { 0xfe66, "\x00\x3d" }, - { 0xfe68, "\x00\x5c" }, - { 0xfe69, "\x00\x24" }, - { 0xfe6a, "\x00\x25" }, - { 0xfe6b, "\x00\x40" }, - { 0xfe70, "\x00\x20\x06\x4b" }, - { 0xfe71, "\x06\x40\x06\x4b" }, - { 0xfe72, "\x00\x20\x06\x4c" }, - { 0xfe74, "\x00\x20\x06\x4d" }, - { 0xfe76, "\x00\x20\x06\x4e" }, - { 0xfe77, "\x06\x40\x06\x4e" }, - { 0xfe78, "\x00\x20\x06\x4f" }, - { 0xfe79, "\x06\x40\x06\x4f" }, - { 0xfe7a, "\x00\x20\x06\x50" }, - { 0xfe7b, "\x06\x40\x06\x50" }, - { 0xfe7c, "\x00\x20\x06\x51" }, - { 0xfe7d, "\x06\x40\x06\x51" }, - { 0xfe7e, "\x00\x20\x06\x52" }, - { 0xfe7f, "\x06\x40\x06\x52" }, - { 0xfe80, "\x06\x21" }, - { 0xfe81, "\x06\x22" }, - { 0xfe82, "\x06\x22" }, - { 0xfe83, "\x06\x23" }, - { 0xfe84, "\x06\x23" }, - { 0xfe85, "\x06\x24" }, - { 0xfe86, "\x06\x24" }, - { 0xfe87, "\x06\x25" }, - { 0xfe88, "\x06\x25" }, - { 0xfe89, "\x06\x26" }, - { 0xfe8a, "\x06\x26" }, - { 0xfe8b, "\x06\x26" }, - { 0xfe8c, "\x06\x26" }, - { 0xfe8d, "\x06\x27" }, - { 0xfe8e, "\x06\x27" }, - { 0xfe8f, "\x06\x28" }, - { 0xfe90, "\x06\x28" }, - { 0xfe91, "\x06\x28" }, - { 0xfe92, "\x06\x28" }, - { 0xfe93, "\x06\x29" }, - { 0xfe94, "\x06\x29" }, - { 0xfe95, "\x06\x2a" }, - { 0xfe96, "\x06\x2a" }, - { 0xfe97, "\x06\x2a" }, - { 0xfe98, "\x06\x2a" }, - { 0xfe99, "\x06\x2b" }, - { 0xfe9a, "\x06\x2b" }, - { 0xfe9b, "\x06\x2b" }, - { 0xfe9c, "\x06\x2b" }, - { 0xfe9d, "\x06\x2c" }, - { 0xfe9e, "\x06\x2c" }, - { 0xfe9f, "\x06\x2c" }, - { 0xfea0, "\x06\x2c" }, - { 0xfea1, "\x06\x2d" }, - { 0xfea2, "\x06\x2d" }, - { 0xfea3, "\x06\x2d" }, - { 0xfea4, "\x06\x2d" }, - { 0xfea5, "\x06\x2e" }, - { 0xfea6, "\x06\x2e" }, - { 0xfea7, "\x06\x2e" }, - { 0xfea8, "\x06\x2e" }, - { 0xfea9, "\x06\x2f" }, - { 0xfeaa, "\x06\x2f" }, - { 0xfeab, "\x06\x30" }, - { 0xfeac, "\x06\x30" }, - { 0xfead, "\x06\x31" }, - { 0xfeae, "\x06\x31" }, - { 0xfeaf, "\x06\x32" }, - { 0xfeb0, "\x06\x32" }, - { 0xfeb1, "\x06\x33" }, - { 0xfeb2, "\x06\x33" }, - { 0xfeb3, "\x06\x33" }, - { 0xfeb4, "\x06\x33" }, - { 0xfeb5, "\x06\x34" }, - { 0xfeb6, "\x06\x34" }, - { 0xfeb7, "\x06\x34" }, - { 0xfeb8, "\x06\x34" }, - { 0xfeb9, "\x06\x35" }, - { 0xfeba, "\x06\x35" }, - { 0xfebb, "\x06\x35" }, - { 0xfebc, "\x06\x35" }, - { 0xfebd, "\x06\x36" }, - { 0xfebe, "\x06\x36" }, - { 0xfebf, "\x06\x36" }, - { 0xfec0, "\x06\x36" }, - { 0xfec1, "\x06\x37" }, - { 0xfec2, "\x06\x37" }, - { 0xfec3, "\x06\x37" }, - { 0xfec4, "\x06\x37" }, - { 0xfec5, "\x06\x38" }, - { 0xfec6, "\x06\x38" }, - { 0xfec7, "\x06\x38" }, - { 0xfec8, "\x06\x38" }, - { 0xfec9, "\x06\x39" }, - { 0xfeca, "\x06\x39" }, - { 0xfecb, "\x06\x39" }, - { 0xfecc, "\x06\x39" }, - { 0xfecd, "\x06\x3a" }, - { 0xfece, "\x06\x3a" }, - { 0xfecf, "\x06\x3a" }, - { 0xfed0, "\x06\x3a" }, - { 0xfed1, "\x06\x41" }, - { 0xfed2, "\x06\x41" }, - { 0xfed3, "\x06\x41" }, - { 0xfed4, "\x06\x41" }, - { 0xfed5, "\x06\x42" }, - { 0xfed6, "\x06\x42" }, - { 0xfed7, "\x06\x42" }, - { 0xfed8, "\x06\x42" }, - { 0xfed9, "\x06\x43" }, - { 0xfeda, "\x06\x43" }, - { 0xfedb, "\x06\x43" }, - { 0xfedc, "\x06\x43" }, - { 0xfedd, "\x06\x44" }, - { 0xfede, "\x06\x44" }, - { 0xfedf, "\x06\x44" }, - { 0xfee0, "\x06\x44" }, - { 0xfee1, "\x06\x45" }, - { 0xfee2, "\x06\x45" }, - { 0xfee3, "\x06\x45" }, - { 0xfee4, "\x06\x45" }, - { 0xfee5, "\x06\x46" }, - { 0xfee6, "\x06\x46" }, - { 0xfee7, "\x06\x46" }, - { 0xfee8, "\x06\x46" }, - { 0xfee9, "\x06\x47" }, - { 0xfeea, "\x06\x47" }, - { 0xfeeb, "\x06\x47" }, - { 0xfeec, "\x06\x47" }, - { 0xfeed, "\x06\x48" }, - { 0xfeee, "\x06\x48" }, - { 0xfeef, "\x06\x49" }, - { 0xfef0, "\x06\x49" }, - { 0xfef1, "\x06\x4a" }, - { 0xfef2, "\x06\x4a" }, - { 0xfef3, "\x06\x4a" }, - { 0xfef4, "\x06\x4a" }, - { 0xfef5, "\x06\x44\x06\x22" }, - { 0xfef6, "\x06\x44\x06\x22" }, - { 0xfef7, "\x06\x44\x06\x23" }, - { 0xfef8, "\x06\x44\x06\x23" }, - { 0xfef9, "\x06\x44\x06\x25" }, - { 0xfefa, "\x06\x44\x06\x25" }, - { 0xfefb, "\x06\x44\x06\x27" }, - { 0xfefc, "\x06\x44\x06\x27" }, - { 0xff01, "\x00\x21" }, - { 0xff02, "\x00\x22" }, - { 0xff03, "\x00\x23" }, - { 0xff04, "\x00\x24" }, - { 0xff05, "\x00\x25" }, - { 0xff06, "\x00\x26" }, - { 0xff07, "\x00\x27" }, - { 0xff08, "\x00\x28" }, - { 0xff09, "\x00\x29" }, - { 0xff0a, "\x00\x2a" }, - { 0xff0b, "\x00\x2b" }, - { 0xff0c, "\x00\x2c" }, - { 0xff0d, "\x00\x2d" }, - { 0xff0e, "\x00\x2e" }, - { 0xff0f, "\x00\x2f" }, - { 0xff10, "\x00\x30" }, - { 0xff11, "\x00\x31" }, - { 0xff12, "\x00\x32" }, - { 0xff13, "\x00\x33" }, - { 0xff14, "\x00\x34" }, - { 0xff15, "\x00\x35" }, - { 0xff16, "\x00\x36" }, - { 0xff17, "\x00\x37" }, - { 0xff18, "\x00\x38" }, - { 0xff19, "\x00\x39" }, - { 0xff1a, "\x00\x3a" }, - { 0xff1b, "\x00\x3b" }, - { 0xff1c, "\x00\x3c" }, - { 0xff1d, "\x00\x3d" }, - { 0xff1e, "\x00\x3e" }, - { 0xff1f, "\x00\x3f" }, - { 0xff20, "\x00\x40" }, - { 0xff21, "\x00\x41" }, - { 0xff22, "\x00\x42" }, - { 0xff23, "\x00\x43" }, - { 0xff24, "\x00\x44" }, - { 0xff25, "\x00\x45" }, - { 0xff26, "\x00\x46" }, - { 0xff27, "\x00\x47" }, - { 0xff28, "\x00\x48" }, - { 0xff29, "\x00\x49" }, - { 0xff2a, "\x00\x4a" }, - { 0xff2b, "\x00\x4b" }, - { 0xff2c, "\x00\x4c" }, - { 0xff2d, "\x00\x4d" }, - { 0xff2e, "\x00\x4e" }, - { 0xff2f, "\x00\x4f" }, - { 0xff30, "\x00\x50" }, - { 0xff31, "\x00\x51" }, - { 0xff32, "\x00\x52" }, - { 0xff33, "\x00\x53" }, - { 0xff34, "\x00\x54" }, - { 0xff35, "\x00\x55" }, - { 0xff36, "\x00\x56" }, - { 0xff37, "\x00\x57" }, - { 0xff38, "\x00\x58" }, - { 0xff39, "\x00\x59" }, - { 0xff3a, "\x00\x5a" }, - { 0xff3b, "\x00\x5b" }, - { 0xff3c, "\x00\x5c" }, - { 0xff3d, "\x00\x5d" }, - { 0xff3e, "\x00\x5e" }, - { 0xff3f, "\x00\x5f" }, - { 0xff40, "\x00\x60" }, - { 0xff41, "\x00\x61" }, - { 0xff42, "\x00\x62" }, - { 0xff43, "\x00\x63" }, - { 0xff44, "\x00\x64" }, - { 0xff45, "\x00\x65" }, - { 0xff46, "\x00\x66" }, - { 0xff47, "\x00\x67" }, - { 0xff48, "\x00\x68" }, - { 0xff49, "\x00\x69" }, - { 0xff4a, "\x00\x6a" }, - { 0xff4b, "\x00\x6b" }, - { 0xff4c, "\x00\x6c" }, - { 0xff4d, "\x00\x6d" }, - { 0xff4e, "\x00\x6e" }, - { 0xff4f, "\x00\x6f" }, - { 0xff50, "\x00\x70" }, - { 0xff51, "\x00\x71" }, - { 0xff52, "\x00\x72" }, - { 0xff53, "\x00\x73" }, - { 0xff54, "\x00\x74" }, - { 0xff55, "\x00\x75" }, - { 0xff56, "\x00\x76" }, - { 0xff57, "\x00\x77" }, - { 0xff58, "\x00\x78" }, - { 0xff59, "\x00\x79" }, - { 0xff5a, "\x00\x7a" }, - { 0xff5b, "\x00\x7b" }, - { 0xff5c, "\x00\x7c" }, - { 0xff5d, "\x00\x7d" }, - { 0xff5e, "\x00\x7e" }, - { 0xff61, "\x30\x02" }, - { 0xff62, "\x30\x0c" }, - { 0xff63, "\x30\x0d" }, - { 0xff64, "\x30\x01" }, - { 0xff65, "\x30\xfb" }, - { 0xff66, "\x30\xf2" }, - { 0xff67, "\x30\xa1" }, - { 0xff68, "\x30\xa3" }, - { 0xff69, "\x30\xa5" }, - { 0xff6a, "\x30\xa7" }, - { 0xff6b, "\x30\xa9" }, - { 0xff6c, "\x30\xe3" }, - { 0xff6d, "\x30\xe5" }, - { 0xff6e, "\x30\xe7" }, - { 0xff6f, "\x30\xc3" }, - { 0xff70, "\x30\xfc" }, - { 0xff71, "\x30\xa2" }, - { 0xff72, "\x30\xa4" }, - { 0xff73, "\x30\xa6" }, - { 0xff74, "\x30\xa8" }, - { 0xff75, "\x30\xaa" }, - { 0xff76, "\x30\xab" }, - { 0xff77, "\x30\xad" }, - { 0xff78, "\x30\xaf" }, - { 0xff79, "\x30\xb1" }, - { 0xff7a, "\x30\xb3" }, - { 0xff7b, "\x30\xb5" }, - { 0xff7c, "\x30\xb7" }, - { 0xff7d, "\x30\xb9" }, - { 0xff7e, "\x30\xbb" }, - { 0xff7f, "\x30\xbd" }, - { 0xff80, "\x30\xbf" }, - { 0xff81, "\x30\xc1" }, - { 0xff82, "\x30\xc4" }, - { 0xff83, "\x30\xc6" }, - { 0xff84, "\x30\xc8" }, - { 0xff85, "\x30\xca" }, - { 0xff86, "\x30\xcb" }, - { 0xff87, "\x30\xcc" }, - { 0xff88, "\x30\xcd" }, - { 0xff89, "\x30\xce" }, - { 0xff8a, "\x30\xcf" }, - { 0xff8b, "\x30\xd2" }, - { 0xff8c, "\x30\xd5" }, - { 0xff8d, "\x30\xd8" }, - { 0xff8e, "\x30\xdb" }, - { 0xff8f, "\x30\xde" }, - { 0xff90, "\x30\xdf" }, - { 0xff91, "\x30\xe0" }, - { 0xff92, "\x30\xe1" }, - { 0xff93, "\x30\xe2" }, - { 0xff94, "\x30\xe4" }, - { 0xff95, "\x30\xe6" }, - { 0xff96, "\x30\xe8" }, - { 0xff97, "\x30\xe9" }, - { 0xff98, "\x30\xea" }, - { 0xff99, "\x30\xeb" }, - { 0xff9a, "\x30\xec" }, - { 0xff9b, "\x30\xed" }, - { 0xff9c, "\x30\xef" }, - { 0xff9d, "\x30\xf3" }, - { 0xff9e, "\x30\x99" }, - { 0xff9f, "\x30\x9a" }, - { 0xffa0, "\x31\x64" }, - { 0xffa1, "\x31\x31" }, - { 0xffa2, "\x31\x32" }, - { 0xffa3, "\x31\x33" }, - { 0xffa4, "\x31\x34" }, - { 0xffa5, "\x31\x35" }, - { 0xffa6, "\x31\x36" }, - { 0xffa7, "\x31\x37" }, - { 0xffa8, "\x31\x38" }, - { 0xffa9, "\x31\x39" }, - { 0xffaa, "\x31\x3a" }, - { 0xffab, "\x31\x3b" }, - { 0xffac, "\x31\x3c" }, - { 0xffad, "\x31\x3d" }, - { 0xffae, "\x31\x3e" }, - { 0xffaf, "\x31\x3f" }, - { 0xffb0, "\x31\x40" }, - { 0xffb1, "\x31\x41" }, - { 0xffb2, "\x31\x42" }, - { 0xffb3, "\x31\x43" }, - { 0xffb4, "\x31\x44" }, - { 0xffb5, "\x31\x45" }, - { 0xffb6, "\x31\x46" }, - { 0xffb7, "\x31\x47" }, - { 0xffb8, "\x31\x48" }, - { 0xffb9, "\x31\x49" }, - { 0xffba, "\x31\x4a" }, - { 0xffbb, "\x31\x4b" }, - { 0xffbc, "\x31\x4c" }, - { 0xffbd, "\x31\x4d" }, - { 0xffbe, "\x31\x4e" }, - { 0xffc2, "\x31\x4f" }, - { 0xffc3, "\x31\x50" }, - { 0xffc4, "\x31\x51" }, - { 0xffc5, "\x31\x52" }, - { 0xffc6, "\x31\x53" }, - { 0xffc7, "\x31\x54" }, - { 0xffca, "\x31\x55" }, - { 0xffcb, "\x31\x56" }, - { 0xffcc, "\x31\x57" }, - { 0xffcd, "\x31\x58" }, - { 0xffce, "\x31\x59" }, - { 0xffcf, "\x31\x5a" }, - { 0xffd2, "\x31\x5b" }, - { 0xffd3, "\x31\x5c" }, - { 0xffd4, "\x31\x5d" }, - { 0xffd5, "\x31\x5e" }, - { 0xffd6, "\x31\x5f" }, - { 0xffd7, "\x31\x60" }, - { 0xffda, "\x31\x61" }, - { 0xffdb, "\x31\x62" }, - { 0xffdc, "\x31\x63" }, - { 0xffe0, "\x00\xa2" }, - { 0xffe1, "\x00\xa3" }, - { 0xffe2, "\x00\xac" }, - { 0xffe3, "\x00\xaf" }, - { 0xffe4, "\x00\xa6" }, - { 0xffe5, "\x00\xa5" }, - { 0xffe6, "\x20\xa9" }, - { 0xffe8, "\x25\x02" }, - { 0xffe9, "\x21\x90" }, - { 0xffea, "\x21\x91" }, - { 0xffeb, "\x21\x92" }, - { 0xffec, "\x21\x93" }, - { 0xffed, "\x25\xa0" }, - { 0xffee, "\x25\xcb" } -}; - -#endif /* __JAVA_CHARDECOMP_H__ */ diff --git a/libjava/include/java-chartables.h b/libjava/include/java-chartables.h deleted file mode 100644 index d882c67..0000000 --- a/libjava/include/java-chartables.h +++ /dev/null @@ -1,1617 +0,0 @@ -/* java-chartables.h -- Character tables for java.lang.Character -*- c++ -*- - Copyright (C) 2002, 2006 Free Software Foundation, Inc. - *** This file is generated by scripts/unicode_to_chartables.pl *** - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -#ifndef __JAVA_CHARTABLES_H__ -#define __JAVA_CHARTABLES_H__ - -// These tables are automatically generated by scripts/unicode_to_chartables.pl. -// The Unicode data comes from www.unicode.org; this header is based on -// UnicodeData-4.0.0.txt. JDK 1.5 uses Unicode version 4.0.0. -// DO NOT EDIT the tables. Instead, fix the upstream scripts and run -// them again. - -// The data is stored in C style arrays of the appropriate CNI types, to -// guarantee that the data is constant and non-relocatable. The field -// <code>blocks</code> stores the offset of a block of 2<sup>SHIFT</sup> -// characters within <code>data</code>. The data field, in turn, stores -// information about each character in the low order bits, and an offset -// into the attribute tables <code>upper</code>, <code>lower</code>, -// <code>numValue</code>, and <code>direction</code>. Notice that the -// attribute tables are much smaller than 0xffff entries; as many characters -// in Unicode share common attributes. Finally, there is a listing for -// <code>title</code> exceptions (most characters just have the same title -// case as upper case). - -// This file should only be included by natCharacter.cc - -/** - * The array containing the numeric values that are too large to be stored as - * chars in NUM_VALUE. NUM_VALUE in this case will contain a negative integer - * N such that LARGENUMS[-N - 3] contains the correct numeric value. - */ -static const jint largenums[] = { - 40000, 50000, 60000, 70000, 80000, 90000, }; - -/** - * The character shift amount to look up the block offset. In other words, - * <code>(char) (blocks[p][off >> SHIFT[p]] + off)</code> is the index where - * <code>ch</code> is described in <code>data</code>, where <code>off</code> - * is ch & 0xffff and <code>p</code> is the plane the character belongs to. - */ -static const int shift[] = { - 4, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, }; - -/** - * The mapping of character blocks to their location in <code>data</code>. - * Each entry has been adjusted so that a modulo 16 sum with the desired - * character gives the actual index into <code>data</code>. - */ -static const jchar blocks0[] = { - 15, 23, 53, 7, 52, 52, 90, 65424, 65437, 65427, - 11, 65461, 11, 4, 28, 21, 23, 7, 65527, 173, - 269, 65479, 65463, 65403, 273, 273, 183, 257, 65500, 65354, - 65335, 65267, 65303, 65287, 65269, 65401, 220, 50, 321, 5, - 65511, 317, 304, 311, 355, 355, 274, 325, 358, 342, - 326, 310, 65409, 401, 262, 65156, 458, 64826, 442, 64843, - 426, 65140, 64823, 334, 435, 64699, 64683, 64716, 64700, 371, - 64695, 64679, 64680, 64647, 64631, 64615, 275, 64583, 64567, 64578, - 64535, 65036, 65020, 64723, 64708, 64701, 65034, 65019, 65012, 65237, - 65219, 64791, 64789, 138, 127, 181, 64945, 220, 64878, 249, - 203, 65507, 107, 249, 64783, 64767, 64751, 64735, 64719, 9, - 171, 105, 65531, 88, 64623, 64822, 65494, 64460, 64444, 64428, - 64527, 64511, 65392, 65529, 64348, 64332, 64316, 64300, 64284, 64268, - 64252, 64236, 64220, 64204, 64188, 64172, 64156, 64140, 64124, 64108, - 64092, 64076, 64060, 64044, 65249, 64259, 64243, 65267, 64724, 65291, - 65299, 63915, 64394, 63482, 64105, 64485, 64366, 63758, 65193, 65199, - 64377, 63354, 63977, 63687, 65020, 63328, 64386, 65087, 63204, 63872, - 63849, 63246, 64454, 63332, 64937, 64989, 64010, 63098, 63721, 64328, - 63117, 62956, 64913, 63171, 63428, 63323, 63407, 63323, 63803, 64222, - 64347, 64791, 63236, 63489, 63465, 64420, 64727, 63279, 64657, 63148, - 64331, 63361, 63337, 64631, 64369, 63898, 64529, 63020, 64203, 63233, - 63209, 64143, 64503, 63838, 64401, 62892, 64468, 62443, 63091, 63450, - 64391, 63538, 62780, 62759, 62994, 62979, 62963, 64143, 64157, 64041, - 62652, 62636, 62151, 63220, 63096, 64185, 64185, 63935, 62524, 62508, - 64137, 62218, 63176, 63172, 62666, 62659, 63643, 62845, 63847, 62669, - 62662, 62649, 62052, 62284, 62268, 62252, 62483, 62467, 62722, 63849, - 63671, 63833, 62140, 62124, 62108, 62092, 63783, 63767, 63761, 62275, - 62259, 63347, 62227, 62211, 62195, 62179, 62163, 63148, 62131, 62115, - 62099, 62083, 63075, 62051, 62035, 62019, 62003, 63473, 61963, 61955, - 61939, 61923, 61227, 61211, 61875, 61859, 61163, 61827, 61795, 61123, - 61107, 61755, 61731, 61731, 61699, 61027, 61683, 61667, 61643, 62635, - 62147, 62425, 61340, 61324, 61555, 61539, 61523, 61507, 61491, 62966, - 61458, 61443, 61427, 61411, 61395, 61379, 61363, 61347, 61331, 61315, - 61299, 61283, 61267, 61251, 61235, 61219, 61203, 61187, 61171, 61155, - 61139, 61123, 61107, 61091, 61075, 61059, 61043, 61027, 61011, 60995, - 60979, 60963, 60947, 60931, 60915, 60899, 60883, 60867, 60205, 62324, - 61814, 61782, 60787, 60771, 60755, 60739, 62073, 62215, 60677, 62199, - 60659, 62183, 60627, 62167, 60581, 62151, 60563, 60547, 60531, 62103, - 61004, 62098, 60246, 62097, 62097, 60198, 60403, 60387, 61402, 60355, - 60339, 61811, 60307, 60291, 61953, 60012, 59996, 59980, 59964, 59948, - 60179, 61161, 61746, 60531, 59888, 60099, 61080, 61558, 59804, 59788, - 59772, 59756, 59740, 59724, 61668, 61652, 59676, 59660, 59644, 59628, - 59612, 59596, 59580, 59564, 59548, 59532, 59516, 59500, 59484, 59468, - 59452, 59436, 59420, 59404, 59388, 59372, 59356, 59340, 59324, 59308, - 59292, 59276, 59260, 59244, 59228, 59212, 59196, 59180, 59164, 59148, - 59132, 59116, 59100, 59084, 59068, 59052, 59036, 59020, 59004, 58988, - 58972, 58956, 58940, 58924, 59088, 59072, 59060, 59056, 59040, 59024, - 61022, 58796, 58780, 58764, 58748, 58732, 58716, 58700, 58684, 58668, - 58135, 58119, 58103, 58087, 58071, 58055, 58039, 58023, 58007, 58200, - 57975, 57959, 57943, 57927, 57911, 59112, 60622, 60622, 60590, 60574, - 60574, 60574, 60526, 60558, 60558, 60542, 60526, 60526, 58499, 60510, - 60510, 57701, 60494, 60494, 57467, 60493, 57427, 57334, 59163, 60445, - 60445, 57996, 60429, 60427, 57948, 60411, 58887, 57900, 58047, 59809, - 60046, 59529, 60439, 58731, 60423, 60423, 60423, 59922, 60407, 59668, - 59654, 59631, 59620, 59616, 59751, 60187, 60182, 59602, 60111, 60058, - 59577, 60060, 59602, 59637, 60006, 60003, 59952, 59516, 59950, 59932, - 60070, 59316, 60048, 60043, 60033, 60017, 60001, 57613, 59204, 57620, - 59188, 57600, 59140, 59945, 57148, 57132, 59076, 59060, 59859, 57068, - 59823, 57036, 59825, 59805, 59785, 59785, 59681, 59818, 59808, 59808, - 59798, 58754, 58820, 58804, 58788, 58772, 58756, 58740, 58724, 58708, - 58692, 58676, 58660, 59374, 58626, 58612, 58596, 58588, 58564, 57001, - 58532, 58516, 58500, 58484, 58469, 59260, 58436, 59240, 59224, 56428, - 56412, 56396, 56380, 56364, 56728, 58292, 56729, 58260, 56650, 59204, - 56673, 56667, 56657, 58964, 58148, 58939, 56156, 58635, 59076, 58084, - 58052, 58036, 58020, 58004, 57988, 57972, 57956, 57940, 57924, 57908, - 57892, 57876, 57860, 57844, 57828, 57812, 57812, 57796, 57780, 57764, - 57748, 57732, 57716, 57700, 57710, 57702, 58220, 57822, 57775, 58235, - 57679, 57584, 57562, 58161, 57661, 57673, 57492, 57671, 58045, 57561, - 57996, 57980, 57473, 57948, 57932, 57405, 57879, 57420, 58092, 55308, - 55292, 55276, 55260, 55244, 55228, 55212, 55196, 55180, 55164, 55148, - 55132, 55116, 55100, 55084, 55068, 55052, 55036, 55020, 55004, 54988, - 54972, 54956, 54940, 54924, 54908, 54892, 54876, 54860, 54844, 54828, - 54812, 54796, 54780, 54764, 54748, 54732, 54716, 54700, 54684, 54668, - 54652, 54636, 54620, 54604, 54588, 54572, 54556, 54540, 54524, 54508, - 54492, 54476, 54460, 54444, 56388, 54823, 56356, 56340, 56324, 56308, - 56292, 57094, 56260, 56244, 56228, 56212, 56196, 56180, 56164, 56148, - 56132, 56116, 56100, 56084, 56068, 56868, 54076, 56830, 57012, 57010, - 54323, 56918, 54226, 54211, 54195, 54179, 54163, 55228, 54114, 54115, - 54099, 54083, 54067, 55067, 55046, 54019, 55001, 53986, 53971, 53955, - 53939, 53923, 53891, 53991, 53875, 55347, 53596, 53580, 53564, 53795, - 56257, 56244, 56368, 56209, 56320, 56450, 56161, 56149, 56272, 56113, - 56097, 56100, 56165, 56049, 56033, 56133, 56001, 55985, 55969, 55953, - 55937, 55921, 55905, 55994, 55873, 55857, 55841, 55825, 55809, 55795, - 55777, 55762, 53267, 53251, 53235, 53219, 53203, 53187, 53171, 53155, - 53139, 53123, 53107, 53091, 53075, 53059, 53043, 53027, 53011, 52995, - 52979, 52963, 52947, 52931, 52915, 52899, 52883, 52867, 52851, 52835, - 52819, 52803, 52787, 52771, 52755, 52739, 52723, 52707, 52691, 52675, - 52659, 52643, 52627, 52611, 52595, 52579, 52563, 52547, 52531, 52515, - 52499, 52483, 52467, 52451, 52435, 52419, 52403, 52387, 52371, 52355, - 52339, 52323, 52307, 52291, 52275, 52259, 52243, 52227, 52211, 52195, - 52179, 52163, 52147, 52131, 52115, 52099, 52083, 52067, 52051, 52035, - 52019, 52003, 51987, 51971, 51955, 51939, 51923, 51907, 51891, 51875, - 51859, 51843, 51827, 51811, 51795, 51779, 51763, 51747, 51731, 51715, - 51699, 51683, 51667, 51651, 51635, 51619, 51603, 51587, 51571, 51555, - 51539, 51523, 51507, 51491, 51475, 51459, 51443, 51427, 51411, 51395, - 51379, 51363, 51347, 51331, 51315, 51299, 51283, 51267, 51251, 51235, - 51219, 51203, 51187, 51171, 51155, 51139, 51123, 51107, 51091, 51075, - 51059, 51043, 51027, 51011, 50995, 50979, 50963, 50947, 50931, 50915, - 50899, 50883, 50867, 50851, 50835, 50819, 50803, 50787, 50771, 50755, - 50739, 50723, 50707, 50691, 50675, 50659, 50643, 50627, 50611, 50595, - 50579, 50563, 50547, 50531, 50515, 50499, 50483, 50467, 50451, 50435, - 50419, 50403, 50387, 50371, 50355, 50339, 50323, 50307, 50291, 50275, - 50259, 50243, 50227, 50211, 50195, 50179, 50163, 50147, 50131, 50115, - 50099, 50083, 50067, 50051, 50035, 50019, 50003, 49987, 49971, 49955, - 49939, 49923, 49907, 49891, 49875, 49859, 49843, 49827, 49811, 49795, - 49779, 49763, 49747, 49731, 49715, 49699, 49683, 49667, 49651, 49635, - 49619, 49603, 49587, 49571, 49555, 49539, 49523, 49507, 49491, 49475, - 49459, 49443, 49427, 49411, 49395, 49379, 49363, 49347, 49331, 49315, - 49299, 49283, 49267, 49251, 49235, 49219, 49203, 49187, 49171, 49155, - 49139, 49123, 49107, 49091, 49075, 49059, 49043, 49027, 49011, 48995, - 48979, 48963, 48947, 48931, 48915, 48899, 48883, 48867, 48851, 48835, - 48819, 48803, 48787, 48771, 48755, 48739, 48723, 48707, 48691, 48675, - 48659, 48643, 48627, 48611, 48595, 48579, 48563, 48547, 48531, 48515, - 48499, 48483, 48467, 48451, 48435, 48419, 48403, 48387, 48371, 48355, - 48339, 48323, 48307, 48291, 48275, 48259, 48243, 48227, 48211, 48195, - 48179, 48163, 48147, 48131, 48115, 48099, 48083, 48067, 48051, 48035, - 48019, 48003, 47987, 47971, 47955, 47939, 47923, 47907, 47891, 47875, - 47859, 47843, 47827, 47811, 47795, 47779, 47763, 47747, 47731, 47715, - 47699, 47683, 47667, 47651, 47635, 47619, 47603, 47587, 47571, 47555, - 47539, 47523, 47507, 47491, 47475, 47459, 47443, 47427, 47411, 47395, - 47379, 47363, 47347, 47331, 47315, 47299, 47283, 47267, 47251, 47235, - 47219, 47203, 47187, 47171, 47155, 47139, 47123, 47107, 47091, 47075, - 47059, 47043, 47027, 47011, 46995, 46979, 46963, 46947, 46931, 46915, - 46899, 46883, 46867, 46851, 46835, 46819, 46803, 46787, 46771, 46755, - 46739, 46723, 46707, 48181, 48388, 48372, 48356, 48340, 46611, 46595, - 46579, 46563, 46547, 46531, 46515, 46499, 46483, 46467, 46451, 46435, - 46419, 46403, 46387, 46371, 46355, 46339, 46323, 46307, 46291, 46275, - 46259, 46243, 46227, 46211, 46195, 46179, 46163, 46147, 46131, 46115, - 46099, 46083, 46067, 46051, 46035, 46019, 46003, 45987, 45971, 45955, - 45939, 45923, 45907, 45891, 45875, 45859, 45843, 45827, 45811, 45795, - 45779, 45763, 45747, 45731, 45715, 45699, 45683, 45667, 45651, 45635, - 45619, 45603, 45587, 45571, 45555, 45539, 45523, 45507, 45491, 45475, - 45459, 45443, 45427, 45411, 45395, 45379, 45363, 45347, 45331, 45315, - 45299, 45283, 45267, 45251, 45235, 45219, 45203, 45187, 45171, 45155, - 45139, 45123, 45107, 45091, 45075, 45059, 45043, 45027, 45011, 44995, - 44979, 44963, 44947, 44931, 44915, 44899, 44883, 44867, 44851, 44835, - 44819, 44803, 44787, 44771, 44755, 44739, 44723, 44707, 44691, 44675, - 44659, 44643, 44627, 44611, 44595, 44579, 44563, 44547, 44531, 44515, - 44499, 44483, 44467, 44451, 44435, 44419, 44403, 44387, 44371, 44355, - 44339, 44323, 44307, 44291, 44275, 44259, 44243, 44227, 44211, 44195, - 44179, 44163, 44147, 44131, 44115, 44099, 44083, 44067, 44051, 44035, - 44019, 44003, 43987, 43971, 43955, 43939, 43923, 43907, 43891, 43875, - 43859, 43843, 43827, 43811, 43795, 43779, 43763, 43747, 43731, 43715, - 43699, 43683, 43667, 43651, 43635, 43619, 43603, 43587, 43571, 43555, - 43539, 43523, 43507, 43491, 43475, 43459, 43443, 43427, 43411, 43395, - 43379, 43363, 43347, 43331, 43315, 43299, 43283, 43267, 43251, 43235, - 43219, 43203, 43187, 43171, 43155, 43139, 43123, 43107, 43091, 43075, - 43059, 43043, 43027, 43011, 42995, 42979, 42963, 42947, 42931, 42915, - 42899, 42883, 42867, 42851, 42835, 42819, 42803, 42787, 42771, 42755, - 42739, 42723, 42707, 42691, 42675, 42659, 42643, 42627, 42611, 42595, - 42579, 42563, 42547, 42531, 42515, 42499, 42483, 42467, 42451, 42435, - 42419, 42403, 42387, 42371, 42355, 42339, 42323, 42307, 42291, 42275, - 42259, 42243, 42227, 42211, 42195, 42179, 42163, 42147, 42131, 42115, - 42099, 42083, 42067, 42051, 42035, 42019, 42003, 41987, 41971, 41955, - 41939, 41923, 41907, 41891, 41875, 41859, 41843, 41827, 41811, 41795, - 41779, 41763, 41747, 41731, 41715, 41699, 41683, 41667, 41651, 41635, - 41619, 41603, 41587, 41571, 41555, 41539, 41523, 41507, 41491, 41475, - 41459, 41443, 41427, 41411, 41395, 41379, 41363, 41347, 41331, 41315, - 41299, 41283, 41267, 41251, 41235, 41219, 41203, 41187, 41171, 41155, - 41139, 41123, 41107, 41091, 41075, 41059, 41043, 41027, 41011, 40995, - 40979, 40963, 40947, 40931, 40915, 40899, 40883, 40867, 40851, 40835, - 40819, 40803, 40787, 40771, 40755, 40739, 40723, 40707, 40691, 40675, - 40659, 40643, 40627, 40611, 40595, 40579, 40563, 40547, 40531, 40515, - 40499, 40483, 40467, 40451, 40435, 40419, 40403, 40387, 40371, 40355, - 40339, 40323, 40307, 40291, 40275, 40259, 40243, 40227, 40211, 40195, - 40179, 40163, 40147, 40131, 40115, 40099, 40083, 40067, 40051, 40035, - 40019, 40003, 39987, 39971, 39955, 39939, 39923, 39907, 39891, 39875, - 39859, 39843, 39827, 39811, 39795, 39779, 39763, 39747, 39731, 39715, - 39699, 39683, 39667, 39651, 39635, 39619, 39603, 39587, 39571, 39555, - 39539, 39523, 39507, 39491, 39475, 39459, 39443, 39427, 39411, 39395, - 39379, 39363, 39347, 39331, 39315, 39299, 39283, 39267, 39251, 39235, - 39219, 39203, 39187, 39171, 39155, 39139, 39123, 39107, 39091, 39075, - 39059, 39043, 39027, 39011, 38995, 38979, 38963, 38947, 38931, 38915, - 38899, 38883, 38867, 38851, 38835, 38819, 38803, 38787, 38771, 38755, - 38739, 38723, 38707, 38691, 38675, 38659, 38643, 38627, 38611, 38595, - 38579, 38563, 38547, 38531, 38515, 38499, 38483, 38467, 38451, 38435, - 38419, 38403, 38387, 38371, 38355, 38339, 38323, 38307, 38291, 38275, - 38259, 38243, 38227, 38211, 38195, 38179, 38163, 38147, 38131, 38115, - 38099, 38083, 38067, 38051, 38035, 38019, 38003, 37987, 37971, 37955, - 37939, 37923, 37907, 37891, 37875, 37859, 37843, 37827, 37811, 37795, - 37779, 37763, 37747, 37731, 37715, 37699, 37683, 37667, 37651, 37635, - 37619, 37603, 37587, 37571, 37555, 37539, 37523, 37507, 37491, 37475, - 37459, 37443, 37427, 37411, 37395, 37379, 37363, 37347, 37331, 37315, - 37299, 37283, 37267, 37251, 37235, 37219, 37203, 37187, 37171, 37155, - 37139, 37123, 37107, 37091, 37075, 37059, 37043, 37027, 37011, 36995, - 36979, 36963, 36947, 36931, 36915, 36899, 36883, 36867, 36851, 36835, - 36819, 36803, 36787, 36771, 36755, 36739, 36723, 36707, 36691, 36675, - 36659, 36643, 36627, 36611, 36595, 36579, 36563, 36547, 36531, 36515, - 36499, 36483, 36467, 36451, 36435, 36419, 36403, 36387, 36371, 36355, - 36339, 36323, 36307, 36291, 36275, 36259, 36243, 36227, 36211, 36195, - 36179, 36163, 36147, 36131, 36115, 36099, 36083, 36067, 36051, 36035, - 36019, 36003, 35987, 35971, 35955, 35939, 35923, 35907, 35891, 35875, - 35859, 35843, 35827, 35811, 35795, 35779, 35763, 35747, 35731, 35715, - 35699, 35683, 35667, 35651, 35635, 35619, 35603, 35587, 35571, 35555, - 35539, 35523, 35507, 35491, 35475, 35459, 35443, 35427, 35411, 35395, - 35379, 35363, 35347, 35331, 35315, 35299, 35283, 35267, 35251, 35235, - 35219, 35203, 35187, 35171, 35155, 35139, 35123, 35107, 35091, 35075, - 35059, 35043, 35027, 35011, 34995, 34979, 34963, 34947, 34931, 34915, - 34899, 34883, 34867, 34851, 34835, 34819, 34803, 34787, 34771, 34755, - 34739, 34723, 34707, 34691, 34675, 34659, 34643, 34627, 34611, 34595, - 34579, 34563, 34547, 34531, 34515, 34499, 34483, 34467, 34451, 34435, - 34419, 34403, 34387, 34371, 34355, 34339, 34323, 34307, 34291, 34275, - 34259, 34243, 34227, 34211, 34195, 34179, 34163, 34147, 34131, 34115, - 34099, 34083, 34067, 34051, 34035, 34019, 34003, 33987, 33971, 33955, - 33939, 33923, 33907, 33891, 33875, 33859, 33843, 33827, 33811, 33795, - 33779, 33763, 33747, 33731, 33715, 33699, 33683, 33667, 33651, 33635, - 33619, 33603, 33587, 33571, 33555, 33539, 33523, 33507, 33491, 33475, - 33459, 33443, 33427, 33411, 33395, 33379, 33363, 33347, 33331, 33315, - 33299, 33283, 33267, 33251, 33235, 33219, 33203, 33187, 33171, 33155, - 33139, 33123, 33107, 33091, 33075, 33059, 33043, 33027, 33011, 32995, - 32979, 32963, 32947, 32931, 32915, 32899, 32883, 32867, 32851, 32835, - 32819, 32803, 32787, 32771, 32755, 32739, 32723, 32707, 32691, 32675, - 32659, 32643, 32627, 32611, 32595, 32579, 32563, 32547, 32531, 32515, - 32499, 32483, 32467, 32451, 32435, 32419, 32403, 32387, 32371, 32355, - 32339, 32323, 32307, 32291, 32275, 32259, 32243, 32227, 32211, 32195, - 32179, 32163, 32147, 32131, 32115, 32099, 32083, 32067, 32051, 32035, - 32019, 32003, 31987, 31971, 31955, 31939, 31923, 31907, 31891, 31875, - 31859, 31843, 31827, 31811, 31795, 31779, 31763, 31747, 31731, 31715, - 31699, 31683, 31667, 31651, 31635, 31619, 31603, 31587, 31571, 31555, - 31539, 31523, 31507, 31491, 31475, 31459, 31443, 31427, 31411, 31395, - 31379, 31363, 31347, 31331, 31315, 31299, 31283, 31267, 31251, 31235, - 31219, 31203, 31187, 31171, 31155, 31139, 31123, 31107, 31091, 31075, - 31059, 31043, 31027, 31011, 30995, 30979, 30963, 30947, 30931, 30915, - 30899, 30883, 30867, 30851, 30835, 30819, 30803, 30787, 30771, 30755, - 30739, 30723, 30707, 30691, 30675, 30659, 30643, 30627, 30611, 30595, - 30579, 30563, 30547, 30531, 30515, 30499, 30483, 30467, 30451, 30435, - 30419, 30403, 30387, 30371, 30355, 30339, 30323, 30307, 30291, 30275, - 30259, 30243, 30227, 30211, 30195, 30179, 30163, 30147, 30131, 30115, - 30099, 30083, 30067, 30051, 30035, 30019, 30003, 29987, 29971, 29955, - 29939, 29923, 29907, 29891, 29875, 29859, 29843, 29827, 29811, 29795, - 29779, 29763, 29747, 29731, 29715, 29699, 29683, 29667, 29651, 29635, - 29619, 29603, 29587, 29571, 29555, 29539, 29523, 29507, 29491, 29475, - 29459, 29443, 29427, 29411, 29395, 29379, 29363, 29347, 29331, 29315, - 29299, 29283, 29267, 29251, 29235, 29219, 29203, 29187, 29171, 29155, - 29139, 29123, 29107, 29091, 29075, 29059, 29043, 29027, 29011, 28995, - 28979, 28963, 28947, 28931, 28915, 28899, 28883, 28867, 28851, 28835, - 28819, 28803, 28787, 28771, 28755, 28739, 28723, 28707, 28691, 28675, - 28659, 28643, 28627, 28611, 28595, 28579, 28563, 28547, 28531, 28515, - 28499, 28483, 28467, 28451, 28435, 28419, 28403, 28387, 28371, 28355, - 28339, 28323, 28307, 28291, 28275, 28259, 28243, 28227, 28211, 28195, - 28179, 28163, 28147, 28131, 28115, 28099, 28083, 28067, 28051, 28035, - 28019, 28003, 27987, 27971, 27955, 27939, 27923, 27907, 27891, 27875, - 27859, 27843, 27827, 27811, 27795, 27779, 27763, 27747, 27731, 27715, - 27699, 27683, 27667, 27651, 27635, 27619, 27603, 27587, 27571, 27555, - 27539, 27523, 27507, 27491, 27475, 27459, 27443, 27427, 27411, 27395, - 27379, 27363, 27347, 27331, 27315, 27299, 27283, 27267, 27251, 27235, - 27219, 27203, 27187, 27171, 27155, 27139, 27123, 27107, 27091, 27075, - 27059, 27043, 27027, 27011, 26995, 26979, 26963, 26947, 26931, 26915, - 26899, 26883, 26867, 26851, 26835, 26819, 26803, 26787, 26771, 26755, - 26739, 26723, 26707, 26691, 26675, 26659, 26643, 26627, 26611, 26595, - 26579, 26563, 26547, 26531, 26515, 26499, 26483, 26467, 26451, 26435, - 26419, 26403, 26387, 26371, 26355, 26339, 26323, 26307, 26291, 26275, - 26259, 26243, 26227, 26211, 26195, 26179, 26163, 26147, 26131, 26115, - 26099, 26083, 26067, 26051, 26035, 26019, 26003, 25987, 25971, 25955, - 25939, 25923, 25907, 25891, 25875, 25859, 25843, 25827, 25811, 25795, - 25779, 25763, 25747, 25731, 27205, 25452, 25436, 25420, 25404, 25388, - 25619, 25603, 25587, 25571, 25555, 25539, 25523, 25507, 25491, 25475, - 25459, 25443, 25427, 25411, 25395, 25379, 25363, 25347, 25331, 25315, - 25299, 25283, 25267, 25251, 25235, 25219, 25203, 25187, 25171, 25155, - 25139, 25123, 25107, 25091, 25075, 25059, 25043, 25027, 25011, 24995, - 24979, 24963, 24947, 24931, 24915, 24899, 24883, 24867, 24851, 24835, - 24819, 24803, 24787, 24771, 24755, 24739, 24723, 24707, 24691, 24675, - 24659, 24643, 24627, 24611, 24595, 24579, 24563, 24547, 24531, 24515, - 24499, 24483, 25465, 26164, 26148, 26132, 26931, 24140, 24124, 24108, - 24092, 24076, 24060, 24044, 24028, 24012, 23996, 23980, 23964, 23948, - 23932, 23916, 23900, 23884, 23868, 23852, 23836, 23820, 23804, 23788, - 23772, 23756, 23740, 23724, 23708, 23692, 23676, 23660, 23644, 23628, - 23612, 23596, 23580, 23564, 23548, 23532, 23516, 23500, 23484, 23468, - 23452, 23436, 23420, 23404, 23388, 23372, 23356, 23340, 23324, 23308, - 23292, 23276, 23260, 23244, 23228, 23212, 23196, 23180, 23164, 23148, - 23132, 23116, 23100, 23084, 23068, 23052, 23036, 23020, 23004, 22988, - 22972, 22956, 22940, 22924, 22908, 22892, 22876, 22860, 22844, 22828, - 22812, 22796, 22780, 22764, 22748, 22732, 22716, 22700, 22684, 22668, - 22652, 22636, 22620, 22604, 22588, 22572, 22556, 22540, 22524, 22508, - 22492, 22476, 22460, 22444, 22428, 22412, 22396, 22380, 22364, 22348, - 22332, 22316, 22547, 22531, 22515, 22499, 22483, 22467, 22451, 22435, - 22419, 22403, 22387, 22371, 22355, 22339, 22323, 22307, 22291, 22275, - 22259, 22243, 22227, 22211, 22195, 22179, 22163, 22147, 22131, 22115, - 22099, 22083, 22067, 22051, 22035, 22019, 22003, 21987, 21971, 21955, - 21939, 21923, 21907, 21891, 21875, 21859, 21843, 21827, 21811, 21795, - 21779, 21763, 21747, 21731, 21715, 21699, 21683, 21667, 21651, 21635, - 21619, 21603, 21587, 21571, 21555, 21539, 21523, 21507, 21491, 21475, - 21459, 21443, 21427, 21411, 21395, 21379, 21363, 21347, 21331, 21315, - 21299, 21283, 21267, 21251, 21235, 21219, 21203, 21187, 21171, 21155, - 21139, 21123, 21107, 21091, 21075, 21059, 21043, 21027, 21011, 20995, - 20979, 20963, 20947, 20931, 20915, 20899, 20883, 20867, 20851, 20835, - 20819, 20803, 20787, 20771, 20755, 20739, 20723, 20707, 20691, 20675, - 20659, 20643, 20627, 20611, 20595, 20579, 20563, 20547, 20531, 20515, - 20499, 20483, 20467, 20451, 20435, 20419, 20403, 20387, 20371, 20355, - 20339, 20323, 20307, 20291, 20275, 20259, 20243, 20227, 20211, 20195, - 20179, 20163, 20147, 20131, 20115, 20099, 20083, 20067, 20051, 20035, - 20019, 20003, 19987, 19971, 19955, 19939, 19923, 19907, 19891, 19875, - 19859, 19843, 19827, 19811, 19795, 19779, 19763, 19747, 19731, 19715, - 19699, 19683, 19667, 19651, 19635, 19619, 19603, 19587, 19571, 19555, - 19539, 19523, 19507, 19491, 19475, 19459, 19443, 19427, 19411, 19395, - 19379, 19363, 19347, 19331, 19315, 19299, 19283, 19267, 19251, 19235, - 19219, 19203, 19187, 19171, 19155, 19139, 19123, 19107, 19091, 19075, - 19059, 19043, 19027, 19011, 18995, 18979, 18963, 18947, 18931, 18915, - 18899, 18883, 18867, 18851, 18835, 18819, 18803, 18787, 18771, 18755, - 18739, 18723, 18707, 18691, 18675, 18659, 18643, 18627, 18611, 18595, - 18579, 18563, 18547, 18531, 18515, 18499, 18483, 18467, 18451, 18435, - 18419, 18403, 18387, 18371, 18355, 18339, 18323, 18307, 18291, 18275, - 18259, 18243, 18227, 18211, 18195, 18179, 18163, 18147, 18131, 18115, - 18099, 18083, 18067, 18051, 18035, 18019, 18003, 17987, 17971, 17955, - 17939, 17923, 17907, 17891, 17875, 17859, 17843, 17827, 17811, 17795, - 17779, 17763, 17747, 17731, 17715, 17699, 17683, 17667, 17651, 17635, - 17619, 17603, 17587, 17571, 17555, 17539, 17523, 17507, 17491, 17475, - 17459, 17443, 17427, 17411, 17395, 17379, 17363, 17347, 17331, 17315, - 17299, 17283, 17267, 17251, 17235, 17219, 17203, 17187, 17171, 17155, - 17139, 17123, 17107, 17091, 17075, 17059, 17043, 17027, 17011, 16995, - 16979, 16963, 16947, 16931, 16915, 16899, 16883, 16867, 16851, 16835, - 16819, 16803, 16787, 16771, 16755, 16739, 16723, 16707, 16691, 16675, - 16659, 16643, 16627, 16611, 16595, 16579, 16563, 16547, 16531, 16515, - 16499, 16483, 16467, 16451, 16435, 16419, 16403, 16387, 16371, 16355, - 16339, 16323, 16307, 16291, 16275, 16259, 16243, 16227, 16211, 16195, - 16179, 16163, 16147, 16131, 16115, 16099, 16083, 16067, 16051, 16035, - 16019, 16003, 15987, 15971, 15955, 15939, 15923, 15907, 15891, 15875, - 15859, 15843, 15827, 15811, 15795, 15779, 15763, 15747, 15731, 15715, - 15699, 15683, 15667, 15651, 15635, 15619, 15603, 15587, 15571, 15555, - 15539, 15523, 15507, 15491, 15475, 15459, 15443, 15427, 15411, 15395, - 15379, 15363, 15347, 15331, 15315, 15299, 15283, 15267, 15251, 15235, - 15219, 15203, 15187, 15171, 15155, 15139, 15123, 15107, 15091, 15075, - 15059, 15043, 15027, 15011, 14995, 14979, 14963, 14947, 14931, 14915, - 14899, 14883, 14867, 14851, 14835, 14819, 14803, 14787, 14771, 14755, - 14739, 14723, 14707, 14691, 14675, 14659, 14643, 14627, 14611, 14595, - 14579, 14563, 14547, 14531, 14515, 14499, 14483, 14467, 14451, 14435, - 14419, 14403, 14387, 14371, 14355, 14339, 14323, 14307, 14291, 14275, - 14259, 14243, 14227, 14211, 14195, 14179, 14163, 14147, 14131, 14115, - 14099, 14083, 14067, 14051, 14035, 14019, 14003, 13987, 13971, 13955, - 13939, 13923, 13907, 13891, 13875, 13859, 13843, 13827, 13811, 13795, - 13779, 13763, 13747, 13731, 13715, 13699, 13683, 13667, 13651, 13635, - 13619, 13603, 13587, 13571, 13555, 13539, 13523, 13507, 13491, 13475, - 13459, 13443, 13427, 13411, 13395, 13379, 13363, 13347, 13331, 13315, - 13299, 13283, 13267, 13251, 13235, 13219, 13203, 13187, 13171, 13155, - 13139, 13123, 13107, 13091, 13075, 13059, 13043, 13027, 13011, 12995, - 12979, 12963, 12947, 12931, 12915, 12899, 12883, 12867, 12851, 12835, - 12819, 12803, 12787, 12771, 12755, 12739, 12723, 12707, 12691, 12675, - 12659, 12643, 12627, 12611, 12595, 12579, 12563, 12547, 12531, 12515, - 12499, 12483, 12467, 12451, 12435, 12419, 12403, 12387, 12371, 12355, - 12339, 12323, 12307, 12291, 12275, 12259, 12243, 12227, 12211, 12195, - 12179, 12163, 12147, 12131, 12115, 12099, 12083, 12067, 12051, 12035, - 12019, 12003, 11987, 11971, 11955, 11939, 11923, 11907, 11891, 11875, - 11859, 11843, 11827, 11811, 11795, 11779, 11763, 11747, 11731, 11715, - 11699, 11683, 11667, 11651, 11635, 11619, 11603, 11587, 11571, 11555, - 11539, 11523, 11507, 11491, 11475, 11459, 11443, 11427, 11411, 11395, - 12871, 11116, 11100, 11084, 11068, 11052, 14050, 14034, 14018, 14002, - 13986, 13970, 13954, 13938, 13922, 13906, 13890, 13874, 13858, 13842, - 13826, 13810, 13794, 13778, 13762, 13746, 13730, 13714, 13698, 13682, - 13666, 13650, 13634, 13618, 13602, 13586, 13570, 13554, 13538, 13522, - 13506, 13490, 13474, 13458, 13442, 13426, 13410, 13394, 13378, 13362, - 13346, 13330, 13314, 13298, 13282, 13266, 13250, 13234, 13218, 13202, - 13186, 13170, 13154, 13138, 13122, 13106, 13090, 13074, 13058, 13042, - 13026, 13010, 12994, 12978, 12962, 12946, 12930, 12914, 12898, 12882, - 12866, 12850, 12834, 12818, 12802, 12786, 12770, 12754, 12738, 12722, - 12706, 12690, 12674, 12658, 12642, 12626, 12610, 12594, 12578, 12562, - 12546, 12530, 12514, 12498, 12482, 12466, 12450, 12434, 12418, 12402, - 12386, 12370, 12354, 12338, 12322, 12306, 12290, 12274, 12258, 12242, - 12226, 12210, 12194, 12178, 12162, 12146, 12130, 12114, 12098, 12082, - 12066, 12050, 12034, 12018, 12018, 12002, 11986, 11970, 11954, 11938, - 11922, 11906, 11890, 11874, 11858, 11842, 11826, 11810, 11794, 11778, - 11762, 11746, 11730, 11714, 11698, 11682, 11666, 11650, 11634, 11618, - 11602, 11586, 11570, 11554, 11538, 11522, 11506, 11490, 11474, 11458, - 11442, 11426, 11410, 11394, 11378, 11362, 11346, 11330, 11314, 11298, - 11282, 11266, 11250, 11234, 11218, 11202, 11186, 11170, 11154, 11138, - 11122, 11106, 11090, 11074, 11058, 11042, 11026, 11010, 10994, 10978, - 10962, 10946, 10930, 10914, 10898, 10882, 10866, 10850, 10834, 10818, - 10802, 10786, 10770, 10754, 10738, 10722, 10706, 10690, 10674, 10658, - 10642, 10626, 10610, 10594, 10578, 10562, 10546, 10530, 10514, 10498, - 10482, 10466, 10450, 10434, 10418, 10402, 10386, 10370, 10354, 10338, - 10322, 10306, 10290, 10274, 10258, 10242, 10226, 10210, 10194, 10178, - 10162, 10146, 10130, 10114, 10098, 10082, 10066, 10050, 10034, 10018, - 10002, 9986, 9970, 9954, 9938, 9922, 9906, 9890, 9874, 9858, - 9842, 9826, 9810, 9794, 9778, 9762, 9746, 9730, 9714, 9698, - 9682, 9666, 9650, 9634, 9618, 9602, 9586, 9570, 9554, 9538, - 9522, 9506, 9490, 9474, 9458, 9442, 9426, 9410, 9394, 9378, - 9362, 9346, 9330, 9314, 9298, 9282, 9266, 9250, 9234, 9218, - 9202, 9186, 9170, 9154, 9138, 9122, 9106, 9090, 9074, 9058, - 9042, 9026, 9010, 8994, 8978, 8962, 8946, 8930, 8914, 8898, - 8882, 8866, 8850, 8834, 8818, 8802, 8786, 8770, 8754, 8738, - 8722, 8706, 8690, 8674, 8658, 8642, 8626, 8610, 8594, 8578, - 8562, 8546, 8530, 8514, 8498, 8482, 8466, 8450, 8434, 8418, - 8402, 8386, 8370, 8354, 8338, 8322, 8306, 8290, 8274, 8258, - 8242, 8226, 8210, 8194, 8178, 8162, 8146, 8130, 8114, 8098, - 8082, 8066, 8050, 8034, 8018, 8002, 7986, 7970, 7954, 7938, - 7922, 7906, 7890, 7874, 7858, 7842, 7826, 7810, 7794, 7778, - 7762, 7746, 7730, 7714, 7698, 7682, 7666, 7650, 7634, 7618, - 7602, 7586, 7570, 7554, 7538, 7522, 7506, 7490, 7474, 7458, - 7442, 7426, 7410, 7394, 7378, 7362, 7346, 7330, 7314, 7298, - 7282, 7266, 7250, 7234, 7218, 7202, 7186, 7170, 7154, 7138, - 7122, 7106, 7090, 7074, 7058, 7042, 7026, 7010, 6994, 6978, - 6962, 6946, 6930, 6914, 6898, 6882, 6866, 6850, 6834, 6818, - 6802, 6786, 6770, 6754, 6738, 6722, 6706, 6690, 6674, 6658, - 6642, 6626, 6610, 6594, 6578, 6562, 6546, 6530, 6514, 6498, - 6482, 6466, 6450, 6434, 6418, 6402, 6386, 6370, 6354, 6338, - 6322, 6306, 6290, 6274, 6258, 6242, 6226, 6210, 6194, 6178, - 6162, 6146, 6130, 6114, 6098, 6082, 6066, 6050, 6034, 6018, - 6002, 5986, 5970, 5954, 5938, 5922, 5906, 5890, 5874, 5858, - 5842, 5826, 5810, 5794, 5778, 5762, 5746, 5730, 5714, 5698, - 5682, 5666, 5650, 5634, 2835, 2819, 2803, 2787, 2771, 2755, - 2739, 2723, 2707, 2691, 2675, 2659, 2643, 2627, 2611, 2595, - 2579, 2563, 3544, 2531, 2515, 2499, 3483, 2220, 2204, 2188, - 2172, 2156, 2140, 2124, 2108, 2092, 5122, 2869, 5106, 5100, - 2836, 2111, 2095, 2079, 2063, 2047, 2031, 2946, 1884, 1980, - 1967, 1951, 1935, 1919, 1903, 1887, 1871, 1855, 1839, 1823, - 1807, 1791, 1775, 1759, 1743, 1727, 1711, 1695, 1679, 1663, - 1647, 1633, 1500, 1599, 1583, 1567, 1551, 1533, 1519, 1503, - 2412, 1356, 1340, 2473, 1638, 1292, 2072, 4348, 4344, 3614, - 4328, 2227, 1295, 1279, 1263, 1247, 1231, 1215, 1199, 2172, - 1941, 295, 340, 340, 378, 4104, 2137, 2221, 1171, 1157, - 1139, 1107, 451, 907, 3976, 819, -}; - -static const jchar blocks1[] = { - 0, 65535, 63, 4, 4, 253, 189, 125, 61, 65533, - 65469, 65405, 65405, 65266, 65325, 65149, 64639, 64623, 65133, 64893, - 64829, 64765, 64701, 64637, 64573, 64509, 64445, 64381, 64317, 64253, - 64189, 64125, 64301, 63997, 63933, 63869, 63805, 63741, 63677, 63613, - 63549, 63485, 63421, 63357, 63293, 63229, 63165, 63101, 63037, 62973, - 62909, 62845, 62781, 62717, 62653, 62589, 62525, 62461, 62397, 62333, - 62269, 62205, 62141, 62077, 62013, 61949, 61885, 61821, 61757, 61693, - 61629, 61565, 61501, 61437, 61373, 61309, 61245, 61181, 61117, 61053, - 60989, 60925, 60861, 60797, 60733, 60669, 60605, 60541, 60477, 60413, - 60349, 60285, 60221, 60157, 60093, 60029, 59965, 59901, 59837, 59773, - 59709, 59645, 59581, 59517, 59453, 59389, 59325, 59261, 59197, 59133, - 59069, 59005, 58941, 58877, 58813, 58749, 58685, 58621, 58557, 58493, - 58429, 58365, 58301, 58237, 58173, 58109, 58045, 57981, 57917, 57853, - 57789, 57725, 57661, 57597, 57533, 57469, 57405, 57341, 57277, 57213, - 57149, 57085, 57021, 56957, 56893, 56829, 56765, 56701, 56637, 56573, - 56509, 56445, 56381, 56317, 56253, 56189, 56125, 56061, 55997, 55933, - 55869, 55805, 55741, 55677, 55613, 55549, 55485, 55421, 55357, 55293, - 55229, 55165, 55101, 55037, 54973, 54909, 54845, 54781, 54717, 54653, - 54589, 54525, 54461, 54397, 54333, 54269, 54205, 54141, 54077, 54013, - 53949, 53885, 53821, 53757, 53693, 53629, 53565, 53501, 53437, 53373, - 53309, 53245, 53181, 53117, 53053, 52989, 52925, 52861, 52797, 52733, - 52669, 52605, 52541, 52477, 52413, 52349, 52285, 52221, 52157, 52093, - 52029, 51965, 51901, 51837, 51773, 51709, 51645, 51581, 51517, 51453, - 51389, 51325, 51261, 51197, 51133, 51069, 51005, 50941, 50877, 50813, - 50749, 50685, 50621, 50557, 50493, 50429, 50365, 50301, 50237, 50173, - 50109, 50045, 49981, 49917, 49853, 49789, 49725, 49661, 49597, 49533, - 49469, 49405, 49341, 49277, 49213, 49149, 49085, 49021, 48957, 48893, - 48829, 48765, 48701, 48637, 48573, 48509, 48445, 48381, 48317, 48253, - 48189, 48125, 48061, 47997, 47933, 47869, 47805, 47741, 47677, 47613, - 47549, 47485, 47421, 47357, 47293, 47229, 47165, 47101, 47037, 46973, - 46909, 46845, 46781, 46717, 46653, 46589, 46525, 46461, 46397, 46333, - 46269, 46205, 46141, 46077, 46013, 45949, 45885, 45821, 45757, 45693, - 45629, 45565, 45501, 45437, 45373, 45309, 45245, 45181, 45117, 45053, - 44989, 44925, 44861, 44797, 44733, 44669, 44605, 44541, 44477, 44413, - 44349, 44285, 44221, 44157, 44093, 44029, 43965, 43901, 43837, 43773, - 43709, 43645, 43581, 43517, 43453, 43389, 43325, 43261, 43197, 43133, - 43069, 43005, 42941, 42877, 42813, 42749, 42685, 42621, 42557, 42493, - 42429, 42365, 42301, 42237, 42173, 42109, 42045, 41981, 41917, 41853, - 41789, 41725, 41661, 41597, 41533, 41469, 41405, 41341, 41277, 41213, - 41149, 41085, 41021, 40957, 40893, 40829, 40765, 40701, 40637, 40573, - 40509, 40445, 40381, 40317, 40253, 40189, 40125, 40061, 39997, 39933, - 39869, 39805, 39741, 39677, 39613, 39549, 39485, 39421, 39357, 39293, - 39229, 39165, 39101, 39037, 38973, 38909, 38845, 38781, 38717, 38653, - 38589, 38525, 38461, 38397, 38333, 38269, 38205, 38141, 38077, 38013, - 37949, 37885, 37821, 37757, 37693, 37629, 37565, 37501, 37437, 37373, - 37309, 37245, 37181, 37117, 37053, 36989, 36925, 36861, 36797, 36733, - 36669, 36605, 36541, 36477, 36413, 36349, 36285, 36221, 36157, 36093, - 36029, 35965, 35901, 35837, 35773, 35709, 35645, 35581, 35517, 35453, - 35389, 35325, 35261, 35197, 35133, 35069, 35005, 34941, 34877, 34813, - 34749, 34685, 34621, 34557, 34493, 34429, 34365, 34301, 34237, 34173, - 34109, 34045, 33981, 33917, 33853, 33789, 33725, 33661, 33597, 33533, - 33469, 33405, 33341, 33277, 33213, 33149, 33085, 33021, 32957, 32893, - 32829, 32765, 32701, 32637, 32573, 32509, 32445, 32381, 32317, 32253, - 32189, 32125, 32061, 31997, 31933, 31869, 31805, 31741, 31677, 31613, - 31549, 31485, 31421, 31357, 31293, 31229, 31165, 31101, 31037, 30973, - 30909, 30845, 30781, 30717, 30653, 30589, 30525, 30461, 30397, 30333, - 30269, 30205, 30141, 30077, 30013, 29949, 29885, 29821, 29757, 29693, - 29629, 29565, 29501, 29437, 29373, 29309, 29245, 29181, 29117, 29053, - 28989, 28925, 28861, 28797, 28733, 28669, 28605, 28541, 28477, 28413, - 28349, 28285, 28221, 28157, 28093, 28029, 27965, 27901, 27837, 27773, - 27709, 27645, 27581, 27517, 27453, 27389, 27325, 27261, 27197, 27133, - 27069, 27005, 26941, 26877, 26813, 26749, 26685, 26621, 26557, 26493, - 26429, 26365, 26301, 26237, 26173, 26109, 26045, 25981, 25917, 25853, - 25789, 25725, 25661, 25597, 25533, 25469, 25405, 25341, 25277, 25213, - 25149, 25085, 25021, 24957, 24893, 24829, 24765, 24701, 24637, 24573, - 24509, 24445, 24381, 24317, 24253, 24189, 24125, 24061, 23997, 23933, - 23869, 23805, 23741, 23677, 23613, 23549, 23485, 23421, 23357, 23293, - 23229, 23165, 23101, 23037, 22973, 22909, 22845, 22781, 22717, 22653, - 22589, 22525, 22461, 22397, 22333, 22269, 22205, 22141, 22077, 22013, - 21949, 21885, 21821, 21757, 21693, 21629, 21565, 21501, 21437, 21373, - 21309, 21245, 21181, 21117, 21053, 20989, 20925, 20861, 20797, 20733, - 20669, 20605, 20541, 20477, 20413, 20349, 20285, 20221, 20157, 20093, - 20029, 19965, 19901, 19837, 19773, 19709, 19645, 19581, 19517, 19453, - 19389, 19325, 19261, 19197, 19133, 19069, 19005, 18941, 18877, 18813, - 18749, 18685, 18621, 18557, 18493, 18429, 18365, 18301, 18237, 18173, - 18109, 18045, 17981, 17917, 17853, 17789, 17725, 17661, 17597, 17533, - 17469, 17405, 17341, 17277, 17213, 17149, 17085, 17021, 16957, 16893, - 16829, 16765, 16701, 16637, 16573, 16509, 16445, 16381, 16317, 16253, - 16189, 16125, 16061, 15997, 15933, 15869, 15805, 15741, 15677, 15613, - 15549, 15485, 15421, 15357, 15293, 15229, 15165, 15101, 15037, 14973, - 14909, 14845, 14781, 14717, 14653, 14589, 14525, 14461, 14397, 14333, - 14269, 14205, 14141, 14077, 14013, 13949, 13885, 13821, 13757, 13693, - 13629, 13565, 13501, 13437, 13373, 13309, 13245, 13181, 13117, 13053, - 12989, 12925, 12752, 12688, 12624, 12570, 12454, 12283, 12280, 12338, - 12349, 12285, 12221, 12157, 12397, 12374, 11965, 11901, 12340, 12394, - 12451, 12132, 12384, 12197, 11976, 11924, 11820, 11768, 11768, 11542, - 11484, 11426, 11368, 11744, 10813, 10749, 10685, 10621, 10557, 10493, - 10429, 10365, 10301, 10237, 10173, 10109, 10045, 9981, 9917, 9853, - 9789, 9725, 9661, 9597, 9533, 9469, 9405, 9341, 9277, 9213, - 9149, 9085, 9021, 8957, 8893, 8829, 8765, 8701, 8637, 8573, - 8509, 8445, 8381, 8317, 8253, 8189, 8125, 8061, 7997, 7933, - 7869, 7805, 7741, 7677, 7613, 7549, 7485, 7421, 7357, 7293, - 7229, 7165, 7101, 7037, 6973, 6909, 6845, 6781, 6717, 6653, - 6589, 6525, 6461, 6397, 6333, 6269, 6205, 6141, 6077, 6013, - 5949, 5885, 5821, 5757, 5693, 5629, 5565, 5501, 5437, 5373, - 5309, 5245, 5181, 5117, 5053, 4989, 4925, 4861, 4797, 4733, - 4669, 4605, 4541, 4477, 4413, 4349, 4285, 4221, 4157, 4093, - 4029, 3965, 3901, 3837, 3773, 3709, 3645, 3581, 3517, 3453, - 3389, 3325, 3261, 3197, 3133, 3069, 3005, 2941, 2877, 2813, - 2749, 2685, 2621, 2557, 2493, 2429, 2365, 2301, 2237, 2173, - 2109, 2045, 1981, 1917, 1853, 1789, 1725, 1661, 1597, 1533, - 1469, 1405, 1341, 1277, 1213, 1149, 1085, 1021, 957, 893, - 829, 765, 701, 637, -}; - -static const jchar blocks2[] = { - 0, 65408, 65280, 65152, 65024, 64896, 64768, 64640, 64512, 64384, - 64256, 64128, 64000, 63872, 63744, 63616, 63488, 63360, 63232, 63104, - 62976, 62848, 62720, 62592, 62464, 62336, 62208, 62080, 61952, 61824, - 61696, 61568, 61440, 61312, 61184, 61056, 60928, 60800, 60672, 60544, - 60416, 60288, 60160, 60032, 59904, 59776, 59648, 59520, 59392, 59264, - 59136, 59008, 58880, 58752, 58624, 58496, 58368, 58240, 58112, 57984, - 57856, 57728, 57600, 57472, 57344, 57216, 57088, 56960, 56832, 56704, - 56576, 56448, 56320, 56192, 56064, 55936, 55808, 55680, 55552, 55424, - 55296, 55168, 55040, 54912, 54784, 54656, 54528, 54400, 54272, 54144, - 54016, 53888, 53760, 53632, 53504, 53376, 53248, 53120, 52992, 52864, - 52736, 52608, 52480, 52352, 52224, 52096, 51968, 51840, 51712, 51584, - 51456, 51328, 51200, 51072, 50944, 50816, 50688, 50560, 50432, 50304, - 50176, 50048, 49920, 49792, 49664, 49536, 49408, 49280, 49152, 49024, - 48896, 48768, 48640, 48512, 48384, 48256, 48128, 48000, 47872, 47744, - 47616, 47488, 47360, 47232, 47104, 46976, 46848, 46720, 46592, 46464, - 46336, 46208, 46080, 45952, 45824, 45696, 45568, 45440, 45312, 45184, - 45056, 44928, 44800, 44672, 44544, 44416, 44288, 44160, 44032, 43904, - 43776, 43648, 43520, 43392, 43264, 43136, 43008, 42880, 42752, 42624, - 42496, 42368, 42240, 42112, 41984, 41856, 41728, 41600, 41472, 41344, - 41216, 41088, 40960, 40832, 40704, 40576, 40448, 40320, 40192, 40064, - 39936, 39808, 39680, 39552, 39424, 39296, 39168, 39040, 38912, 38784, - 38656, 38528, 38400, 38272, 38144, 38016, 37888, 37760, 37632, 37504, - 37376, 37248, 37120, 36992, 36864, 36736, 36608, 36480, 36352, 36224, - 36096, 35968, 35840, 35712, 35584, 35456, 35328, 35200, 35072, 34944, - 34816, 34688, 34560, 34432, 34304, 34176, 34048, 33920, 33792, 33664, - 33536, 33408, 33280, 33152, 33024, 32896, 32768, 32640, 32512, 32384, - 32256, 32128, 32000, 31872, 31744, 31616, 31488, 31360, 31232, 31104, - 30976, 30848, 30720, 30592, 30464, 30336, 30208, 30080, 29952, 29824, - 29696, 29568, 29440, 29312, 29184, 29056, 28928, 28800, 28672, 28544, - 28416, 28288, 28160, 28032, 27904, 27776, 27648, 27520, 27392, 27264, - 27136, 27008, 26880, 26752, 26624, 26496, 26368, 26240, 26112, 25984, - 25856, 25728, 25600, 25472, 25344, 25216, 25088, 24960, 24832, 24704, - 24576, 24448, 24320, 24192, 24064, 23936, 23808, 23680, 23552, 23424, - 23296, 23168, 23040, 22953, 22912, 22784, 22656, 22528, 22400, 22272, - 22144, 22016, 21888, 21760, 21632, 21504, 21376, 21248, 21120, 20992, - 20864, 20736, 20608, 20480, 20352, 20224, 20096, 19968, 19840, 19712, - 19584, 19456, 19328, 19200, 19072, 18944, 18816, 18688, 18560, 18432, - 18304, 18176, 18048, 17920, 17792, 17664, 17536, 17408, 17280, 17152, - 17024, 16896, 16768, 16640, 16512, 16384, 16256, 16128, 16000, 15872, - 15744, 15616, 15488, 15360, 15232, 15104, 14976, 14848, 14720, 14592, - 14464, 14336, 14208, 14080, 13952, 13824, 13696, 13568, 13440, 13312, - 13184, 13056, 12928, 12800, 12672, 12544, 12416, 12288, 12160, 12032, - 11904, 11776, 11648, 11520, 11392, 11264, 11136, 11008, 10880, 10752, - 10624, 10496, 10368, 10240, 10112, 9984, 9856, 9728, 9600, 9472, - 9344, 9216, 9088, 8960, 8832, 8704, 8576, 8448, 8320, 8192, - 8064, 7936, 7808, 7680, 7552, 7424, 7296, 7168, 7040, 6912, - 6784, 6656, 6528, 6400, 6272, 6144, 6016, 5888, 5760, 5632, - 5504, 5376, 5248, 5120, 4992, 4864, 4736, 4608, 4480, 4352, - 4224, 4096, 3968, 3840, 3712, 3584, 3456, 3328, 3200, 3072, - 2944, 2816, 2688, 2560, 2432, 2304, 2048, 1920, 1792, 1664, - 1634, 1536, 1408, 1280, 1152, 1024, 896, 768, 640, 512, - 384, 256, -}; - -static const jchar blocks14[] = { - 255, 0, 65280, 65168, 65152, 65024, 64896, 64768, 64640, 64512, - 64384, 64256, 64128, 64000, 63872, 63744, 63616, 63488, 63360, 63232, - 63104, 62976, 62848, 62720, 62592, 62464, 62336, 62208, 62080, 61952, - 61824, 61696, 61568, 61440, 61312, 61184, 61056, 60928, 60800, 60672, - 60544, 60416, 60288, 60160, 60032, 59904, 59776, 59648, 59520, 59392, - 59264, 59136, 59008, 58880, 58752, 58624, 58496, 58368, 58240, 58112, - 57984, 57856, 57728, 57600, 57472, 57344, 57216, 57088, 56960, 56832, - 56704, 56576, 56448, 56320, 56192, 56064, 55936, 55808, 55680, 55552, - 55424, 55296, 55168, 55040, 54912, 54784, 54656, 54528, 54400, 54272, - 54144, 54016, 53888, 53760, 53632, 53504, 53376, 53248, 53120, 52992, - 52864, 52736, 52608, 52480, 52352, 52224, 52096, 51968, 51840, 51712, - 51584, 51456, 51328, 51200, 51072, 50944, 50816, 50688, 50560, 50432, - 50304, 50176, 50048, 49920, 49792, 49664, 49536, 49408, 49280, 49152, - 49024, 48896, 48768, 48640, 48512, 48384, 48256, 48128, 48000, 47872, - 47744, 47616, 47488, 47360, 47232, 47104, 46976, 46848, 46720, 46592, - 46464, 46336, 46208, 46080, 45952, 45824, 45696, 45568, 45440, 45312, - 45184, 45056, 44928, 44800, 44672, 44544, 44416, 44288, 44160, 44032, - 43904, 43776, 43648, 43520, 43392, 43264, 43136, 43008, 42880, 42752, - 42624, 42496, 42368, 42240, 42112, 41984, 41856, 41728, 41600, 41472, - 41344, 41216, 41088, 40960, 40832, 40704, 40576, 40448, 40320, 40192, - 40064, 39936, 39808, 39680, 39552, 39424, 39296, 39168, 39040, 38912, - 38784, 38656, 38528, 38400, 38272, 38144, 38016, 37888, 37760, 37632, - 37504, 37376, 37248, 37120, 36992, 36864, 36736, 36608, 36480, 36352, - 36224, 36096, 35968, 35840, 35712, 35584, 35456, 35328, 35200, 35072, - 34944, 34816, 34688, 34560, 34432, 34304, 34176, 34048, 33920, 33792, - 33664, 33536, 33408, 33280, 33152, 33024, 32896, 32768, 32640, 32512, - 32384, 32256, 32128, 32000, 31872, 31744, 31616, 31488, 31360, 31232, - 31104, 30976, 30848, 30720, 30592, 30464, 30336, 30208, 30080, 29952, - 29824, 29696, 29568, 29440, 29312, 29184, 29056, 28928, 28800, 28672, - 28544, 28416, 28288, 28160, 28032, 27904, 27776, 27648, 27520, 27392, - 27264, 27136, 27008, 26880, 26752, 26624, 26496, 26368, 26240, 26112, - 25984, 25856, 25728, 25600, 25472, 25344, 25216, 25088, 24960, 24832, - 24704, 24576, 24448, 24320, 24192, 24064, 23936, 23808, 23680, 23552, - 23424, 23296, 23168, 23040, 22912, 22784, 22656, 22528, 22400, 22272, - 22144, 22016, 21888, 21760, 21632, 21504, 21376, 21248, 21120, 20992, - 20864, 20736, 20608, 20480, 20352, 20224, 20096, 19968, 19840, 19712, - 19584, 19456, 19328, 19200, 19072, 18944, 18816, 18688, 18560, 18432, - 18304, 18176, 18048, 17920, 17792, 17664, 17536, 17408, 17280, 17152, - 17024, 16896, 16768, 16640, 16512, 16384, 16256, 16128, 16000, 15872, - 15744, 15616, 15488, 15360, 15232, 15104, 14976, 14848, 14720, 14592, - 14464, 14336, 14208, 14080, 13952, 13824, 13696, 13568, 13440, 13312, - 13184, 13056, 12928, 12800, 12672, 12544, 12416, 12288, 12160, 12032, - 11904, 11776, 11648, 11520, 11392, 11264, 11136, 11008, 10880, 10752, - 10624, 10496, 10368, 10240, 10112, 9984, 9856, 9728, 9600, 9472, - 9344, 9216, 9088, 8960, 8832, 8704, 8576, 8448, 8320, 8192, - 8064, 7936, 7808, 7680, 7552, 7424, 7296, 7168, 7040, 6912, - 6784, 6656, 6528, 6400, 6272, 6144, 6016, 5888, 5760, 5632, - 5504, 5376, 5248, 5120, 4992, 4864, 4736, 4608, 4480, 4352, - 4224, 4096, 3968, 3840, 3712, 3584, 3456, 3328, 3200, 3072, - 2944, 2816, 2688, 2560, 2432, 2304, 2176, 2048, 1920, 1792, - 1664, 1536, 1408, 1280, 1152, 1024, 896, 768, 640, 512, - 384, 256, -}; - -static const int blocks_length[] = { - 4096, 1024, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 512, -1, -1, }; -static const jchar* blocks[] = { - blocks0, blocks1, blocks2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, blocks14, NULL, NULL}; - -/** - * Information about each character. The low order 5 bits form the - * character type, the next bit is a flag for non-breaking spaces, and the - * next bit is a flag for mirrored directionality. The high order 9 bits - * form the offset into the attribute tables. Note that this limits the - * number of unique character attributes per plane to 512, which is not a - * problem as of Unicode version 4.0.0, but may soon become one. - */ -static const jchar data0[] = { - 8834, 8962, 9090, 9218, 9346, 9474, 9602, 9730, 9858, 9986, - 10114, 1109, 3225, 1238, 3225, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 143, 271, 143, 399, 271, 15, - 15, 15, 15, 15, 271, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 271, 271, 271, 143, 1801, 1929, 2057, 2185, 2313, - 2441, 2569, 2697, 2825, 2953, 1432, 664, 3161, 3225, 3161, - 664, 664, 3225, 664, 6807, 16256, 16256, 664, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 524, 664, 664, 792, 922, - 792, 664, 664, 1109, 1238, 664, 1305, 1432, 1556, 1432, - 1688, 10908, 1305, 11019, 11147, 6683, 11266, 10396, 664, 6683, - 11403, 10498, 11614, 11659, 11659, 11659, 664, 3329, 3457, 3585, - 3713, 3841, 3969, 4097, 4225, 4353, 4481, 4609, 4737, 4865, - 4993, 5121, 5249, 5377, 5505, 5633, 5761, 5889, 6017, 6145, - 6273, 6401, 6529, 1109, 664, 1238, 6683, 6807, 664, 664, - 664, 3225, 1109, 1238, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 34189, 34318, 34448, 34576, 34704, 34832, 34960, - 33452, 10284, 664, 922, 922, 922, 922, 10396, 10396, 6683, - 10396, 10498, 10717, 3225, 10768, 10396, 6683, 6914, 7042, 7170, - 7298, 7426, 7554, 7682, 7810, 7938, 8066, 8194, 8322, 8450, - 8578, 8706, 19074, 11777, 11777, 11777, 11777, 11777, 11777, 11777, - 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 3225, - 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11906, 15361, 15491, - 15618, 12289, 12418, 15873, 16001, 12289, 12418, 12289, 12418, 12289, - 12418, 12289, 12418, 12801, 12289, 12418, 12289, 12418, 12289, 12418, - 12930, 19074, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, - 12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 3225, 12034, - 12034, 12034, 12034, 12034, 12034, 12034, 12162, 16129, 10498, 12289, - 12418, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 12289, - 12418, 12289, 12418, 12289, 12418, 15746, 12289, 12418, 21404, 18310, - 18310, 18310, 18310, 16256, 21511, 21511, 12289, 12418, 12289, 12418, - 12289, 12418, 16256, 16256, 12289, 12418, 16256, 16256, 16256, 16256, - 16256, 16256, 18310, 24584, 16256, 16256, 16256, 16256, 15109, 15109, - 16256, 15109, 16256, 16256, 15109, 15109, 16256, 15109, 16256, 16256, - 15109, 16256, 16256, 11906, 32258, 11906, 16256, 11906, 19074, 33153, - 33153, 33281, 33281, 32515, 6683, 6683, 16256, 18310, 18310, 24584, - 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 16256, 15109, 16256, 15109, 15109, 15109, 15109, 16256, 16256, 15109, - 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 16256, 15109, - 15109, 15109, 15109, 15109, 15109, 16256, 16256, 15109, 15109, 15109, - 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 21784, 21784, 15109, 15109, 15109, 15109, 15361, 15491, 15618, 15361, - 15491, 15618, 15361, 15491, 15618, 12289, 12418, 12289, 12418, 10498, - 10498, 10498, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 15109, 15109, 15109, 15109, 16256, 15109, 16256, 15109, 15109, - 16256, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 18310, 15109, - 24584, 24584, 18310, 18310, 18310, 16256, 16256, 16256, 24584, 24584, - 16256, 16256, 24584, 24584, 18310, 16256, 16256, 12545, 12674, 12289, - 12418, 12289, 12418, 12289, 12418, 10498, 12289, 12418, 12289, 12418, - 12289, 12418, 12289, 12418, 11906, 11906, 11906, 11906, 11906, 30850, - 16256, 16256, 16256, 16256, 6683, 6683, 16256, 16256, 16256, 16256, - 18052, 16256, 16256, 16256, 664, 16256, 21633, 21633, 21633, 21633, - 21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, - 21633, 21633, 16256, 16256, 18052, 21784, 21784, 21784, 21784, 21784, - 21784, 21404, 21404, 21404, 21404, 21404, 18310, 18310, 21404, 21404, - 21404, 21404, 21404, 21404, 18310, 21404, 21404, 21404, 21404, 21404, - 21404, 16256, 16256, 21404, 15109, 16256, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 19842, 19970, 20097, 20097, 20097, 20226, 20354, 10498, 12289, 12418, - 12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 11906, 12289, - 12418, 12289, 12418, 12289, 12418, 14721, 12289, 12418, 14721, 10498, - 10498, 12289, 12418, 14721, 12289, 17666, 10498, 10498, 17666, 10498, - 10498, 10498, 10498, 17666, 10498, 17794, 17794, 10498, 10498, 10498, - 10498, 17410, 10498, 10498, 17538, 10498, 10498, 10498, 10498, 10498, - 10498, 10498, 10498, 10498, 10498, 16386, 16514, 10498, 16642, 16642, - 10498, 16770, 10498, 16898, 10498, 10498, 10498, 10498, 13057, 12289, - 12418, 12289, 12418, 13185, 12289, 12418, 13313, 13313, 12289, 12418, - 10498, 13441, 13569, 13697, 12289, 12418, 13313, 13825, 13954, 14081, - 14209, 12289, 12418, 10498, 10498, 14081, 14337, 14466, 14593, 12418, - 14849, 14849, 12289, 12418, 12289, 12418, 14977, 12289, 12418, 10498, - 15109, 12289, 12418, 10498, 15234, 18310, 18310, 18310, 18310, 18310, - 18438, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, - 18310, 16256, 18310, 18310, 18310, 22168, 18310, 18310, 22168, 18310, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 24584, 16256, 16256, 16256, 16256, 15109, 15109, 16256, 15109, - 15109, 15109, 15109, 16256, 16256, 16256, 15109, 15109, 16256, 15109, - 16256, 15109, 15109, 16256, 15109, 15109, 16256, 15109, 15109, 16256, - 16256, 18310, 16256, 24584, 24584, 24584, 16256, 15109, 15109, 15109, - 15109, 15109, 15109, 15109, 15109, 16256, 15109, 15109, 15109, 16256, - 16256, 16256, 16256, 24584, 24584, 21784, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 16256, 24464, 24464, 24464, 10396, 10396, 16256, 16256, 16256, - 664, 664, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, - 25737, 25865, 16256, 16256, 16256, 16256, 16256, 16256, 18310, 15109, - 16256, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 16256, - 15109, 15109, 16256, 16256, 16256, 15109, 15109, 15109, 16256, 16256, - 16256, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 15109, - 15109, 15109, 16256, 16256, 16256, 21890, 21890, 21890, 21890, 21890, - 21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, - 21890, 11906, 16256, 21784, 22036, 16256, 16256, 16256, 16256, 16256, - 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, - 22661, 22661, 22661, 22661, 22661, 22661, 22661, 27541, 27670, 16642, - 10498, 10498, 17026, 10498, 10498, 10498, 10498, 17154, 17282, 10498, - 10498, 10498, 10498, 10498, 17282, 22416, 22416, 22416, 22416, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 1432, 22552, 10396, - 10396, 20097, 10396, 10396, 10396, 10396, 20097, 10396, 10396, 10498, - 20097, 20097, 20097, 10498, 10498, 17922, 10498, 10498, 10498, 10498, - 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, - 10498, 10498, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 18052, - 18052, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 18180, 18180, - 18052, 18052, 18052, 18052, 18052, 6683, 6683, 6683, 6683, 6683, - 6683, 6683, 6683, 6683, 18052, 6683, 22036, 15109, 15109, 15109, - 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 15109, 15109, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 18052, - 18052, 6683, 6683, 6683, 6683, 18180, 18180, 18180, 18180, 18180, - 18180, 18180, 18180, 18180, 18180, 18052, 18052, 6683, 6683, 6683, - 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, - 6683, 6683, 6683, 11906, 32258, 11906, 16256, 11906, 19074, 32769, - 32769, 32769, 32769, 32515, 6683, 6683, 6683, 10396, 44170, 44298, - 44426, 44554, 44682, 44810, 44938, 45066, 45194, 18310, 18310, 18310, - 18310, 18310, 18310, 18310, 18310, 16256, 18310, 18310, 18310, 18310, - 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, - 18310, 18310, 16256, 21404, 21404, 25995, 26123, 26251, 26379, 21404, - 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, - 10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, - 10396, 10396, 10396, 10396, 16256, 10396, 16256, 10396, 10396, 10396, - 10396, 16256, 10396, 10396, 10396, 10396, 16256, 16256, 10396, 10396, - 10396, 10396, 10396, 21404, 10396, 10396, 10396, 10396, 10396, 3225, - 3225, 3225, 3225, 3225, 27541, 27670, 664, 10396, 10396, 10396, - 10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 10396, 10396, - 10396, 10396, 10396, 10396, 10396, 1109, 1238, 1109, 1238, 1109, - 1238, 1109, 1238, 29579, 29707, 29835, 29963, 30091, 30219, 30347, - 30475, 30603, 43915, 29579, 29707, 29835, 29963, 30091, 30219, 18310, - 18310, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 16256, - 16256, 16256, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, - 18310, 18310, 18310, 18310, 18310, 18310, 24584, 24584, 16256, 16256, - 16256, 24584, 24584, 24584, 16256, 24584, 24584, 24584, 18310, 16256, - 16256, 18310, 24584, 24584, 16256, 15109, 15109, 15109, 15109, 15109, - 15109, 15109, 15109, 16256, 16256, 15109, 15109, 15109, 16256, 15109, - 16256, 15109, 16256, 16256, 15109, 15109, 16256, 15109, 15109, 15109, - 15109, 15109, 16256, 15109, 15109, 16256, 24584, 18310, 18310, 18310, - 18310, 16256, 16256, 24584, 24584, 16256, 16256, 24584, 24584, 18310, - 16256, 16256, 20482, 20610, 20738, 10498, 20865, 20994, 3225, 12289, - 12418, 21121, 12289, 12418, 16256, 16256, 16256, 16256, 6683, 6683, - 18561, 664, 18689, 18689, 18689, 16256, 18817, 16256, 18945, 18945, - 11777, 11777, 16256, 11777, 11777, 11777, 11777, 11777, 11777, 11777, - 11777, 11777, 19202, 19330, 19330, 19330, 12034, 12034, 19458, 12034, - 12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 19586, 19714, - 19714, 16256, 18310, 18310, 24584, 16256, 15109, 15109, 15109, 15109, - 15109, 15109, 16256, 16256, 16256, 16256, 15109, 15109, 15109, 15109, - 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 16256, 15109, 16256, 16256, 16256, 15109, 15109, 15109, 15109, 16256, - 16256, 18310, 15109, 24584, 24584, 18310, 24584, 24584, 24584, 24584, - 24584, 24584, 18310, 18310, 18310, 16256, 16256, 16256, 16256, 21249, - 21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, - 21249, 21249, 21249, 21249, 21249, 20610, 20610, 20610, 20610, 20610, - 20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, - 20610, 20097, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, - 12289, 12418, 12289, 12418, 12289, 12418, 16256, 16256, 16256, 16256, - 16256, 16256, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, - 25737, 25865, 27403, 27403, 27403, 27403, 27403, 27403, 21404, 18310, - 21404, 18310, 21404, 18310, 27541, 27670, 27541, 27670, 24584, 24584, - 18310, 18310, 18310, 16256, 18310, 16256, 24584, 24584, 24584, 24584, - 24584, 24584, 24584, 24584, 18310, 24584, 24584, 18310, 18310, 18310, - 18310, 18310, 18310, 18310, 18310, 24584, 24584, 24584, 24584, 18310, - 16256, 16256, 21784, 21784, 21784, 21784, 21784, 21784, 21784, 21784, - 24841, 24969, 25097, 25225, 25353, 25481, 25609, 18310, 18310, 18310, - 18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 11906, 11906, - 11906, 11906, 11906, 16256, 16256, 16256, 16256, 16256, 22277, 18310, - 22277, 22277, 16256, 22277, 22277, 16256, 22277, 22277, 22277, 22277, - 22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, - 22277, 22277, 16256, 16256, 16256, 16256, 16256, 24584, 24584, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 15109, 16256, 15109, 15109, - 16256, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 18310, 15109, - 24584, 18310, 18310, 18310, 18310, 18310, 16256, 18310, 18310, 24584, - 16256, 24584, 24584, 18310, 16256, 16256, 664, 664, 792, 922, - 792, 664, 664, 1109, 1238, 664, 1305, 1432, 1556, 1432, - 1688, 22277, 22277, 22277, 22168, 22168, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 24584, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 11659, 11659, 11659, 11659, - 11659, 11659, 11659, 11659, 11659, 11659, 11659, 11659, 29579, 22921, - 23049, 23177, 23305, 23433, 23561, 23689, 23817, 23945, 24073, 792, - 24216, 24216, 22552, 22661, 22661, 22661, 22661, 22552, 22661, 18310, - 18310, 18310, 18310, 18310, 18310, 18310, 22416, 21511, 18310, 21511, - 21511, 21511, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, - 16256, 16256, 16256, 22552, 16256, 16256, 16256, 22552, 22552, 22552, - 22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, - 22552, 16256, 24464, 22788, 22661, 22661, 22661, 22661, 22661, 22661, - 22661, 22661, 22661, 22661, 18310, 18310, 18310, 18310, 18310, 18310, - 18310, 18310, 18310, 18310, 18310, 16256, 16256, 22661, 22661, 22661, - 22661, 22661, 16256, 22661, 22661, 22661, 22661, 22661, 22661, 22661, - 22661, 22661, 22661, 22661, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 24841, 24969, - 25097, 25225, 25353, 25481, 25609, 25737, 25865, 26763, 27787, 27915, - 28043, 28171, 28299, 28427, 28555, 28683, 26891, 28811, 16256, 16256, - 16256, 1801, 1929, 2057, 2185, 2313, 2441, 2569, 2697, 2825, - 2953, 22661, 22661, 22661, 24348, 24348, 22661, 18310, 22661, 22661, - 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, - 22661, 22661, 22661, 16256, 16256, 24464, 24464, 24464, 24464, 16256, - 16256, 16256, 16256, 16256, 16256, 24464, 24464, 24464, 24464, 24464, - 24464, 18310, 18310, 18310, 18310, 18310, 22788, 22788, 18310, 18310, - 10396, 18310, 18310, 18310, 18310, 22661, 22661, 22661, 22661, 22661, - 22661, 22661, 22661, 22661, 22661, 22661, 22661, 50458, 10396, 16256, - 16256, 18310, 22661, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 1238, 664, 1109, - 1238, 664, 6807, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 15109, 15109, 15109, 16256, 16256, 16256, 16256, 24584, 24584, 16256, - 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 15109, - 15109, 15109, 15109, 15109, 16256, 16256, 16256, 16256, 18310, 18310, - 24584, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 15109, 15109, 15109, 27541, 27670, 16256, 16256, 16256, 524, 15109, - 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 15109, 15109, 15109, 15109, 16256, 16256, 16256, 16256, 16256, 15109, - 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 6807, 18052, 18052, 18052, 15109, 15109, 15109, 18052, 15109, 15109, - 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 15109, 15109, 15109, 16256, 16256, 18310, 15109, 24584, 24584, 24584, - 24584, 24584, 16256, 27142, 24584, 24584, 16256, 24584, 24584, 18310, - 18310, 16256, 16256, 16256, 16256, 18310, 18310, 16256, 16256, 18310, - 18310, 18310, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 15109, - 15109, 16256, 16256, 18310, 18310, 6683, 6683, 18052, 18052, 15109, - 18310, 18310, 18310, 18310, 16256, 16256, 16256, 15109, 15109, 15109, - 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 21784, 16256, - 16256, 16256, 16256, 15109, 15109, 18310, 18310, 21784, 21784, 24713, - 24841, 24969, 25097, 25225, 25353, 25481, 25609, 25737, 25865, 21784, - 21784, 16256, 16256, 16256, 16256, 15109, 15109, 18310, 18310, 16256, - 16256, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, 25737, - 25865, 16256, 16256, 15109, 15109, 16256, 16256, 15109, 15109, 922, - 922, 25995, 26123, 26251, 26379, 26507, 26635, 21404, 16256, 16256, - 16256, 16256, 16256, 18310, 18310, 15109, 15109, 15109, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, - 18310, 15109, 15109, 18310, 18310, 18310, 18310, 18310, 18310, 18310, - 16256, 16256, 16256, 16256, 922, 16256, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, - 15109, 15109, 15109, 15109, 15109, 18052, 18310, 18310, 18310, 18310, - 18310, 18310, 18310, 18310, 21784, 18310, 18310, 15109, 15109, 15109, - 15109, 16256, 16256, 16256, 16256, 24713, 24841, 24969, 25097, 25225, - 25353, 25481, 25609, 25737, 25865, 21784, 21784, 21784, 21784, 21784, - 21784, 26763, 26891, 27019, 10396, 10396, 10396, 10396, 10396, 10396, - 922, 10396, 16256, 16256, 16256, 16256, 16256, 18310, 24584, 24584, - 24584, 24584, 16256, 18310, 18310, 18310, 16256, 18310, 18310, 18310, - 18310, 16256, 16256, 15109, 15109, 15109, 15109, 16256, 15109, 15109, - 15109, 15109, 15109, 16256, 16256, 18310, 15109, 24584, 27142, 24584, - 18310, 18310, 18310, 16256, 16256, 24584, 24584, 24584, 16256, 24584, - 24584, 24584, 18310, 16256, 16256, 15109, 15109, 15109, 15109, 15109, - 15109, 15109, 16256, 16256, 16256, 18310, 16256, 16256, 16256, 16256, - 24584, 24584, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 15109, 15109, 15109, 15109, 21784, 21784, 21784, 28938, 29066, 15109, - 18310, 15109, 15109, 18310, 18310, 18310, 18310, 18310, 18310, 16256, - 18310, 18310, 15109, 16256, 16256, 15109, 15109, 15109, 15109, 15109, - 16256, 18052, 16256, 18310, 18310, 18310, 18310, 18310, 18310, 16256, - 16256, 15109, 21404, 21404, 21404, 21784, 21784, 21784, 21784, 21784, - 21784, 21784, 21784, 27320, 21784, 21784, 21784, 18310, 24584, 18310, - 16256, 16256, 16256, 18310, 18310, 24584, 18310, 16256, 16256, 16256, - 16256, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 24584, - 24584, 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 20097, - 20097, 10396, 20097, 10498, 15109, 15109, 15109, 15109, 10498, 10396, - 10396, 16256, 10498, 20097, 20097, 20097, 20097, 20097, 20097, 20097, - 20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, - 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 29194, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 15109, 18310, - 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 15109, 15109, 18310, 18310, 18310, 21784, 21784, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, - 15109, 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 15109, 16256, 18310, 18310, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 15109, 15109, 15109, 15109, 29328, 29328, 24584, 18310, 18310, - 18310, 18310, 18310, 18310, 18310, 24584, 24584, 24584, 24584, 18310, - 18310, 30728, 30728, 30728, 16256, 16256, 16256, 16256, 18310, 18310, - 18310, 18310, 21784, 21784, 21784, 18052, 21784, 21784, 21784, 922, - 15109, 18310, 16256, 16256, 43275, 43403, 43531, 43659, 43787, 29579, - 29707, 29835, 29963, 30091, 30219, 30347, 30475, 30603, 43915, 29451, - 29579, 29707, 29835, 29963, 30091, 30219, 30347, 30475, 30603, 16256, - 16256, 16256, 16256, 16256, 16256, 664, 664, 664, 664, 664, - 664, 22036, 664, 664, 664, 664, 18310, 18310, 18310, 524, - 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, - 18310, 16256, 16256, 16256, 16256, 16256, 16256, 20097, 20097, 20097, - 10498, 10396, 20097, 10396, 10396, 10396, 20097, 20097, 20097, 20097, - 20097, 10396, 10396, 3225, 10396, 3225, 10396, 10396, 10396, 10396, - 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, - 10396, 10396, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, - 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3161, 3161, - 3161, 3161, 3161, 3161, 3225, 3225, 1109, 1238, 3225, 3225, - 3225, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, 1109, - 1238, 1109, 1238, 1109, 1238, 3225, 3225, 3161, 3161, 3161, - 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3161, - 3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, - 3225, 3161, 3225, 3161, 3225, 3161, 3161, 3161, 3161, 3161, - 3161, 3161, 3161, 3225, 3225, 3161, 3161, 3161, 3161, 3161, - 3161, 3161, 3161, 3225, 3161, 3225, 3161, 3161, 3161, 3225, - 3225, 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3161, - 3225, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3225, 3161, - 3225, 3225, 3161, 3161, 3225, 3225, 3225, 3225, 3161, 3161, - 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, - 3161, 3225, 3225, 3161, 3225, 3161, 3225, 3225, 3161, 3225, - 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3161, 3161, 3161, - 3161, 3161, 3161, 3225, 3225, 3225, 3161, 3225, 3225, 3225, - 3225, 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3161, - 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3225, - 3225, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3225, 3225, - 3225, 3225, 3225, 3225, 3161, 3161, 3225, 3225, 3225, 3225, - 3225, 3225, 3225, 10396, 10396, 10396, 10396, 10396, 3225, 3225, - 10396, 10396, 10396, 10396, 20097, 10396, 35969, 10396, 20097, 10396, - 36097, 36225, 20097, 20097, 10908, 10498, 18052, 18052, 10498, 10498, - 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 16256, 16256, - 16256, 16256, 30978, 30978, 30978, 30978, 30978, 30978, 30978, 30978, - 31105, 31105, 31105, 31105, 31105, 31105, 31105, 31105, 30978, 30978, - 30978, 30978, 30978, 30978, 16256, 16256, 31105, 31105, 31105, 31105, - 31105, 31105, 16256, 16256, 11906, 30978, 19074, 30978, 19074, 30978, - 19074, 30978, 16256, 31105, 16256, 31105, 16256, 31105, 16256, 31105, - 31234, 31234, 31362, 31362, 31362, 31362, 31490, 31490, 31618, 31618, - 31746, 31746, 31874, 31874, 16256, 16256, 32002, 32002, 32002, 32002, - 32002, 32002, 32002, 32002, 32131, 32131, 32131, 32131, 32131, 32131, - 32131, 32131, 30978, 30978, 11906, 32258, 11906, 16256, 11906, 19074, - 31105, 31105, 32385, 32385, 32515, 6683, 32642, 6683, 30978, 30978, - 19074, 19074, 16256, 16256, 11906, 19074, 31105, 31105, 32897, 32897, - 16256, 6683, 6683, 6683, 30978, 30978, 19074, 19074, 11906, 20738, - 11906, 19074, 31105, 31105, 33025, 33025, 21121, 6683, 6683, 6683, - 524, 524, 524, 524, 524, 524, 524, 33452, 524, 524, - 524, 33548, 24464, 24464, 29328, 33680, 22036, 33844, 22036, 22036, - 22036, 22036, 664, 664, 33949, 34078, 27541, 33949, 33949, 34078, - 27541, 33949, 1432, 664, 1432, 16256, 664, 1432, 664, 664, - 22036, 27541, 27670, 27541, 27670, 27541, 27670, 792, 792, 792, - 792, 792, 664, 664, 664, 664, 10717, 11614, 664, 664, - 664, 664, 6807, 35083, 10498, 16256, 16256, 35211, 35339, 35467, - 35595, 35723, 35851, 1305, 1305, 3225, 1109, 1238, 10498, 35083, - 11403, 11019, 11147, 35211, 35339, 35467, 35595, 35723, 35851, 1305, - 1305, 3225, 1109, 1238, 16256, 922, 922, 922, 922, 922, - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, - 922, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 18310, 18310, 18310, 18310, 18310, - 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 21511, 21511, - 21511, 3225, 3225, 3225, 3161, 3161, 3161, 3161, 3225, 3225, - 3225, 3225, 3225, 3161, 3161, 3161, 3225, 3225, 3161, 3161, - 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, - 3225, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, - 3225, 3161, 3161, 3161, 3225, 3225, 3161, 3161, 3225, 3225, - 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, - 3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, - 3225, 3161, 3161, 3225, 3225, 3225, 3225, 3161, 3161, 3161, - 3161, 3225, 3161, 1305, 1305, 3225, 3161, 3161, 3225, 3225, - 3225, 3161, 3161, 3161, 3161, 3225, 3161, 3225, 3161, 3225, - 3225, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3161, 3161, - 3161, 3161, 3161, 3161, 3161, 3161, 3225, 3161, 3161, 3225, - 3225, 1109, 1238, 1109, 1238, 3161, 3225, 3225, 3225, 3225, - 20097, 10498, 10498, 10498, 10498, 10396, 3225, 16256, 16256, 16256, - 16256, 36362, 36490, 36618, 36746, 36874, 37002, 37130, 37258, 37386, - 37514, 37642, 37770, 37898, 38026, 38154, 38282, 38410, 38538, 38666, - 38794, 38922, 39050, 39178, 39306, 39434, 39562, 39690, 39818, 39946, - 40074, 40202, 40330, 40458, 40586, 40714, 40842, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 3225, - 10396, 10396, 3225, 10396, 10396, 3225, 10396, 10396, 10396, 10396, - 10396, 10396, 10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396, - 10396, 10396, 3161, 3161, 3161, 3161, 10396, 10396, 10396, 10396, - 10396, 10396, 10396, 1109, 1238, 10396, 10396, 10396, 10396, 10396, - 10396, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, - 21404, 21404, 21404, 21404, 21404, 21404, 21404, 10396, 10396, 16256, - 21404, 48267, 48395, 48523, 48651, 48779, 48907, 49035, 49163, 49291, - 49419, 49547, 49675, 49803, 49931, 50059, 30347, 30475, 30603, 43915, - 10396, 16256, 16256, 16256, 10396, 10396, 10396, 10396, 10396, 10396, - 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 41355, 41483, 41611, 41739, 41867, 41995, 42123, - 42251, 11403, 11019, 11147, 35211, 35339, 35467, 35595, 35723, 35851, - 40971, 41099, 41227, 41355, 41483, 41611, 41739, 41867, 41995, 42123, - 42251, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, - 21404, 21404, 21404, 10396, 10396, 10396, 10396, 21404, 21404, 21404, - 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, - 21404, 21404, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, - 16256, 16256, 16256, 16256, 25995, 26123, 26251, 26379, 45707, 45835, - 45963, 46091, 46219, 26763, 21404, 21404, 21404, 21404, 21404, 21404, - 42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, - 42396, 42396, 42396, 42396, 42396, 42396, 42524, 42524, 42524, 42524, - 42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, - 42524, 42524, 35083, 42635, 42763, 42891, 43019, 43147, 22036, 18052, - 18052, 18052, 18052, 18052, 10396, 10396, 45322, 45450, 45578, 18052, - 15109, 664, 10396, 10396, 10396, 16256, 16256, 16256, 10396, 16256, - 10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 3225, 3225, - 3161, 3161, 3161, 3161, 1109, 1238, 1109, 1238, 1109, 1238, - 16256, 16256, 16256, 16256, 524, 664, 664, 664, 10396, 18052, - 15109, 44042, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, - 10396, 10396, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, - 22036, 27541, 27670, 27670, 10396, 46347, 46475, 46603, 46731, 46859, - 46987, 47115, 47243, 47371, 47499, 47627, 47755, 47883, 48011, 48139, - 50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, - 50195, 50195, 50195, 50195, 50195, 50195, 50322, 50322, 50322, 50322, - 50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, - 50322, 50322, 11906, 11906, 11906, 19074, 19074, 11906, 11906, 16256, - 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 22277, 22277, - 22277, 22277, 22277, 22277, 22277, 22277, 22277, 1305, 22277, 22277, - 22277, 22277, 22277, 22277, 22277, 16256, 22277, 22277, 22277, 22277, - 22277, 16256, 22277, 16256, 664, 22036, 22036, 6807, 6807, 27541, - 27670, 27541, 27670, 27541, 27670, 27541, 27670, 27541, 27670, 27541, - 27670, 664, 664, 27541, 27670, 664, 664, 664, 664, 6807, - 6807, 6807, 664, 664, 1305, 1556, 3225, 3225, 3225, 16256, - 664, 922, 792, 664, 16256, 16256, 16256, 16256, 8834, 8962, - 9090, 9218, 9346, 9474, 9602, 9730, 9858, 9986, 10114, 1109, - 3225, 1238, 3225, 1109, 922, 922, 3225, 6683, 10396, 922, - 922, 16256, 10396, 3225, 3225, 3225, 3225, 10396, 10396, 16256, -}; - -static const jchar data1[] = { - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 128, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 128, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 128, - 5, 5, 128, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 128, 128, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 6529, 6529, 6529, - 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, - 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, - 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, - 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6658, 6658, 6658, - 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, - 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, - 6658, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 128, 128, 128, 128, 128, - 280, 408, 540, 128, 128, 128, 128, 651, 779, 907, - 1035, 1163, 1291, 1419, 1547, 1675, 1803, 1931, 2059, 2187, - 2315, 2443, 2571, 2699, 2827, 2955, 3083, 3211, 3339, 3467, - 3595, 3723, 3851, 3979, 4107, 4235, 4363, 4491, 4619, 4747, - 4875, 5003, 5131, 5259, 5387, 5515, 5643, 5771, 5899, 6027, - 6155, 6283, 128, 128, 128, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 8200, 8200, 8326, 8326, 8326, 540, 540, 540, - 8200, 8200, 8200, 8200, 8200, 8200, 8464, 8464, 8464, 8464, - 8464, 8464, 8464, 8464, 8326, 8326, 8326, 8326, 8326, 540, - 540, 8326, 8326, 8326, 8326, 8326, 8326, 8326, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 8326, 8326, - 8326, 8326, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 128, 128, 128, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 6410, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 128, 651, - 1163, 1803, 2315, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 128, 280, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 128, - 128, 6793, 6921, 7049, 7177, 7305, 7433, 7561, 7689, 7817, - 7945, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 8069, 8069, 8069, 8069, 8069, 8069, 128, - 128, 8069, 128, 8069, 8069, 8069, 8069, 8069, 8069, 8069, - 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, - 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, - 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, - 8069, 8069, 8069, 8069, 8069, 8069, 8069, 128, 8069, 8069, - 128, 128, 128, 8069, 128, 128, 8069, 8604, 8604, 8604, - 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, - 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, - 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, - 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, - 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, - 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, - 8604, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 8705, 8985, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8985, - 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, - 8705, 8985, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 128, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, - 8705, 8705, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 128, 128, 128, 128, 8705, 8705, 8705, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 128, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 128, 8705, - 128, 128, 128, 8705, 8705, 8705, 8705, 8705, 8705, 8705, - 128, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8705, 128, 8705, 8705, 128, 128, 8705, - 128, 128, 8705, 8705, 128, 128, 8705, 8705, 8705, 8705, - 128, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, - 8834, 8834, 8834, 128, 8834, 128, 8834, 8834, 8834, 8834, - 8705, 8705, 128, 8705, 8705, 8705, 8705, 128, 128, 8705, - 8705, 8705, 8705, 8705, 8705, 8705, 8705, 128, 8705, 8705, - 8705, 8705, 8705, 8705, 8705, 128, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, - 8834, 8834, 8705, 8705, 128, 8705, 8705, 8705, 8705, 128, - 8834, 8834, 8834, 8985, 8834, 8834, 8834, 8834, 8834, 8834, - 128, 128, 128, 128, 9097, 9225, 9353, 9481, 9609, 9737, - 9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, - 9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, - 9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, - 9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, - 9865, 9993, 10121, 10249, -}; - -static const jchar data2[] = { - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, -}; - -static const jchar data14[] = { - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, -}; - -static const int data_length[] = { - 3960, 1504, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, -1, -1, }; -static const jchar* data[] = { - data0, data1, data2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, data14, NULL, NULL}; - - -/** - * This is the attribute table for computing the numeric value of a - * character. The value is -1 if Unicode does not define a value, -2 - * if the value is not a positive integer, otherwise it is the value. - */ -static const jshort numValue0[] = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, -1, -1, -1, -1, -1, -1, 2, 3, -1, 1, -1, - -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, - 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, 0, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, -1, - 16, 10, 100, 1000, -1, -1, -2, -1, -1, 20, 30, 40, 50, - 60, 70, 80, 90, 10000, 17, 18, 19, -1, 0, 1, 2, 3, - 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 0, 4, 5, 6, 7, 8, 9, -1, -1, -1, 1, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 50, 100, 500, - 1000, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 50, 100, 500, 1000, 1000, 5000, 10000, -1, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, -1, -1, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 10, 0, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 20, 30, 5, 6, 7, 8, 9, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, -1, -1, -1, -}; - -static const jshort numValue1[] = { - -1, -1, -1, -1, -1, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, - 400, 500, 600, 700, 800, 900, 1000, 2000, 3000, 4000, 5000, 6000, 7000, - 8000, 9000, 10000, 20000, 30000, -3, -4, -5, -6, -7, -8, -1, -1, - -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, - -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, - 7, 8, 9, -}; - -static const jshort numValue2[] = { - -1, -1, -}; - -static const jshort numValue14[] = { - -1, -1, -1, -}; - -static const int numValue_length[] = { - 395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, }; -static const jshort* numValue[] = { - numValue0, numValue1, numValue2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, numValue14, NULL, NULL}; - - - -/** - * This is the attribute table for computing the uppercase representation - * of a character. The value is the difference between the character and - * its uppercase version. - */ -static const jshort upper0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, 0, 0, 0, 0, 0, 0, 0, 0, 743, 0, 0, - 0, 0, 0, -32, 121, 0, -1, 0, -232, 0, -300, 0, 0, - 0, 0, 0, 0, 0, 97, 0, 0, 0, 130, 0, 0, 0, - 0, 0, 56, 0, -1, -2, -79, 0, 0, 0, 0, -210, -206, - -205, -202, -203, -207, -209, -211, -213, -214, -218, -217, -219, 0, 0, - 0, 84, 0, 0, 0, 0, 0, -38, -37, -31, -64, -63, -62, - -57, 0, -47, -54, -86, -80, 7, 0, -96, 0, 0, 0, 0, - 0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -59, 8, 0, 74, 86, 100, - 128, 112, 126, 8, 0, 9, 0, 0, -7205, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -16, -16, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -}; - -static const jshort upper1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const jshort upper2[] = { - 0, 0, -}; - -static const jshort upper14[] = { - 0, 0, 0, -}; - -static const int upper_length[] = { - 395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, }; -static const jshort* upper[] = { - upper0, upper1, upper2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, upper14, NULL, NULL}; - - -/** - * This is the attribute table for computing the lowercase representation - * of a character. The value is the difference between the character and - * its lowercase version. - */ -static const jshort lower0[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 0, 0, 0, 1, 0, -199, 0, -121, 0, 210, 206, - 205, 79, 202, 203, 207, 0, 211, 209, 213, 0, 214, 218, 217, - 219, 0, 0, 2, 1, 0, 0, -97, -56, -130, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 38, 37, 64, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -60, 0, -7, 80, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, - 0, 0, 0, 0, -8, 0, -74, -9, 0, -86, -100, -112, -128, - -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -7517, -8383, -8262, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -}; - -static const jshort lower1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const jshort lower2[] = { - 0, 0, -}; - -static const jshort lower14[] = { - 0, 0, 0, -}; - -static const int lower_length[] = { - 395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, }; -static const jshort* lower[] = { - lower0, lower1, lower2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, lower14, NULL, NULL}; - - -/** - * This is the attribute table for computing the directionality class - * of a character. At present, the value is in the range 0 - 18 if the - * character has a direction, otherwise it is -1. - */ -static const jbyte direction0[] = { - 9, 11, 10, 12, 12, 13, 5, 5, 13, 13, 5, 7, 5, 4, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 13, 0, 13, 13, 5, 3, 3, 0, 3, 13, 13, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 8, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, - 0, 13, 1, 1, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 8, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 1, 13, 13, - 13, 12, 10, 14, 16, 18, 15, 17, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 2, -}; - -static const jbyte direction1[] = { - 0, -1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 8, 9, 13, 0, 0, 0, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, -}; - -static const jbyte direction2[] = { - 0, -1, -}; - -static const jbyte direction14[] = { - -1, 9, 8, -}; - -static const int direction_length[] = { - 395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, }; -static const jbyte* direction[] = { - direction0, direction1, direction2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, direction14, NULL, NULL}; - - -/** - * This is the listing of titlecase special cases (all other character - * can use <code>upper</code> to determine their titlecase). The listing - * is a sequence of character pairs; converting the first character of the - * pair to titlecase produces the second character. - */ -static const jchar title[] = { - 452, 453, 453, 453, 454, 453, 455, 456, 456, 456, - 457, 456, 458, 459, 459, 459, 460, 459, 497, 498, - 498, 498, 499, 498, - }; -/** Length of title. */ -static const int title_length = 24; - -#endif /* __JAVA_CHARTABLES_H__ */ diff --git a/libjava/include/java-cpool.h b/libjava/include/java-cpool.h deleted file mode 100644 index 4122502..0000000 --- a/libjava/include/java-cpool.h +++ /dev/null @@ -1,134 +0,0 @@ -// java-cpool.h - Constant pool parsing header. -*- c++ -*- - -/* Copyright (C) 1999, 2000 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JAVA_CPOOL_H__ -#define __JAVA_CPOOL_H__ - -#include <gcj/javaprims.h> - -// we rename these, to avoid polluting the name space -#define JV_CONSTANT_Undefined (0L) -#define JV_CONSTANT_Utf8 (1L) -#define JV_CONSTANT_Unicode (2L) -#define JV_CONSTANT_Integer (3L) -#define JV_CONSTANT_Float (4L) -#define JV_CONSTANT_Long (5L) -#define JV_CONSTANT_Double (6L) -#define JV_CONSTANT_Class (7L) -#define JV_CONSTANT_String (8L) -#define JV_CONSTANT_Fieldref (9L) -#define JV_CONSTANT_Methodref (10L) -#define JV_CONSTANT_InterfaceMethodref (11L) -#define JV_CONSTANT_NameAndType (12L) -#define JV_CONSTANT_ResolvedFlag (16L) -#define JV_CONSTANT_LazyFlag (32L) -#define JV_CONSTANT_ResolvedString (16L | 8L) -#define JV_CONSTANT_ResolvedClass (16L | 7L) - -extern inline void -_Jv_storeIndexes (_Jv_word *data, - _Jv_ushort index0, - _Jv_ushort index1) -{ - data->i = (((jint)index0) << 16) | (jint) index1; -} - -extern inline void -_Jv_loadIndexes (const _Jv_word *data, - _Jv_ushort& index0, - _Jv_ushort& index1) -{ - jint udata = data->i; - - _Jv_uint uindex0 = ((udata >> 16) & 0xffff); - _Jv_uint uindex1 = udata & 0xffff; - - index0 = uindex0; - index1 = uindex1; -} - -extern inline void -_Jv_storeFloat (_Jv_word *data, jfloat f) -{ - data->f = f; -} - -extern inline jfloat -_Jv_loadFloat (_Jv_word *data) -{ - return data->f; -} - -extern inline void -_Jv_storeInt (_Jv_word *data, jint i) -{ - data->i = i; -} - -extern inline jint -_Jv_loadInt (_Jv_word *data) -{ - return data->i; -} - -extern inline void -_Jv_storeLong (_Jv_word *data, jlong l) -{ -#if SIZEOF_VOID_P == 8 - data[0].l = l; -#else - _Jv_word2 tmp; - tmp.l = l; - data[0].ia[0] = tmp.ia[0]; - data[1].ia[0] = tmp.ia[1]; -#endif -} - -extern inline jlong -_Jv_loadLong (_Jv_word *data) -{ -#if SIZEOF_VOID_P == 8 - return data -> l; -#else - _Jv_word2 tmp; - tmp.ia[0] = data[0].ia[0]; - tmp.ia[1] = data[1].ia[0]; - return tmp.l; -#endif -} - -extern inline void -_Jv_storeDouble (_Jv_word *data, jdouble d) -{ -#if SIZEOF_VOID_P == 8 - data[0].d = d; -#else - _Jv_word2 tmp; - tmp.d = d; - data[0].ia[0] = tmp.ia[0]; - data[1].ia[0] = tmp.ia[1]; -#endif -} - -extern inline jdouble -_Jv_loadDouble (_Jv_word *data) -{ -#if SIZEOF_VOID_P == 8 - return data -> d; -#else - _Jv_word2 tmp; - tmp.ia[0] = data[0].ia[0]; - tmp.ia[1] = data[1].ia[0]; - return tmp.d; -#endif -} - - -#endif /* __JAVA_CPOOL_H__ */ diff --git a/libjava/include/java-insns.h b/libjava/include/java-insns.h deleted file mode 100644 index 824e441..0000000 --- a/libjava/include/java-insns.h +++ /dev/null @@ -1,248 +0,0 @@ -// java-insns.h - Instruction encodings. This is -*- c++ -*- - -/* Copyright (C) 1999, 2001, 2002, 2006 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JAVA_INSNS_H__ -#define __JAVA_INSNS_H__ - -enum java_opcode -{ - op_nop = 0x00, - op_aconst_null = 0x01, - op_iconst_m1 = 0x02, - op_iconst_0 = 0x03, - op_iconst_1 = 0x04, - op_iconst_2 = 0x05, - op_iconst_3 = 0x06, - op_iconst_4 = 0x07, - op_iconst_5 = 0x08, - op_lconst_0 = 0x09, - op_lconst_1 = 0x0a, - op_fconst_0 = 0x0b, - op_fconst_1 = 0x0c, - op_fconst_2 = 0x0d, - op_dconst_0 = 0x0e, - op_dconst_1 = 0x0f, - op_bipush = 0x10, - op_sipush = 0x11, - op_ldc = 0x12, - op_ldc_w = 0x13, - op_ldc2_w = 0x14, - op_iload = 0x15, - op_lload = 0x16, - op_fload = 0x17, - op_dload = 0x18, - op_aload = 0x19, - op_iload_0 = 0x1a, - op_iload_1 = 0x1b, - op_iload_2 = 0x1c, - op_iload_3 = 0x1d, - op_lload_0 = 0x1e, - op_lload_1 = 0x1f, - op_lload_2 = 0x20, - op_lload_3 = 0x21, - op_fload_0 = 0x22, - op_fload_1 = 0x23, - op_fload_2 = 0x24, - op_fload_3 = 0x25, - op_dload_0 = 0x26, - op_dload_1 = 0x27, - op_dload_2 = 0x28, - op_dload_3 = 0x29, - op_aload_0 = 0x2a, - op_aload_1 = 0x2b, - op_aload_2 = 0x2c, - op_aload_3 = 0x2d, - op_iaload = 0x2e, - op_laload = 0x2f, - op_faload = 0x30, - op_daload = 0x31, - op_aaload = 0x32, - op_baload = 0x33, - op_caload = 0x34, - op_saload = 0x35, - op_istore = 0x36, - op_lstore = 0x37, - op_fstore = 0x38, - op_dstore = 0x39, - op_astore = 0x3a, - op_istore_0 = 0x3b, - op_istore_1 = 0x3c, - op_istore_2 = 0x3d, - op_istore_3 = 0x3e, - op_lstore_0 = 0x3f, - op_lstore_1 = 0x40, - op_lstore_2 = 0x41, - op_lstore_3 = 0x42, - op_fstore_0 = 0x43, - op_fstore_1 = 0x44, - op_fstore_2 = 0x45, - op_fstore_3 = 0x46, - op_dstore_0 = 0x47, - op_dstore_1 = 0x48, - op_dstore_2 = 0x49, - op_dstore_3 = 0x4a, - op_astore_0 = 0x4b, - op_astore_1 = 0x4c, - op_astore_2 = 0x4d, - op_astore_3 = 0x4e, - op_iastore = 0x4f, - op_lastore = 0x50, - op_fastore = 0x51, - op_dastore = 0x52, - op_aastore = 0x53, - op_bastore = 0x54, - op_castore = 0x55, - op_sastore = 0x56, - op_pop = 0x57, - op_pop2 = 0x58, - op_dup = 0x59, - op_dup_x1 = 0x5a, - op_dup_x2 = 0x5b, - op_dup2 = 0x5c, - op_dup2_x1 = 0x5d, - op_dup2_x2 = 0x5e, - op_swap = 0x5f, - op_iadd = 0x60, - op_ladd = 0x61, - op_fadd = 0x62, - op_dadd = 0x63, - op_isub = 0x64, - op_lsub = 0x65, - op_fsub = 0x66, - op_dsub = 0x67, - op_imul = 0x68, - op_lmul = 0x69, - op_fmul = 0x6a, - op_dmul = 0x6b, - op_idiv = 0x6c, - op_ldiv = 0x6d, - op_fdiv = 0x6e, - op_ddiv = 0x6f, - op_irem = 0x70, - op_lrem = 0x71, - op_frem = 0x72, - op_drem = 0x73, - op_ineg = 0x74, - op_lneg = 0x75, - op_fneg = 0x76, - op_dneg = 0x77, - op_ishl = 0x78, - op_lshl = 0x79, - op_ishr = 0x7a, - op_lshr = 0x7b, - op_iushr = 0x7c, - op_lushr = 0x7d, - op_iand = 0x7e, - op_land = 0x7f, - op_ior = 0x80, - op_lor = 0x81, - op_ixor = 0x82, - op_lxor = 0x83, - op_iinc = 0x84, - op_i2l = 0x85, - op_i2f = 0x86, - op_i2d = 0x87, - op_l2i = 0x88, - op_l2f = 0x89, - op_l2d = 0x8a, - op_f2i = 0x8b, - op_f2l = 0x8c, - op_f2d = 0x8d, - op_d2i = 0x8e, - op_d2l = 0x8f, - op_d2f = 0x90, - op_i2b = 0x91, - op_i2c = 0x92, - op_i2s = 0x93, - op_lcmp = 0x94, - op_fcmpl = 0x95, - op_fcmpg = 0x96, - op_dcmpl = 0x97, - op_dcmpg = 0x98, - op_ifeq = 0x99, - op_ifne = 0x9a, - op_iflt = 0x9b, - op_ifge = 0x9c, - op_ifgt = 0x9d, - op_ifle = 0x9e, - op_if_icmpeq = 0x9f, - op_if_icmpne = 0xa0, - op_if_icmplt = 0xa1, - op_if_icmpge = 0xa2, - op_if_icmpgt = 0xa3, - op_if_icmple = 0xa4, - op_if_acmpeq = 0xa5, - op_if_acmpne = 0xa6, - op_goto = 0xa7, - op_jsr = 0xa8, - op_ret = 0xa9, - op_tableswitch = 0xaa, - op_lookupswitch = 0xab, - op_ireturn = 0xac, - op_lreturn = 0xad, - op_freturn = 0xae, - op_dreturn = 0xaf, - op_areturn = 0xb0, - op_return = 0xb1, - op_getstatic = 0xb2, - op_putstatic = 0xb3, - op_getfield = 0xb4, - op_putfield = 0xb5, - op_invokevirtual = 0xb6, - op_invokespecial = 0xb7, - op_invokestatic = 0xb8, - op_invokeinterface = 0xb9, - op_breakpoint = 0xba, - op_new = 0xbb, - op_newarray = 0xbc, - op_anewarray = 0xbd, - op_arraylength = 0xbe, - op_athrow = 0xbf, - op_checkcast = 0xc0, - op_instanceof = 0xc1, - op_monitorenter = 0xc2, - op_monitorexit = 0xc3, - op_wide = 0xc4, - op_multianewarray = 0xc5, - op_ifnull = 0xc6, - op_ifnonnull = 0xc7, - op_goto_w = 0xc8, - op_jsr_w = 0xc9, - - // new opcodes - - op_putfield_1 = 0xca, - op_putfield_2 = 0xcb, - op_putfield_4 = 0xcc, - op_putfield_8 = 0xcd, - op_putfield_a = 0xce, - - op_putstatic_1 = 0xcf, - op_putstatic_2 = 0xd0, - op_putstatic_4 = 0xd1, - op_putstatic_8 = 0xd2, - op_putstatic_a = 0xd3, - - op_getfield_1 = 0xd4, - op_getfield_2s = 0xd5, - op_getfield_2u = 0xd6, - op_getfield_4 = 0xd7, - op_getfield_8 = 0xd8, - op_getfield_a = 0xd9, - - op_getstatic_1 = 0xda, - op_getstatic_2s = 0xdb, - op_getstatic_2u = 0xdc, - op_getstatic_4 = 0xdd, - op_getstatic_8 = 0xde, - op_getstatic_a = 0xdf -}; - -#endif /* __JAVA_INSNS_H__ */ diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h deleted file mode 100644 index c088e9f..0000000 --- a/libjava/include/java-interp.h +++ /dev/null @@ -1,588 +0,0 @@ -// java-interp.h - Header file for the bytecode interpreter. -*- c++ -*- - -/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JAVA_INTERP_H__ -#define __JAVA_INTERP_H__ - -#include <jvm.h> -#include <java-cpool.h> -#include <gnu/gcj/runtime/NameFinder.h> - -enum _Jv_FrameType -{ - frame_native, - frame_interpreter, - frame_proxy -}; - -#ifdef INTERPRETER - -#pragma interface - -#include <java/lang/Class.h> -#include <java/lang/ClassLoader.h> -#include <java/lang/reflect/Modifier.h> -#include <java/lang/Thread.h> -#include <gnu/gcj/RawData.h> - -// Define this to get the direct-threaded interpreter. If undefined, -// we revert to a basic bytecode interpreter. The former is faster -// but uses more memory. -#define DIRECT_THREADED - -#include <ffi.h> - -struct _Jv_ResolvedMethod; - -void _Jv_InitInterpreter (); -void _Jv_DefineClass (jclass, jbyteArray, jint, jint, - java::security::ProtectionDomain *, - _Jv_Utf8Const **); - -void _Jv_InitField (jobject, jclass, int); -void * _Jv_AllocMethodInvocation (jsize size); -int _Jv_count_arguments (_Jv_Utf8Const *signature, - jboolean staticp = true); -void _Jv_VerifyMethod (_Jv_InterpMethod *method); -void _Jv_CompileMethod (_Jv_InterpMethod* method); -int _Jv_init_cif (_Jv_Utf8Const* signature, - int arg_count, - jboolean staticp, - ffi_cif *cif, - ffi_type **arg_types, - ffi_type **rtype_p); - -/* the interpreter is written in C++, primarily because it makes it easy for - * the entire thing to be "friend" with class Class. */ - -class _Jv_InterpClass; -class _Jv_InterpMethod; - -// Before a method is "compiled" we store values as the bytecode PC, -// an int. Afterwards we store them as pointers into the prepared -// code itself. -union _Jv_InterpPC -{ - int i; - void *p; -}; - -class _Jv_InterpException -{ - _Jv_InterpPC start_pc; - _Jv_InterpPC end_pc; - _Jv_InterpPC handler_pc; - _Jv_InterpPC handler_type; - - friend class _Jv_ClassReader; - friend class _Jv_InterpMethod; - friend class _Jv_BytecodeVerifier; -}; - -// Base class for method representations. Subclasses are interpreted -// and JNI methods. -class _Jv_MethodBase -{ -protected: - // The class which defined this method. - jclass defining_class; - - // The method description. - _Jv_Method *self; - - // Size of raw arguments. - _Jv_ushort args_raw_size; - - friend class _Jv_InterpreterEngine; - -public: - _Jv_Method *get_method () - { - return self; - } -}; - -// The type of the PC depends on whether we're doing direct threading -// or a more ordinary bytecode interpreter. -#ifdef DIRECT_THREADED -// Slot in the "compiled" form of the bytecode. -union insn_slot -{ - // Address of code. - void *insn; - // An integer value used by an instruction. - jint int_val; - // A pointer value used by an instruction. - void *datum; -}; - -typedef insn_slot *pc_t; -#else -typedef unsigned char *pc_t; -#endif - - -// This structure holds the bytecode pc and corresponding source code -// line number. An array (plus length field) of this structure is put -// in each _Jv_InterpMethod and used to resolve the (internal) program -// counter of the interpreted method to an actual java source file -// line. -struct _Jv_LineTableEntry -{ - union - { - pc_t pc; - int bytecode_pc; - }; - int line; -}; - -// This structure holds local variable information. -// Like _Jv_LineTableEntry above, it is remapped when the method is -// compiled for direct threading. -struct _Jv_LocalVarTableEntry -{ - // First PC value at which variable is live - union - { - pc_t pc; - int bytecode_pc; - }; - - // length of visibility of variable - int length; - - // variable name - char *name; - - // type description - char *descriptor; - - // stack slot number (long and double occupy slot and slot + 1) - int slot; -}; - -class _Jv_InterpMethod : public _Jv_MethodBase -{ - // Breakpoint instruction - static pc_t breakpoint_insn; -#ifdef DIRECT_THREADED - static insn_slot bp_insn_slot; - -public: - // Mutex to prevent a data race between threads when rewriting - // instructions. See interpret-run.cc for an explanation of its use. - static _Jv_Mutex_t rewrite_insn_mutex; - - // The count of threads executing this method. - long thread_count; - -private: - -#else - static unsigned char bp_insn_opcode; -#endif - - _Jv_ushort max_stack; - _Jv_ushort max_locals; - int code_length; - - _Jv_ushort exc_count; - bool is_15; - - // Length of the line_table - when this is zero then line_table is NULL. - int line_table_len; - _Jv_LineTableEntry *line_table; - - // The local variable table length and the table itself - int local_var_table_len; - _Jv_LocalVarTableEntry *local_var_table; - - pc_t prepared; - int number_insn_slots; - - unsigned char* bytecode () - { - return - ((unsigned char*)this) - + ROUND((sizeof (_Jv_InterpMethod) - + exc_count*sizeof (_Jv_InterpException)), 4); - } - - _Jv_InterpException * exceptions () - { - return (_Jv_InterpException*) (this+1); - } - - static size_t size (int exc_count, int code_length) - { - return - ROUND ((sizeof (_Jv_InterpMethod) - + (exc_count * sizeof (_Jv_InterpException))), 4) - + code_length; - } - - // return the method's invocation pointer (a stub). - void *ncode (jclass); - void compile (const void * const *); - -#if FFI_NATIVE_RAW_API -# define INTERP_FFI_RAW_TYPE ffi_raw -#else -# define INTERP_FFI_RAW_TYPE ffi_java_raw -#endif - - static void run_normal (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); - static void run_synch_object (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); - static void run_class (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); - static void run_synch_class (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); - - static void run_normal_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); - static void run_synch_object_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, - void*); - static void run_class_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); - static void run_synch_class_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, - void*); - - static void run (void *, INTERP_FFI_RAW_TYPE *, _Jv_InterpMethod *); - static void run_debug (void *, INTERP_FFI_RAW_TYPE *, _Jv_InterpMethod *); - - - - // Returns source file line number for given PC value, or -1 if line - // number info is unavailable. - int get_source_line(pc_t mpc); - - public: - - // Convenience function for indexing bytecode PC/insn slots in - // line tables for JDWP - jlong insn_index (pc_t pc); - - // Helper function used to check if there is a handler for an exception - // present at this code index - jboolean check_handler (pc_t *pc, _Jv_InterpMethod *meth, - java::lang::Throwable *ex); - - /* Get the line table for this method. - * start is the lowest index in the method - * end is the highest index in the method - * line_numbers is an array to hold the list of source line numbers - * code_indices is an array to hold the corresponding list of code indices - */ - void get_line_table (jlong& start, jlong& end, jintArray& line_numbers, - jlongArray& code_indices); - - int get_max_locals () - { - return static_cast<int> (max_locals); - } - - /* Get info for a local variable of this method. - * If there is no loca_var_table for this method it will return -1. - * table_slot indicates which slot in the local_var_table to get, if there is - * no variable at this location it will return 0. - * Otherwise, it will return the number of table slots after the selected - * slot, indexed from 0. - * - * Example: there are 5 slots in the table, you request slot 0 so it will - * return 4. - */ - int get_local_var_table (char **name, char **sig, char **generic_sig, - jlong *startloc, jint *length, jint *slot, - int table_slot); - - /* Installs a break instruction at the given code index. Returns - the pc_t of the breakpoint or NULL if index is invalid. */ - pc_t install_break (jlong index); - - // Gets the instruction at the given index - pc_t get_insn (jlong index); - - /* Writes the given instruction at the given code index. Returns - the insn or NULL if index is invalid. */ - pc_t set_insn (jlong index, pc_t insn); - - // Is the given location in this method a breakpoint? - bool breakpoint_at (jlong index); - -#ifdef DIRECT_THREADED - friend void _Jv_CompileMethod (_Jv_InterpMethod*); -#endif - - friend class _Jv_ClassReader; - friend class _Jv_BytecodeVerifier; - friend class _Jv_StackTrace; - friend class _Jv_InterpreterEngine; - -#ifdef JV_MARKOBJ_DECL - friend JV_MARKOBJ_DECL; -#endif -}; - -class _Jv_InterpClass -{ - _Jv_MethodBase **interpreted_methods; - _Jv_ushort *field_initializers; - jstring source_file_name; - _Jv_ClosureList **closures; - - friend class _Jv_ClassReader; - friend class _Jv_InterpMethod; - friend class _Jv_StackTrace; - friend class _Jv_InterpreterEngine; - - friend void _Jv_InitField (jobject, jclass, int); -#ifdef JV_MARKOBJ_DECL - friend JV_MARKOBJ_DECL; -#endif - - friend _Jv_MethodBase ** _Jv_GetFirstMethod (_Jv_InterpClass *klass); - friend jstring _Jv_GetInterpClassSourceFile (jclass); -}; - -extern inline _Jv_MethodBase ** -_Jv_GetFirstMethod (_Jv_InterpClass *klass) -{ - return klass->interpreted_methods; -} - -struct _Jv_ResolvedMethod -{ - jint stack_item_count; - jclass klass; - _Jv_Method* method; - - // a resolved method holds the cif in-line, so that _Jv_MarkObj just needs - // to mark the resolved method to hold on to the cif. Some memory could be - // saved by keeping a cache of cif's, since many will be the same. - ffi_cif cif; - ffi_type * arg_types[0]; -}; - -class _Jv_JNIMethod : public _Jv_MethodBase -{ - // The underlying function. If NULL we have to look for the - // function. - void *function; - - // This is the CIF used by the JNI function. - ffi_cif jni_cif; - - // These are the argument types used by the JNI function. - ffi_type **jni_arg_types; - - // This function is used when making a JNI call from the interpreter. - static void call (ffi_cif *, void *, INTERP_FFI_RAW_TYPE *, void *); - - void *ncode (jclass); - - friend class _Jv_ClassReader; - friend class _Jv_InterpreterEngine; - -#ifdef JV_MARKOBJ_DECL - friend JV_MARKOBJ_DECL; -#endif - -public: - // FIXME: this is ugly. - void set_function (void *f) - { - function = f; - } -}; - -// The composite call stack as represented by a linked list of frames -class _Jv_Frame -{ -public: - java::lang::Thread *thread; - - union - { - _Jv_MethodBase *self; - void *meth; - _Jv_Method *proxyMethod; - }; - - //The full list of frames, JNI and interpreted - _Jv_Frame *next; - _Jv_FrameType frame_type; - - _Jv_Frame (_Jv_MethodBase *s, java::lang::Thread *thr, _Jv_FrameType type) - { - self = s; - frame_type = type; - next = (_Jv_Frame *) thr->frame; - thr->frame = (gnu::gcj::RawData *) this; - thread = thr; - } - - ~_Jv_Frame () - { - thread->frame = (gnu::gcj::RawData *) next; - } - - int depth () - { - int depth = 0; - struct _Jv_Frame *f; - for (f = this; f != NULL; f = f->next) - ++depth; - - return depth; - } -}; - -// An interpreted frame in the call stack -class _Jv_InterpFrame : public _Jv_Frame -{ -public: - - // Keep the purely interpreted list around so as not to break backtraces - _Jv_InterpFrame *next_interp; - - union - { - pc_t pc; - jclass proxyClass; - }; - - // Pointer to the actual pc value. - pc_t *pc_ptr; - - //Debug info for local variables. - _Jv_word *locals; - char *locals_type; - - // Object pointer for this frame ("this") - jobject obj_ptr; - - _Jv_InterpFrame (void *meth, java::lang::Thread *thr, jclass proxyCls = NULL, - pc_t *pc = NULL, - _Jv_FrameType frame_type = frame_interpreter) - : _Jv_Frame (reinterpret_cast<_Jv_MethodBase *> (meth), thr, - frame_type) - { - next_interp = (_Jv_InterpFrame *) thr->interp_frame; - proxyClass = proxyCls; - thr->interp_frame = (gnu::gcj::RawData *) this; - obj_ptr = NULL; - pc_ptr = pc; - } - - ~_Jv_InterpFrame () - { - thread->interp_frame = (gnu::gcj::RawData *) next_interp; - } - - jobject get_this_ptr () - { - return obj_ptr; - } - - pc_t get_pc () - { - pc_t pc; - - // If the PC_PTR is NULL, we are not debugging. - if (pc_ptr == NULL) - pc = 0; - else - pc = *pc_ptr - 1; - - return pc; - } -}; - -// A native frame in the call stack really just a placeholder -class _Jv_NativeFrame : public _Jv_Frame -{ -public: - - _Jv_NativeFrame (_Jv_JNIMethod *s, java::lang::Thread *thr) - : _Jv_Frame (s, thr, frame_native) - { - } -}; - -#ifdef DIRECT_THREADED -// This class increments and decrements the thread_count field in an -// interpreted method. On entry to the interpreter a -// ThreadCountAdjuster is created when increments the thread_count in -// the current method and uses the next_interp field in the frame to -// find the previous method and decrement its thread_count. -class ThreadCountAdjuster -{ - - // A class used to handle the rewrite_insn_mutex while we're - // adjusting the thread_count in a method. Unlocking the mutex in a - // destructor ensures that it's unlocked even if (for example) a - // segfault occurs in the critical section. - class MutexLock - { - private: - _Jv_Mutex_t *mutex; - public: - MutexLock (_Jv_Mutex_t *m) - { - mutex = m; - _Jv_MutexLock (mutex); - } - ~MutexLock () - { - _Jv_MutexUnlock (mutex); - } - }; - - _Jv_InterpMethod *method; - _Jv_InterpMethod *next_method; - -public: - - ThreadCountAdjuster (_Jv_InterpMethod *m, _Jv_InterpFrame *fr) - { - MutexLock lock (&::_Jv_InterpMethod::rewrite_insn_mutex); - - method = m; - next_method = NULL; - - _Jv_InterpFrame *next_interp = fr->next_interp; - - // Record the fact that we're executing this method and that - // we're no longer executing the method that called us. - method->thread_count++; - - if (next_interp && next_interp->frame_type == frame_interpreter) - { - next_method - = reinterpret_cast<_Jv_InterpMethod *> (next_interp->meth); - next_method->thread_count--; - } - } - - ~ThreadCountAdjuster () - { - MutexLock lock (&::_Jv_InterpMethod::rewrite_insn_mutex); - - // We're going to return to the method that called us, so bump its - // thread_count and decrement our own. - - method->thread_count--; - - if (next_method) - next_method->thread_count++; - } -}; -#endif // DIRECT_THREADED - -#endif /* INTERPRETER */ - -#endif /* __JAVA_INTERP_H__ */ diff --git a/libjava/include/java-props.h b/libjava/include/java-props.h deleted file mode 100644 index f552e1b..0000000 --- a/libjava/include/java-props.h +++ /dev/null @@ -1,33 +0,0 @@ -// java-props.h - Properties -*- c++ -*- - -/* Copyright (C) 1999 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JAVA_PROPS_H__ -#define __JAVA_PROPS_H__ - -typedef struct -{ - char *key; - size_t key_length; - char *value; - size_t value_length; -} property_pair; - -// Set to NULL-terminated list of properties set at compile time. -extern const char **_Jv_Compiler_Properties; -extern int _Jv_Properties_Count; - -// Properties taken from the user's environment. -extern property_pair *_Jv_Environment_Properties; - -// Module load path. -extern char *_Jv_Module_Load_Path; - -#endif - diff --git a/libjava/include/java-stack.h b/libjava/include/java-stack.h deleted file mode 100644 index 40ce825..0000000 --- a/libjava/include/java-stack.h +++ /dev/null @@ -1,177 +0,0 @@ -// java-stack.h - Definitions for unwinding & inspecting the call stack. - -/* Copyright (C) 2005, 2006 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JV_STACKTRACE_H__ -#define __JV_STACKTRACE_H__ - -#include <stdlib.h> -#include <unwind.h> - -#include <gcj/cni.h> -#include <gcj/javaprims.h> - -#include <java-interp.h> - -#include <java/lang/Class.h> -#include <java/lang/StackTraceElement.h> -#include <java/lang/Throwable.h> -#include <java/lang/Thread.h> -#include <java/util/IdentityHashMap.h> - -#include <gnu/gcj/runtime/NameFinder.h> - -using namespace gnu::gcj::runtime; -using namespace java::lang; - -extern "Java" -{ - namespace gnu - { - namespace classpath - { - class VMStackWalker; - } - } -} - -#ifdef INTERPRETER -struct _Jv_InterpFrameInfo -{ - _Jv_InterpMethod *meth; - pc_t pc; -}; -#endif - -struct _Jv_StackFrame -{ - _Jv_FrameType type; /* Native or interpreted. */ - union { -#ifdef INTERPRETER - _Jv_InterpFrameInfo interp; -#endif - struct { - jclass proxyClass; - _Jv_Method *proxyMethod; - }; - struct { - void *ip; - void *start_ip; - }; - }; - jclass klass; - _Jv_Method *meth; -}; - -struct _Jv_UnwindState; -typedef _Unwind_Reason_Code (*_Jv_TraceFn) (_Jv_UnwindState *); - -struct _Jv_UnwindState -{ - jint length; // length of FRAMES - jint pos; // current position in FRAMES - _Jv_StackFrame *frames; // array of stack frame data to be filled. -#ifdef INTERPRETER - _Jv_InterpFrame *interp_frame; // current frame in the interpreter stack. -#endif - _Jv_TraceFn trace_function; // function to call back after each frame - // is enumerated. May be NULL. - void *trace_data; // additional state data for trace_function. - - _Jv_UnwindState (jint ln) - { - length = ln; - pos = 0; - frames = NULL; -#ifdef INTERPRETER - Thread *thread = Thread::currentThread(); - // Check for NULL currentThread(), in case an exception is created - // very early during the runtime startup. - if (thread) - interp_frame = (_Jv_InterpFrame *) thread->interp_frame; - else - interp_frame = NULL; -#endif - trace_function = NULL; - trace_data = NULL; - } -}; - -class _Jv_StackTrace -{ -private: - int length; - _Jv_StackFrame frames[]; - - static java::util::IdentityHashMap *ncodeMap; - static void UpdateNCodeMap (); - static jclass ClassForFrame (_Jv_StackFrame *frame); - static void FillInFrameInfo (_Jv_StackFrame *frame); - static void getLineNumberForFrame(_Jv_StackFrame *frame, NameFinder *finder, - jstring *sourceFileName, jint *lineNum, - jstring *methodName); - - static _Unwind_Reason_Code UnwindTraceFn (struct _Unwind_Context *context, - void *state_ptr); - - static _Unwind_Reason_Code calling_class_trace_fn (_Jv_UnwindState *state); - static _Unwind_Reason_Code non_system_trace_fn (_Jv_UnwindState *state); - static _Unwind_Reason_Code accesscontrol_trace_fn (_Jv_UnwindState *state); - static _Unwind_Reason_Code stackwalker_trace_fn (_Jv_UnwindState *state); - static _Unwind_Reason_Code stackwalker_nnl_trace_fn (_Jv_UnwindState *state); - -public: - static _Jv_StackTrace *GetStackTrace (void); - static JArray< ::java::lang::StackTraceElement *>* - GetStackTraceElements (_Jv_StackTrace *trace, - java::lang::Throwable *throwable); - static jclass GetCallingClass (jclass); - static void GetCallerInfo (jclass checkClass, jclass *, _Jv_Method **); - static ClassLoader *GetFirstNonSystemClassLoader (void); - static jobjectArray GetAccessControlStack (); - static JArray<jclass> *GetStackWalkerStack (); - static jclass GetStackWalkerCallingClass (); - static ClassLoader *GetStackWalkerFirstNonNullLoader (); - - friend jclass _Jv_GetMethodDeclaringClass (jmethodID); - friend class gnu::classpath::VMStackWalker; -}; - -// Information about a given address. -struct _Jv_AddrInfo -{ - // File name of the defining module. - const char *file_name; - - // Base address of the loaded module. - void *base; - - // Name of the nearest symbol. - const char *sym_name; - - // Address of the nearest symbol. - void *sym_addr; - - ~_Jv_AddrInfo (void) - { - // On systems with a real dladdr(), the file and symbol names given by - // _Jv_platform_dladdr() are not dynamically allocated. On Windows, - // they are. - -#ifdef WIN32 - if (file_name) - free ((void *)file_name); - - if (sym_name) - free ((void *)sym_name); -#endif /* WIN32 */ - } -}; - -#endif /* __JV_STACKTRACE_H__ */ diff --git a/libjava/include/jni_md.h b/libjava/include/jni_md.h deleted file mode 100644 index 7709c0b..0000000 --- a/libjava/include/jni_md.h +++ /dev/null @@ -1,165 +0,0 @@ -/* jni_md.h - Copyright (C) 2001, 2005, 2007, 2010, 2011 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -As a special exception, if you link this library with other files to -produce an executable, this library does not by itself cause the -resulting executable to be covered by the GNU General Public License. -This exception does not however invalidate any other reasons why the -executable file might be covered by the GNU General Public License. */ - -#ifndef __GCJ_JNI_MD_H__ -#define __GCJ_JNI_MD_H__ - -#include <gcj/libgcj-config.h> - -#ifdef __GCJ_JNI_IMPL__ - -/* If __GCJ_JNI_IMPL__ is defined, then we assume that we're building - libgcj itself, and we include headers which taint the namespace - more than is acceptable for the ordinary JNI user. */ -#include <gcj/javaprims.h> -#include <gcj/array.h> -#include <gnu/gcj/runtime/JNIWeakRef.h> - -typedef gnu::gcj::runtime::JNIWeakRef *jweak; - -typedef struct _Jv_JNIEnv JNIEnv; -typedef struct _Jv_JavaVM JavaVM; - -#define JNI_TRUE true -#define JNI_FALSE false - -/* We defined jobject and friends, so don't redefine them in jni.h. */ -#define _CLASSPATH_VM_JNI_TYPES_DEFINED - -/* We defined jmethodID and and jfieldID, so don't redefine them in - jni.h. */ -#define _CLASSPATH_VM_INTERNAL_TYPES_DEFINED - -/* Contents of the JNIEnv; but only inside the implementation. */ -#define _CLASSPATH_JNIENV_CONTENTS \ - /* The current exception. */ \ - jthrowable ex; \ - \ - /* The chain of local frames. */ \ - struct _Jv_JNI_LocalFrame *locals; \ - \ - /* The bottom-most element of the chain, initialized with the env and \ - reused between non-nesting JNI calls. */ \ - struct _Jv_JNI_LocalFrame *bottom_locals; - -/* JNI calling convention. Also defined in javaprims.h. */ -#ifndef JNICALL -#if (defined (_WIN32) || defined (__WIN32__) || defined (WIN32)) \ - && !defined (_WIN64) - #define JNICALL __stdcall - #else - #define JNICALL - #endif -#endif - -#else /* __GCJ_JNI_IMPL__ */ - -# ifdef __GNUC__ - -/* If we're using gcc, we can use a platform-independent scheme to get - the right integer types. FIXME: this is not always correct, for - instance on the c4x it will be wrong -- it depends on whether - QImode is 8 bits. */ -typedef int jbyte __attribute__((__mode__(__QI__))); -typedef int jshort __attribute__((__mode__(__HI__))); -typedef int jint __attribute__((__mode__(__SI__))); -typedef int jlong __attribute__((__mode__(__DI__))); -typedef unsigned int jboolean __attribute__((__mode__(__QI__))); -typedef unsigned short jchar __attribute__((__mode__(__HI__))); -typedef float jfloat; -typedef double jdouble; -typedef jint jsize; - -# else /* __GNUC__ */ - -# ifdef JV_HAVE_INTTYPES_H - -/* If <inttypes.h> is available, we use it. */ - -# include <inttypes.h> - -typedef int8_t jbyte; -typedef int16_t jshort; -typedef int32_t jint; -typedef int64_t jlong; -typedef float jfloat; -typedef double jdouble; -typedef jint jsize; -typedef uint8_t jboolean; -typedef uint16_t jchar; - -# else /* JV_HAVE_INTTYPES_H */ - -/* For now, we require either gcc or <inttypes.h>. If we did more - work at configure time we could get around this, but right now it - doesn't seem worth it. */ -# error jni.h not ported to this platform - -# endif /* JV_HAVE_INTTYPES_H */ - -# endif /* __GNUC__ */ - -#endif /* __GCJ_JNI_IMPL__ */ - - -/* Linkage and calling conventions. */ -#if (defined (_WIN32) || defined (__WIN32__) || defined (WIN32)) \ - && !defined (_WIN64) - -#define JNIIMPORT __declspec(dllimport) -#define JNIEXPORT __declspec(dllexport) - -#ifndef JNICALL -#define JNICALL __stdcall -#endif - -#else /* !( _WIN32 || __WIN32__ || WIN32) || _WIN64 */ - -#define JNIIMPORT -#if defined(__GNUC__) && __GNUC__ > 3 -#define JNIEXPORT __attribute__ ((visibility("default"))) -#else -#define JNIEXPORT -#endif - -#ifndef JNICALL -#define JNICALL -#endif - -#endif /* !( _WIN32 || __WIN32__ || WIN32) || _WIN64 */ - -/* These defines apply to symbols in libgcj */ -#ifdef __GCJ_DLL__ -# ifdef __GCJ_JNI_IMPL__ -# define _CLASSPATH_JNIIMPEXP JNIEXPORT -# else -# define _CLASSPATH_JNIIMPEXP JNIIMPORT -# endif /* ! __GCJ_JNI_IMPL__ */ -#else /* ! __GCJ_DLL__ */ -# define _CLASSPATH_JNIIMPEXP -#endif /* __GCJ_DLL__ */ - -#endif /* __GCJ_JNI_MD_H__ */ diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h deleted file mode 100644 index 5015d4e..0000000 --- a/libjava/include/jvm.h +++ /dev/null @@ -1,804 +0,0 @@ -// jvm.h - Header file for private implementation information. -*- c++ -*- - -/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JAVA_JVM_H__ -#define __JAVA_JVM_H__ - -// Define this before including jni.h. -// jni.h is included by jvmpi.h, which might be included. We define -// this unconditionally because it is convenient and it lets other -// files include jni.h without difficulty. -#define __GCJ_JNI_IMPL__ - -#include <gcj/javaprims.h> - -#include <java-assert.h> -#include <java-threads.h> -// Must include java-gc.h before Object.h for the implementation. -#include <java-gc.h> - -#include <java/lang/Object.h> - -// Include cni.h before field.h to enable all definitions. FIXME. -#include <gcj/cni.h> -#include <gcj/field.h> - -#include <java/lang/Thread.h> - -#include <sysdep/locks.h> - -/* Macro for possible unused arguments. */ -#define MAYBE_UNUSED __attribute__((__unused__)) - -/* Structure of the virtual table. */ -struct _Jv_VTable -{ -#ifdef __ia64__ - typedef struct { void *pc, *gp; } vtable_elt; -#else - typedef void *vtable_elt; -#endif - jclass clas; - void *gc_descr; - - // This must be last, as derived classes "extend" this by - // adding new data members. - vtable_elt method[1]; - -#ifdef __ia64__ - void *get_method(int i) { return &method[i]; } - void set_method(int i, void *fptr) { method[i] = *(vtable_elt *)fptr; } - void *get_finalizer() - { - // We know that get_finalizer is only used for checking whether - // this object needs to have a finalizer registered. So it is - // safe to simply return just the PC component of the vtable - // slot. - return ((vtable_elt *)(get_method(0)))->pc; - } -#else - void *get_method(int i) { return method[i]; } - void set_method(int i, void *fptr) { method[i] = fptr; } - void *get_finalizer() { return get_method(0); } -#endif - - static size_t vtable_elt_size() { return sizeof(vtable_elt); } - - // Given a method index, return byte offset from the vtable pointer. - static jint idx_to_offset (int index) - { - return (2 * sizeof (void *)) + (index * vtable_elt_size ()); - } - - static _Jv_VTable *new_vtable (int count); -}; - -union _Jv_word -{ - jobject o; - jint i; // Also stores smaller integral types. - jfloat f; - jint ia[1]; // Half of _Jv_word2. - void* p; - -#if SIZEOF_VOID_P == 8 - // We can safely put a long or a double in here without increasing - // the size of _Jv_Word; we take advantage of this in the interpreter. - jlong l; - jdouble d; -#endif - - jclass clazz; - jstring string; - struct _Jv_Field *field; - struct _Jv_Utf8Const *utf8; - struct _Jv_ResolvedMethod *rmethod; -}; - -union _Jv_word2 -{ - jint ia[2]; - jlong l; - jdouble d; -}; - -union _Jv_value -{ - jbyte byte_value; - jshort short_value; - jchar char_value; - jint int_value; - jlong long_value; - jfloat float_value; - jdouble double_value; - jobject object_value; -}; - -/* Extract a character from a Java-style Utf8 string. - * PTR points to the current character. - * LIMIT points to the end of the Utf8 string. - * PTR is incremented to point after the character thta gets returns. - * On an error, -1 is returned. */ -#define UTF8_GET(PTR, LIMIT) \ - ((PTR) >= (LIMIT) ? -1 \ - : *(PTR) < 128 ? *(PTR)++ \ - : (*(PTR)&0xE0) == 0xC0 && ((PTR)+=2)<=(LIMIT) && ((PTR)[-1]&0xC0) == 0x80 \ - ? (((PTR)[-2] & 0x1F) << 6) + ((PTR)[-1] & 0x3F) \ - : (*(PTR) & 0xF0) == 0xE0 && ((PTR) += 3) <= (LIMIT) \ - && ((PTR)[-2] & 0xC0) == 0x80 && ((PTR)[-1] & 0xC0) == 0x80 \ - ? (((PTR)[-3]&0x0F) << 12) + (((PTR)[-2]&0x3F) << 6) + ((PTR)[-1]&0x3F) \ - : ((PTR)++, -1)) - -extern int _Jv_strLengthUtf8(const char* str, int len); - -typedef struct _Jv_Utf8Const Utf8Const; -_Jv_Utf8Const *_Jv_makeUtf8Const (const char *s, int len); -_Jv_Utf8Const *_Jv_makeUtf8Const (jstring string); -static inline _Jv_Utf8Const *_Jv_makeUtf8Const (const char *s) -{ - return _Jv_makeUtf8Const (s, strlen (s)); -} -extern jboolean _Jv_equalUtf8Consts (const _Jv_Utf8Const *, const _Jv_Utf8Const *); -extern jboolean _Jv_equal (_Jv_Utf8Const *, jstring, jint); -extern jboolean _Jv_equaln (_Jv_Utf8Const *, jstring, jint); - -/* Helper class which converts a jstring to a temporary char*. - Uses the supplied buffer, if non-null. Otherwise, allocates - the buffer on the heap. Use the JV_TEMP_UTF_STRING macro, - which follows, to automatically allocate a stack buffer if - the string is small enough. */ -class _Jv_TempUTFString -{ -public: - _Jv_TempUTFString(jstring jstr, char* buf=0); - ~_Jv_TempUTFString(); - -// Accessors - operator const char*() const - { - return buf_; - } - const char* buf() const - { - return buf_; - } - char* buf() - { - return buf_; - } - -private: - char* buf_; - bool heapAllocated_; -}; - -inline _Jv_TempUTFString::_Jv_TempUTFString (jstring jstr, char* buf) - : buf_(0), heapAllocated_(false) -{ - if (!jstr) return; - jsize len = JvGetStringUTFLength (jstr); - if (buf) - buf_ = buf; - else - { - buf_ = (char*) _Jv_Malloc (len+1); - heapAllocated_ = true; - } - - JvGetStringUTFRegion (jstr, 0, jstr->length(), buf_); - buf_[len] = '\0'; -} - -inline _Jv_TempUTFString::~_Jv_TempUTFString () -{ - if (heapAllocated_) - _Jv_Free (buf_); -} - -/* Macro which uses _Jv_TempUTFString. Allocates a stack-based - buffer if the string and its null terminator are <= 256 - characters in length. Otherwise, a heap-based buffer is - used. The parameters to this macro are the variable name - which is an instance of _Jv_TempUTFString (above) and a - jstring. - - Sample Usage: - - jstring jstr = getAJString(); - JV_TEMP_UTF_STRING(utfstr, jstr); - printf("The string is: %s\n", utfstr.buf()); - - */ -#define JV_TEMP_UTF_STRING(utfstr, jstr) \ - jstring utfstr##thejstr = (jstr); \ - jsize utfstr##_len = utfstr##thejstr ? JvGetStringUTFLength (utfstr##thejstr) + 1 : 0; \ - char utfstr##_buf[utfstr##_len <= 256 ? utfstr##_len : 0]; \ - _Jv_TempUTFString utfstr(utfstr##thejstr, sizeof(utfstr##_buf)==0 ? 0 : utfstr##_buf) - -namespace gcj -{ - /* Some constants used during lookup of special class methods. */ - extern _Jv_Utf8Const *void_signature; /* "()V" */ - extern _Jv_Utf8Const *clinit_name; /* "<clinit>" */ - extern _Jv_Utf8Const *init_name; /* "<init>" */ - extern _Jv_Utf8Const *finit_name; /* "finit$", */ - - /* Set to true by _Jv_CreateJavaVM. */ - extern bool runtimeInitialized; - - /* Print out class names as they are initialized. */ - extern bool verbose_class_flag; - - /* When true, enable the bytecode verifier and BC-ABI verification. */ - extern bool verifyClasses; - - /* Thread stack size specified by the -Xss runtime argument. */ - extern size_t stack_size; - - /* The start time */ - extern jlong startTime; - - /* The VM arguments */ - extern JArray<jstring>* vmArgs; - - // Currently loaded classes - extern jint loadedClasses; - - // Unloaded classes - extern jlong unloadedClasses; -} - -// This class handles all aspects of class preparation and linking. -class _Jv_Linker -{ -private: - typedef unsigned int uaddr __attribute__ ((mode (pointer))); - - static _Jv_Field *find_field_helper(jclass, _Jv_Utf8Const *, _Jv_Utf8Const *, - jclass, jclass *); - static _Jv_Field *find_field(jclass, jclass, jclass *, _Jv_Utf8Const *, - _Jv_Utf8Const *); - static void check_loading_constraints (_Jv_Method *, jclass, jclass); - static void prepare_constant_time_tables(jclass); - static jshort get_interfaces(jclass, _Jv_ifaces *); - static void link_symbol_table(jclass); - static void link_exception_table(jclass); - static void layout_interface_methods(jclass); - static void set_vtable_entries(jclass, _Jv_VTable *); - static void make_vtable(jclass); - static void ensure_fields_laid_out(jclass); - static void ensure_class_linked(jclass); - static void ensure_supers_installed(jclass); - static void add_miranda_methods(jclass, jclass); - static void ensure_method_table_complete(jclass); - static void verify_class(jclass); - static jshort find_iindex(jclass *, jshort *, jshort); - static jshort indexof(void *, void **, jshort); - static int get_alignment_from_class(jclass); - static void generate_itable(jclass, _Jv_ifaces *, jshort *); - static jshort append_partial_itable(jclass, jclass, void **, jshort); - static _Jv_Method *search_method_in_superclasses (jclass cls, jclass klass, - _Jv_Utf8Const *method_name, - _Jv_Utf8Const *method_signature, - jclass *found_class, - bool check_perms = true); - static void *create_error_method(_Jv_Utf8Const *, jclass); - - /* The least significant bit of the signature pointer in a symbol - table is set to 1 by the compiler if the reference is "special", - i.e. if it is an access to a private field or method. Extract - that bit, clearing it in the address and setting the LSB of - SPECIAL accordingly. */ - static void maybe_adjust_signature (_Jv_Utf8Const *&s, uaddr &special) - { - union { - _Jv_Utf8Const *signature; - uaddr signature_bits; - }; - signature = s; - special = signature_bits & 1; - signature_bits -= special; - s = signature; - } - - static _Jv_Mutex_t resolve_mutex; - static void init (void) __attribute__((constructor)); - -public: - - static bool has_field_p (jclass, _Jv_Utf8Const *); - static void print_class_loaded (jclass); - static void resolve_class_ref (jclass, jclass *); - static void wait_for_state(jclass, int); - static _Jv_Method *resolve_method_entry (jclass, jclass &, - int, int, - bool, bool); - static _Jv_word resolve_pool_entry (jclass, int, bool =false); - static void resolve_field (_Jv_Field *, java::lang::ClassLoader *); - static void verify_type_assertions (jclass); - static _Jv_Method *search_method_in_class (jclass, jclass, - _Jv_Utf8Const *, - _Jv_Utf8Const *, - bool check_perms = true); - static void layout_vtable_methods(jclass); - - static jbyte read_cpool_entry (_Jv_word *data, - const _Jv_Constants *const pool, - int index) - { - _Jv_MutexLock (&resolve_mutex); - jbyte tags = pool->tags[index]; - *data = pool->data[index]; - _Jv_MutexUnlock (&resolve_mutex); - return tags; - } - - static void write_cpool_entry (_Jv_word data, jbyte tags, - _Jv_Constants *pool, - int index) - { - _Jv_MutexLock (&resolve_mutex); - pool->data[index] = data; - pool->tags[index] = tags; - _Jv_MutexUnlock (&resolve_mutex); - } -}; - -/* Type of pointer used as finalizer. */ -typedef void _Jv_FinalizerFunc (jobject); - -/* Allocate space for a new Java object. */ -void *_Jv_AllocObj (jsize size, jclass cl) __attribute__((__malloc__)); -/* Allocate space for a potentially uninitialized pointer-free object. - Interesting only with JV_HASH_SYNCHRONIZATION. */ -void *_Jv_AllocPtrFreeObj (jsize size, jclass cl) __attribute__((__malloc__)); -/* Allocate space for an array of Java objects. */ -void *_Jv_AllocArray (jsize size, jclass cl) __attribute__((__malloc__)); -/* Allocate space that is known to be pointer-free. */ -void *_Jv_AllocBytes (jsize size) __attribute__((__malloc__)); -/* Allocate space for a new non-Java object, which does not have the usual - Java object header but may contain pointers to other GC'ed objects. */ -void *_Jv_AllocRawObj (jsize size) __attribute__((__malloc__)); -/* Allocate a double-indirect pointer to a _Jv_ClosureList such that - the _Jv_ClosureList gets automatically finalized when it is no - longer reachable, not even by other finalizable objects. */ -_Jv_ClosureList **_Jv_ClosureListFinalizer (void) __attribute__((__malloc__)); -/* Explicitly throw an out-of-memory exception. */ -void _Jv_ThrowNoMemory() __attribute__((__noreturn__)); -/* Allocate an object with a single pointer. The first word is reserved - for the GC, and the second word is the traced pointer. */ -void *_Jv_AllocTraceOne (jsize size /* incl. reserved slot */); -/* Ditto, but for two traced pointers. */ -void *_Jv_AllocTraceTwo (jsize size /* incl. reserved slot */); -/* Initialize the GC. */ -void _Jv_InitGC (void); -/* Register a finalizer. */ -void _Jv_RegisterFinalizer (void *object, _Jv_FinalizerFunc *method); -/* Compute the GC descriptor for a class */ -void * _Jv_BuildGCDescr(jclass); - -/* Allocate some unscanned, unmoveable memory. Return NULL if out of - memory. */ -void *_Jv_MallocUnchecked (jsize size) __attribute__((__malloc__)); - -/* Initialize finalizers. The argument is a function to be called - when a finalizer is ready to be run. */ -void _Jv_GCInitializeFinalizers (void (*notifier) (void)); -/* Run finalizers for objects ready to be finalized.. */ -void _Jv_RunFinalizers (void); -/* Run all finalizers. Should be called only before exit. */ -void _Jv_RunAllFinalizers (void); -/* Perform a GC. */ -void _Jv_RunGC (void); -/* Disable and enable GC. */ -void _Jv_DisableGC (void); -void _Jv_EnableGC (void); -/* Register a disappearing link. This is a field F which should be - cleared when *F is found to be inaccessible. This is used in the - implementation of java.lang.ref.Reference. */ -void _Jv_GCRegisterDisappearingLink (jobject *objp); -/* Return true if OBJECT should be reclaimed. This is used to - implement soft references. */ -jboolean _Jv_GCCanReclaimSoftReference (jobject obj); - -/* Register a finalizer for a String object. This is only used by - the intern() implementation. */ -void _Jv_RegisterStringFinalizer (jobject str); -/* This is called to actually finalize a possibly-intern()d String. */ -void _Jv_FinalizeString (jobject str); - -/* Return approximation of total size of heap. */ -long _Jv_GCTotalMemory (void); -/* Return approximation of total free memory. */ -long _Jv_GCFreeMemory (void); - -/* Set initial heap size. If SIZE==0, ignore. Should be run before - _Jv_InitGC. Not required to have any actual effect. */ -void _Jv_GCSetInitialHeapSize (size_t size); - -/* Set maximum heap size. If SIZE==0, unbounded. Should be run - before _Jv_InitGC. Not required to have any actual effect. */ -void _Jv_GCSetMaximumHeapSize (size_t size); - -/* External interface to setting the heap size. Parses ARG (a number - which can optionally have "k" or "m" appended and calls - _Jv_GCSetInitialHeapSize. */ -void _Jv_SetInitialHeapSize (const char *arg); - -/* External interface to setting the maximum heap size. Parses ARG (a - number which can optionally have "k" or "m" appended and calls - _Jv_GCSetMaximumHeapSize. */ -void _Jv_SetMaximumHeapSize (const char *arg); - -/* External interface for setting the GC_free_space_divisor. Calls - GC_set_free_space_divisor and returns the old value. */ -int _Jv_SetGCFreeSpaceDivisor (int div); - -/* Free the method cache, if one was allocated. This is only called - during thread deregistration. */ -void _Jv_FreeMethodCache (); - -/* Set the stack size for threads. Parses ARG, a number which can - optionally have "k" or "m" appended. */ -void _Jv_SetStackSize (const char *arg); - -extern "C" void JvRunMain (jclass klass, int argc, const char **argv); -extern "C" void JvRunMainName (const char *name, int argc, const char **argv); - -void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, - bool is_jar); - -void _Jv_RunMain (struct _Jv_VMInitArgs *vm_args, jclass klass, - const char *name, int argc, const char **argv, bool is_jar); - -// Delayed until after _Jv_AllocRawObj is declared. -inline _Jv_VTable * -_Jv_VTable::new_vtable (int count) -{ - size_t size = sizeof(_Jv_VTable) + (count - 1) * vtable_elt_size (); - return (_Jv_VTable *) _Jv_AllocRawObj (size); -} - -// Determine if METH gets an entry in a VTable. -static inline jboolean _Jv_isVirtualMethod (_Jv_Method *meth) -{ - using namespace java::lang::reflect; - return (((meth->accflags & (Modifier::STATIC | Modifier::PRIVATE)) == 0) - && meth->name->first() != '<'); -} - -// This function is used to determine the hash code of an object. -inline jint -_Jv_HashCode (jobject obj) -{ - // This was chosen to yield relatively well distributed results on - // both 32- and 64-bit architectures. Note 0x7fffffff is prime. - // FIXME: we assume sizeof(long) == sizeof(void *). - return (jint) ((unsigned long) obj % 0x7fffffff); -} - -// Return a raw pointer to the elements of an array given the array -// and its element type. You might think we could just pick a single -// array type and use elements() on it, but we can't because we must -// account for alignment of the element type. When ARRAY is null, we -// obtain the number of bytes taken by the base part of the array. -inline char * -_Jv_GetArrayElementFromElementType (jobject array, - jclass element_type) -{ - char *elts; - if (element_type == JvPrimClass (byte)) - elts = (char *) elements ((jbyteArray) array); - else if (element_type == JvPrimClass (short)) - elts = (char *) elements ((jshortArray) array); - else if (element_type == JvPrimClass (int)) - elts = (char *) elements ((jintArray) array); - else if (element_type == JvPrimClass (long)) - elts = (char *) elements ((jlongArray) array); - else if (element_type == JvPrimClass (boolean)) - elts = (char *) elements ((jbooleanArray) array); - else if (element_type == JvPrimClass (char)) - elts = (char *) elements ((jcharArray) array); - else if (element_type == JvPrimClass (float)) - elts = (char *) elements ((jfloatArray) array); - else if (element_type == JvPrimClass (double)) - elts = (char *) elements ((jdoubleArray) array); - else - elts = (char *) elements ((jobjectArray) array); - return elts; -} - -extern "C" void _Jv_ThrowBadArrayIndex (jint bad_index) - __attribute__((noreturn)); -extern "C" void _Jv_ThrowNullPointerException (void) - __attribute__((noreturn)); -extern "C" void _Jv_ThrowNoSuchMethodError (void) - __attribute__((noreturn)); -extern "C" void _Jv_ThrowNoSuchFieldError (int) - __attribute__((noreturn)); -extern "C" jobject _Jv_NewArray (jint type, jint size) - __attribute__((__malloc__)); -extern "C" jobject _Jv_NewMultiArray (jclass klass, jint dims, ...) - __attribute__((__malloc__)); -extern "C" void *_Jv_CheckCast (jclass klass, jobject obj); -extern "C" void *_Jv_LookupInterfaceMethod (jclass klass, Utf8Const *name, - Utf8Const *signature); -extern "C" void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface, - int meth_idx); -extern "C" void _Jv_CheckArrayStore (jobject array, jobject obj); -extern "C" void _Jv_RegisterClass (jclass klass); -extern "C" void _Jv_RegisterClasses (const jclass *classes); -extern "C" void _Jv_RegisterClasses_Counted (const jclass *classes, - size_t count); -extern "C" void _Jv_RegisterResource (void *vptr); -extern void _Jv_UnregisterClass (_Jv_Utf8Const*, java::lang::ClassLoader*); - -extern "C" jobject _Jv_UnwrapJNIweakReference (jobject); - -extern jclass _Jv_FindClass (_Jv_Utf8Const *name, - java::lang::ClassLoader *loader); - -extern jclass _Jv_FindClassNoException (_Jv_Utf8Const *name, - java::lang::ClassLoader *loader); - -extern jclass _Jv_FindClassFromSignature (char *, - java::lang::ClassLoader *loader, - char ** = NULL); - -extern jclass _Jv_FindClassFromSignatureNoException (char *, - java::lang::ClassLoader *loader, - char ** = NULL); - -extern void _Jv_GetTypesFromSignature (jmethodID method, - jclass declaringClass, - JArray<jclass> **arg_types_out, - jclass *return_type_out); - -extern jboolean _Jv_CheckAccess (jclass self_klass, jclass other_klass, - jint flags); - -extern jobject _Jv_CallAnyMethodA (jobject obj, jclass return_type, - jmethodID meth, jboolean is_constructor, - JArray<jclass> *parameter_types, - jobjectArray args, - jclass iface = NULL); - -union jvalue; -extern void _Jv_CallAnyMethodA (jobject obj, - jclass return_type, - jmethodID meth, - jboolean is_constructor, - jboolean is_virtual_call, - JArray<jclass> *parameter_types, - const jvalue *args, - jvalue *result, - jboolean is_jni_call = true, - jclass iface = NULL); - -extern void _Jv_CheckOrCreateLoadingConstraint (jclass, - java::lang::ClassLoader *); - -extern jobject _Jv_NewMultiArray (jclass, jint ndims, jint* dims) - __attribute__((__malloc__)); - -extern "C" void _Jv_ThrowAbstractMethodError () __attribute__((__noreturn__)); - -/* Checked divide subroutines. */ -extern "C" -{ - jint _Jv_divI (jint, jint); - jint _Jv_remI (jint, jint); - jlong _Jv_divJ (jlong, jlong); - jlong _Jv_remJ (jlong, jlong); -} - -/* Get the number of arguments (cf. argc) or 0 if our argument - list was never initialized. */ -extern int _Jv_GetNbArgs (void); - -/* Get the specified argument (cf. argv[index]) or "" if either - our argument list was never initialized or the specified index - is out of bounds. */ -extern const char * _Jv_GetSafeArg (int index); - -/* Sets our argument list. Can be used by programs with non-standard - entry points. */ -extern void _Jv_SetArgs (int argc, const char **argv); - -/* Get the name of the running executable. */ -extern const char *_Jv_ThisExecutable (void); - -/* Return a pointer to a symbol in executable or loaded library. */ -void *_Jv_FindSymbolInExecutable (const char *); - -/* Initialize JNI. */ -extern void _Jv_JNI_Init (void); - -/* Get or set the per-thread JNIEnv used by the invocation API. */ -_Jv_JNIEnv *_Jv_GetCurrentJNIEnv (); -void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *); - -/* Free a JNIEnv. */ -void _Jv_FreeJNIEnv (_Jv_JNIEnv *); - -extern "C" void _Jv_JNI_PopSystemFrame (_Jv_JNIEnv *); -_Jv_JNIEnv *_Jv_GetJNIEnvNewFrameWithLoader (::java::lang::ClassLoader *); - -struct _Jv_JavaVM; -_Jv_JavaVM *_Jv_GetJavaVM (); - -/* Get a JVMTI environment */ -struct _Jv_JVMTIEnv; -_Jv_JVMTIEnv *_Jv_GetJVMTIEnv (void); - -/* Initialize JVMTI */ -extern void _Jv_JVMTI_Init (void); - -// Some verification functions from defineclass.cc. -bool _Jv_VerifyFieldSignature (_Jv_Utf8Const*sig); -bool _Jv_VerifyMethodSignature (_Jv_Utf8Const*sig); -bool _Jv_VerifyClassName (unsigned char* ptr, _Jv_ushort length); -bool _Jv_VerifyClassName (_Jv_Utf8Const *name); -bool _Jv_VerifyIdentifier (_Jv_Utf8Const *); -bool _Jv_ClassNameSamePackage (_Jv_Utf8Const *name1, _Jv_Utf8Const *name2); - -struct _Jv_core_chain -{ - int name_length; - const char *name; - int data_length; - const void *data; - - struct _Jv_core_chain *next; -}; - -// This is called when new core data is loaded. -extern void (*_Jv_RegisterCoreHook) (_Jv_core_chain *); - -_Jv_core_chain *_Jv_FindCore (_Jv_core_chain *node, jstring name); -void _Jv_FreeCoreChain (_Jv_core_chain *chain); - -#ifdef ENABLE_JVMPI - -#include "jvmpi.h" - -extern void (*_Jv_JVMPI_Notify_OBJECT_ALLOC) (JVMPI_Event *event); -extern void (*_Jv_JVMPI_Notify_THREAD_START) (JVMPI_Event *event); -extern void (*_Jv_JVMPI_Notify_THREAD_END) (JVMPI_Event *event); -#endif - -/* FIXME: this should really be defined in some more generic place */ -#define ROUND(V, A) (((((unsigned) (V))-1) | ((A)-1))+1) - -extern void _Jv_RegisterBootstrapPackages (); - -#define FLAG_BINARYCOMPAT_ABI (1<<31) /* Class is built with the BC-ABI. */ - -#define FLAG_BOOTSTRAP_LOADER (1<<30) /* Used when defining a class that - should be loaded by the bootstrap - loader. */ - -// These are used to find ABI versions we recognize. -#define GCJ_CXX_ABI_VERSION (__GNUC__ * 100000) - -// This is the old-style BC version ID used by GCJ 4.0.0. -#define OLD_GCJ_40_BC_ABI_VERSION (4 * 10000 + 0 * 10 + 5) - -// New style version IDs used by GCJ 4.0.1 and later. -#define GCJ_40_BC_ABI_VERSION (4 * 100000 + 0 * 1000) - -void _Jv_CheckABIVersion (unsigned long value); - - -inline bool -_Jv_ClassForBootstrapLoader (unsigned long value) -{ - return (value & FLAG_BOOTSTRAP_LOADER); -} - -// It makes the source cleaner if we simply always define this -// function. If the interpreter is not built, it will never return -// 'true'. -extern inline jboolean -_Jv_IsInterpretedClass (jclass c) -{ - return (c->accflags & java::lang::reflect::Modifier::INTERPRETED) != 0; -} - -// Return true if the class was compiled with the BC ABI. -extern inline jboolean -_Jv_IsBinaryCompatibilityABI (jclass c) -{ - // There isn't really a better test for the ABI type at this point, - // that will work once the class has been registered. - return c->otable_syms || c->atable_syms || c->itable_syms; -} - -// Returns whether the given class does not really exists (ie. we have no -// bytecode) but still allows us to do some very conservative actions. -// E.g. throwing a NoClassDefFoundError with the name of the missing -// class. -extern inline jboolean -_Jv_IsPhantomClass (jclass c) -{ - return c->state == JV_STATE_PHANTOM; -} - -// A helper function defined in prims.cc. -char* _Jv_PrependVersionedLibdir (char* libpath); - - -// An enum for use with JvSetThreadState. We use a C++ enum rather -// than the Java enum to avoid problems with class initialization -// during VM bootstrap. -typedef enum -{ - JV_BLOCKED, - JV_NEW, - JV_RUNNABLE, - JV_TERMINATED, - JV_TIMED_WAITING, - JV_WAITING -} JvThreadState; - -// Temporarily set the thread's state. -class JvSetThreadState -{ -private: - ::java::lang::Thread *thread; - jint saved; - -public: - - // Note that 'cthread' could be NULL -- during VM startup there may - // not be a Thread available. - JvSetThreadState(::java::lang::Thread *cthread, JvThreadState nstate) - : thread (cthread), - saved (cthread ? cthread->state : (jint)JV_NEW) - { - if (thread) - thread->state = nstate; - } - - ~JvSetThreadState() - { - if (thread) - thread->state = saved; - } -}; - -// This structure is used to represent all the data the native side -// needs. An object of this type is assigned to the `data' member of -// the Thread class. -struct natThread -{ - // A thread is either alive, dead, or being sent a signal; if it is - // being sent a signal, it is also alive. Thus, if you want to know - // if a thread is alive, it is sufficient to test alive_status != - // THREAD_DEAD. - volatile obj_addr_t alive_flag; - - // These are used to interrupt sleep and join calls. We can share a - // condition variable here since it only ever gets notified when the thread - // exits. - _Jv_Mutex_t join_mutex; - _Jv_ConditionVariable_t join_cond; - - // These are used by Unsafe.park() and Unsafe.unpark(). - ParkHelper park_helper; - - // This is private data for the thread system layer. - _Jv_Thread_t *thread; - - // Each thread has its own JNI object. - _Jv_JNIEnv *jni_env; -}; - -#endif /* __JAVA_JVM_H__ */ diff --git a/libjava/include/jvmpi.h b/libjava/include/jvmpi.h deleted file mode 100644 index 1af9617..0000000 --- a/libjava/include/jvmpi.h +++ /dev/null @@ -1,227 +0,0 @@ -/* Copyright (C) 2000 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -/* Note: this file must be compilable by the C compiler (for now, - assuming GNU C is ok). This means you must never use `//' - comments, and all C++-specific code must be conditional on - __cplusplus. */ - -#ifndef __GCJ_JVMPI_H__ -#define __GCJ_JVMPI_H__ - -#include <jni.h> - -/* JVMPI version numbers. FIXME: this is a semi-random number. The - documentation doesn't say what it should be. */ -#define JVMPI_VERSION_1 0x00020001 - -/* JVMPI return codes. FIXME: These are semi-random numbers. The - documentation doesn't say what they should be. */ -#define JVMPI_SUCCESS 0 -#define JVMPI_FAIL 1 -#define JVMPI_NOT_AVAILABLE 2 - -/* An opaque pointer representing an object ID. */ -struct _jobjectID; -typedef struct _jobjectID * jobjectID; - -typedef struct -{ - /* Source line number. */ - jint lineno; - /* Method being executed. */ - jmethodID method_id; -} JVMPI_CallFrame; - -typedef struct -{ - JNIEnv *env_id; - /* Number of frames in the call trace. */ - jint num_frames; - /* An array of frames representing the trace. Callees first. */ - JVMPI_CallFrame *frames; -} JVMPI_CallTrace; - -typedef struct -{ - /* Name of the field. */ - char *field_name; - /* Signature of the field. */ - char *field_signature; -} JVMPI_Field; - -/* The documentation doesn't actually specify what the - JVMPI_DUMP_LEVEL macros should be defined to. Here's a reasonable - guess. */ -#define JVMPI_DUMP_LEVEL_0 0 -#define JVMPI_DUMP_LEVEL_1 1 -#define JVMPI_DUMP_LEVEL_2 2 -#define JVMPI_DUMP_LEVEL_3 3 - -typedef struct -{ - /* One of JVMPI_DUMP_LEVEL_0, JVMPI_DUMP_LEVEL_1 or - JVMPI_DUMP_LEVEL_2. */ - jint heap_dump_level; -} JVMPI_HeapDumpArg; - -typedef struct -{ - /* Offset from the beginning of the method. */ - jint offset; - /* Line number from the beginning of the source file. */ - jint lineno; -} JVMPI_Lineno; - -typedef struct -{ - /* Name of the method. */ - char *method_name; - /* Signature of the method. */ - char *method_signature; - /* Start line number from the beginning of the source file. */ - jint start_lineno; - /* End line number from the beginning of the source file. */ - jint end_lineno; - /* The method ID. */ - jmethodID method_id; -} JVMPI_Method; - -/* An opaque pointer representing a raw monitor. */ -struct _JVMPI_RawMonitor; -typedef struct _JVMPI_RawMonitor *JVMPI_RawMonitor; - -/* JVMPI event codes. FIXME: These are semi-random numbers. The - documentation doesn't say what they should be. */ -#define JVMPI_EVENT_ARENA_DELETE 0 -#define JVMPI_EVENT_ARENA_NEW 1 -#define JVMPI_EVENT_CLASS_LOAD 2 -#define JVMPI_EVENT_CLASS_LOAD_HOOK 3 -#define JVMPI_EVENT_CLASS_UNLOAD 4 -#define JVMPI_EVENT_COMPILED_METHOD_LOAD 5 -#define JVMPI_EVENT_COMPILED_METHOD_UNLOAD 6 -#define JVMPI_EVENT_DATA_DUMP_REQUEST 7 -#define JVMPI_EVENT_DATA_RESET_REQUEST 8 -#define JVMPI_EVENT_GC_FINISH 9 -#define JVMPI_EVENT_GC_START 10 -#define JVMPI_EVENT_HEAP_DUMP 11 -#define JVMPI_EVENT_JNI_GLOBALREF_ALLOC 12 -#define JVMPI_EVENT_JNI_GLOBALREF_FREE 13 -#define JVMPI_EVENT_JNI_WEAK_GLOBALREF_ALLOC 14 -#define JVMPI_EVENT_JNI_WEAK_GLOBALREF_FREE 15 -#define JVMPI_EVENT_JVM_INIT_DONE 16 -#define JVMPI_EVENT_JVM_SHUT_DOWN 17 -#define JVMPI_EVENT_METHOD_ENTRY 18 -#define JVMPI_EVENT_METHOD_ENTRY2 19 -#define JVMPI_EVENT_METHOD_EXIT 20 -#define JVMPI_EVENT_MONITOR_CONTENDED_ENTER 21 -#define JVMPI_EVENT_MONITOR_CONTENDED_ENTERED 22 -#define JVMPI_EVENT_MONITOR_CONTENDED_EXIT 23 -#define JVMPI_EVENT_MONITOR_DUMP 24 -#define JVMPI_EVENT_MONITOR_WAIT 25 -#define JVMPI_EVENT_MONITOR_WAITED 26 -#define JVMPI_EVENT_OBJECT_ALLOC 27 -#define JVMPI_EVENT_OBJECT_DUMP 28 -#define JVMPI_EVENT_OBJECT_FREE 29 -#define JVMPI_EVENT_OBJECT_MOVE 30 -#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_ENTER 31 -#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_ENTERED 32 -#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_EXIT 33 -#define JVMPI_EVENT_THREAD_END 34 -#define JVMPI_EVENT_THREAD_START 35 -#define JVMPI_EVENT_INSTRUCTION_START 36 - - -typedef struct -{ - /* Event type. */ - jint event_type; - - /* Evn where this event occurred. */ - JNIEnv *env_id; - - union - { - struct - { - char *class_name; - char *source_name; - jint num_interfaces; - jint num_methods; - JVMPI_Method *methods; - jint num_static_fields; - JVMPI_Field *statics; - jint num_instance_fields; - JVMPI_Field *instances; - jobjectID class_id; - } class_load; - - struct - { - jobjectID class_id; - } class_unload; - - struct - { - jint arena_id; - jobjectID class_id; - jint is_array; - jint size; - jobjectID obj_id; - } obj_alloc; - - struct - { - char *thread_name; - char *group_name; - char *parent_name; - jobjectID thread_id; - JNIEnv *thread_env_id; - } thread_start; - - } u; - -} JVMPI_Event; - -typedef struct -{ - /* JVMPI version number. */ - jint version; - - /* Implemented by the user... */ - void (*NotifyEvent) (JVMPI_Event *event); - - /* Implemented by the runtime... */ - jint (*EnableEvent) (jint event_type, void *arg); - jint (*DisableEvent) (jint event_type, void *arg); - jint (*RequestEvent) (jint event_type, void *arg); - void (*GetCallTrace) (JVMPI_CallTrace *trace, jint depth); - void (*ProfilerExit) (jint); - JVMPI_RawMonitor (*RawMonitorCreate) (char *lock_name); - void (*RawMonitorEnter) (JVMPI_RawMonitor lock_id); - void (*RawMonitorExit) (JVMPI_RawMonitor lock_id); - void (*RawMonitorWait) (JVMPI_RawMonitor lock_id, jlong ms); - void (*RawMonitorNotifyAll) (JVMPI_RawMonitor lock_id); - void (*RawMonitorDestroy) (JVMPI_RawMonitor lock_id); - jlong (*GetCurrentThreadCpuTime) (void); - void (*SuspendThread) (JNIEnv *env); - void (*ResumeThread) (JNIEnv *env); - jint (*GetThreadStatus) (JNIEnv *env); - jboolean (*ThreadHasRun) (JNIEnv *env); - jint (*CreateSystemThread) (char *name, jint priority, void (*f) (void *)); - void (*SetThreadLocalStorage) (JNIEnv *env_id, void *ptr); - void *(*GetThreadLocalStorage) (JNIEnv *env_id); - void (*DisableGC) (void); - void (*EnableGC) (void); - void (*RunGC) (void); - jobjectID (*GetThreadObject) (JNIEnv *env); - jobjectID (*GetMethodClass) (jmethodID mid); - -} JVMPI_Interface; - -#endif /* __GCJ_JVMPI_H__ */ diff --git a/libjava/include/jvmti-int.h b/libjava/include/jvmti-int.h deleted file mode 100644 index 6b09c83..0000000 --- a/libjava/include/jvmti-int.h +++ /dev/null @@ -1,94 +0,0 @@ -/* jvmti-int.h -- Internal JVMTI definitions - Copyright (C) 2006, 2007 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -As a special exception, if you link this library with other files to -produce an executable, this library does not by itself cause the -resulting executable to be covered by the GNU General Public License. -This exception does not however invalidate any other reasons why the -executable file might be covered by the GNU General Public License. */ - -#ifndef __GCJ_JVTMI_INT_H__ -#define __GCJ_JVMTI_INT_H__ - -/* A macro to map jvmtiEvent to an index in thread[] and enabled[] - in the jvmtiEnv. This will only work if the order of events listed - in jvmtiEvent and jvmtiEventCallbacks is kept the same (which should - not be a problem). */ -#define EVENT_INDEX(jvmtievent) (int)(jvmtievent - JVMTI_EVENT_VM_INIT) - -/* A few globals to help limit the impact of JVMTI on normal operations. - False means no JVMTI environment requested that event type. */ -namespace JVMTI -{ - // Is JVMTI enabled? (i.e., any jvmtiEnv created?) - extern bool enabled; - - // Event notifications - extern bool VMInit; - extern bool VMDeath; - extern bool ThreadStart; - extern bool ThreadEnd; - extern bool ClassFileLoadHook; - extern bool ClassLoad; - extern bool ClassPrepare; - extern bool VMStart; - extern bool Exception; - extern bool ExceptionCatch; - extern bool SingleStep; - extern bool FramePop; - extern bool Breakpoint; - extern bool FieldAccess; - extern bool FieldModification; - extern bool MethodEntry; - extern bool MethodExit; - extern bool NativeMethodBind; - extern bool CompiledMethodLoad; - extern bool CompiledMethodUnload; - extern bool DynamicCodeGenerated; - extern bool DataDumpRequest; - extern bool reserved72; - extern bool MonitorWait; - extern bool MonitorWaited; - extern bool MonitorContendedEnter; - extern bool MonitorContendedEntered; - extern bool reserved77; - extern bool reserved78; - extern bool reserved79; - extern bool reserved80; - extern bool GarbageCollectionStart; - extern bool GarbageCollectionFinish; - extern bool ObjectFree; - extern bool VMObjectAlloc; -}; - -/* A macro to test whether an event should be posted to JVMTI.*/ -#define JVMTI_REQUESTED_EVENT(Event) __builtin_expect (JVMTI::Event, false) - -/* Post the event to requesting JVMTI environments. - - For speed, this function should only be called after - JVMTI_REQUESTED_EVENT is checked. */ -extern void _Jv_JVMTI_PostEvent (jvmtiEvent type, jthread event_thread, ...); -// Returns the jvmtiEnv used by the JDWP backend -extern jvmtiEnv *_Jv_GetJDWP_JVMTIEnv (void); - -// Reports JVMTI excpetions -extern void _Jv_ReportJVMTIExceptionThrow (jthrowable); -#endif /* __GCJ_JVMTI_INT_H__ */ diff --git a/libjava/include/jvmti_md.h b/libjava/include/jvmti_md.h deleted file mode 100644 index 2270f3f..0000000 --- a/libjava/include/jvmti_md.h +++ /dev/null @@ -1,66 +0,0 @@ -/* jvmti_md.h - Copyright (C) 2006, 2007 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -As a special exception, if you link this library with other files to -produce an executable, this library does not by itself cause the -resulting executable to be covered by the GNU General Public License. -This exception does not however invalidate any other reasons why the -executable file might be covered by the GNU General Public License. */ - -#ifndef __GCJ_JVMTI_MD_H__ -#define __GCJ_JVMTI_MD_H__ - -#ifdef __GCJ_JNI_IMPL__ - -/* If __GCJ_JNI_IMPL__ is defined, then we assume that we're building - libgcj itself, and we include functions which should not be exposed - to JVMTI users. */ - -/* The number of event slots needed to keep track of event reporting - constraints for an environment. This will only work if the order of - events listed in jvmtiEvent and jvmtiEventCallbacks is kept the same - (which should not be a problem). */ -#define EVENT_SLOTS \ - (int)(JVMTI_EVENT_VM_OBJECT_ALLOC - JVMTI_EVENT_VM_INIT + 1) - -/* Contents of the jvmtiEnv; but only inside the implementation. */ -#define _CLASSPATH_JVMTIENV_CONTENTS \ - /* Event handlers registered via SetEventCallbacks */ \ - jvmtiEventCallbacks callbacks; \ - \ - /* Array of event thread for which to report event. */ \ - /* NULL means all threads. One for each callback. */ \ - jthread thread[EVENT_SLOTS]; \ - \ - /* Array of notification modes for callbacks. */ \ - /* One for each callback. */ \ - bool enabled[EVENT_SLOTS]; - -/* Redefine the standard JVMTI types to something a little more - precise than "jobject". */ -#define _CLASSPATH_VM_JVMTI_TYPES_DEFINED -typedef java::lang::Thread *jthread; -typedef java::lang::ThreadGroup *jthreadGroup; -typedef jlong jlocation; -typedef struct _Jv_rawMonitorID *jrawMonitorID; - -#endif /* __GCJ_JNI_IMPL__ */ - -#endif /* __GCJ_JVMTI_MD_H__ */ diff --git a/libjava/include/mips-signal.h b/libjava/include/mips-signal.h deleted file mode 100644 index 478e3a4..0000000 --- a/libjava/include/mips-signal.h +++ /dev/null @@ -1,49 +0,0 @@ -// mips-signal.h - Catch runtime signals and turn them into exceptions -// on an mips based Linux system. - -/* Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2006 - Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -/* Adapted from sparc-signal.h and powerpc-signal.h - by David Daney <ddaney@avtrex.com> */ - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#include <signal.h> -#include <unistd.h> - -#define HANDLE_SEGV 1 -#define HANDLE_FPE 1 - -#define SIGNAL_HANDLER(_name) \ -static void _name (int _dummy __attribute__ ((__unused__)), \ - siginfo_t *_info __attribute__ ((__unused__)), \ - void *_arg __attribute__ ((__unused__))) - -#define MAKE_THROW_FRAME(_exception) - -#define _INIT_SIG_HANDLER(_SIG, _ACTION) \ -do \ - { \ - struct sigaction act; \ - act.sa_sigaction = _ACTION; \ - act.sa_flags = SA_SIGINFO | SA_NODEFER; \ - sigemptyset (&act.sa_mask); \ - sigaction(_SIG, &act, NULL); \ - } \ -while (0) - -#define INIT_SEGV _INIT_SIG_HANDLER (SIGSEGV, catch_segv) - -#define INIT_FPE _INIT_SIG_HANDLER (SIGFPE, catch_fpe) -#undef HANDLE_DIVIDE_OVERFLOW - -#endif /* JAVA_SIGNAL_H */ - diff --git a/libjava/include/no-gc.h b/libjava/include/no-gc.h deleted file mode 100644 index ce0ffb8..0000000 --- a/libjava/include/no-gc.h +++ /dev/null @@ -1,23 +0,0 @@ -// -*- c++ -*- -// no-gc.h - Defines for no garbage collector. - -/* Copyright (C) 1998, 1999, 2006, 2007 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JV_NO_GC__ -#define __JV_NO_GC__ - -// Suspend the given thread. This includes suspending the calling thread. -extern "C" void _Jv_SuspendThread (_Jv_Thread_t *); - -// Resume a suspended thread. -extern "C" void _Jv_ResumeThread (_Jv_Thread_t *); - -// Is the given thread suspended? -extern "C" int _Jv_IsThreadSuspended (_Jv_Thread_t *); -#endif /* __JV_NO_GC__ */ diff --git a/libjava/include/no-threads.h b/libjava/include/no-threads.h deleted file mode 100644 index a598df3..0000000 --- a/libjava/include/no-threads.h +++ /dev/null @@ -1,162 +0,0 @@ -// -*- c++ -*- -// no-threads.h - Defines for using no threads. - -/* Copyright (C) 1998, 1999, 2004, 2006 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JV_NO_THREADS__ -#define __JV_NO_THREADS__ - -#include "config.h" - -#include <stdlib.h> -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -// -// Typedefs. -// - -typedef int _Jv_ConditionVariable_t; -typedef int _Jv_Mutex_t; -typedef void _Jv_ThreadStartFunc (java::lang::Thread *); - -// -// Declarations -// - -class _Jv_Thread_t { }; - -// -// Condition variables. -// - -inline void -_Jv_CondInit (_Jv_ConditionVariable_t *) -{ -} - -// Waiting is ok provided there is a timeout. Otherwise we will just -// wait forever. -inline int -_Jv_CondWait (_Jv_ConditionVariable_t *, _Jv_Mutex_t *, - jlong millis, jint nanos) -{ - if (millis == 0 && nanos == 0) - JvFail ("_Jv_CondWait without timeout"); - -#ifdef HAVE_SLEEP - int seconds = millis / 1000; - if (seconds > 0) - sleep (seconds); -#endif - - return 0; -} - -inline int -_Jv_CondNotify (_Jv_ConditionVariable_t *, _Jv_Mutex_t *) -{ - // It is ok to notify -- it just has no effect. - return 0; -} - -inline int -_Jv_CondNotifyAll (_Jv_ConditionVariable_t *, _Jv_Mutex_t *) -{ - // It is ok to notify -- it just has no effect. - return 0; -} - - -// -// Mutexes. -// - -inline int _Jv_MutexCheckMonitor (_Jv_Mutex_t *) -{ - return 0; -} - -inline void -_Jv_MutexInit (_Jv_Mutex_t *) -{ -} - -inline int -_Jv_MutexLock (_Jv_Mutex_t *) -{ - return 0; -} - -inline int -_Jv_MutexUnlock (_Jv_Mutex_t *) -{ - return 0; -} - - -// -// Thread creation and manipulation. -// - -inline void -_Jv_InitThreads (void) -{ -} - -_Jv_Thread_t * -_Jv_ThreadInitData (java::lang::Thread *); - -inline void -_Jv_ThreadDestroyData (_Jv_Thread_t *) -{ -} - -inline java::lang::Thread * -_Jv_ThreadCurrent (void) -{ - extern java::lang::Thread *_Jv_OnlyThread; - return _Jv_OnlyThread; -} - -inline void -_Jv_ThreadYield (void) -{ -} - -inline void -_Jv_ThreadSetPriority (_Jv_Thread_t *, jint) -{ -} - -inline void -_Jv_ThreadRegister (_Jv_Thread_t *) -{ -} - -inline void -_Jv_ThreadUnRegister (void) -{ -} - -void _Jv_ThreadStart (java::lang::Thread *, _Jv_Thread_t *, - _Jv_ThreadStartFunc *meth); - -inline void -_Jv_ThreadWait (void) -{ -} - -inline void -_Jv_ThreadInterrupt (_Jv_Thread_t *) -{ -} - -#endif /* __JV_NO_THREADS__ */ diff --git a/libjava/include/pa-signal.h b/libjava/include/pa-signal.h deleted file mode 100644 index add1325..0000000 --- a/libjava/include/pa-signal.h +++ /dev/null @@ -1,49 +0,0 @@ -// pa-signal.h - Catch runtime signals and turn them into exceptions. - -/* Copyright (C) 1998, 1999, 2000, 2009 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#include <signal.h> -#include <sys/syscall.h> - -#define HANDLE_SEGV 1 -#define HANDLE_FPE 1 - -#define SIGNAL_HANDLER(_name) \ -static void _Jv_##_name (int _dummy __attribute__ ((unused)), \ - siginfo_t *_info __attribute__ ((__unused__)), \ - void *arg __attribute__ ((__unused__))) - -#define MAKE_THROW_FRAME(_exception) - -#define INIT_SEGV \ -do \ - { \ - struct sigaction act; \ - act.sa_sigaction = _Jv_catch_segv; \ - sigemptyset (&act.sa_mask); \ - act.sa_flags = SA_SIGINFO; \ - syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct sigaction act; \ - act.sa_sigaction = _Jv_catch_fpe; \ - sigemptyset (&act.sa_mask); \ - act.sa_flags = SA_SIGINFO; \ - syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, _NSIG / 8); \ - } \ -while (0) - -#endif /* JAVA_SIGNAL_H */ diff --git a/libjava/include/posix-signal.h b/libjava/include/posix-signal.h deleted file mode 100644 index a0f96a9..0000000 --- a/libjava/include/posix-signal.h +++ /dev/null @@ -1,57 +0,0 @@ -// posix-signal.h - Catch runtime signals and turn them into exceptions. - -/* Copyright (C) 1998, 1999, 2000, 2009, 2011, 2012 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#include <signal.h> - -#define HANDLE_SEGV 1 -#define HANDLE_FPE 1 - -/* Different implementations of MD_FALLBACK_FRAME_STATE_FOR either require - SA_SIGINFO being set or fail if so. Cf. gcc/ada/init.c - (__gnat_install_handler) for details. */ - -#if defined __sun__ && defined __svr4__ -#define SA_FLAGS SA_NODEFER | SA_SIGINFO -#else -#error Must define SA_FLAGS. -#endif - -#if SA_FLAGS & SA_SIGINFO -#define SIGNAL_HANDLER(_name) \ -static void _Jv_##_name (int, \ - siginfo_t *_si __attribute__ ((__unused__)), \ - void *_uc __attribute__ ((__unused__))) -#define sa_signal_handler sa_sigaction -#else -#define SIGNAL_HANDLER(_name) \ -static void _Jv_##_name (int) -#define sa_signal_handler sa_handler -#endif - -#define MAKE_THROW_FRAME(_exception) - -#define _INIT_SIG_HANDLER(_SIG, _ACTION) \ -do \ - { \ - struct sigaction act; \ - act.sa_signal_handler = _Jv_##_ACTION; \ - act.sa_flags = SA_FLAGS; \ - sigemptyset (&act.sa_mask); \ - sigaction(_SIG, &act, NULL); \ - } \ -while (0) - -#define INIT_SEGV _INIT_SIG_HANDLER (SIGSEGV, catch_segv) -#define INIT_FPE _INIT_SIG_HANDLER (SIGFPE, catch_fpe) - -#endif /* JAVA_SIGNAL_H */ diff --git a/libjava/include/posix-threads.h b/libjava/include/posix-threads.h deleted file mode 100644 index 1ec311d..0000000 --- a/libjava/include/posix-threads.h +++ /dev/null @@ -1,384 +0,0 @@ -// -*- c++ -*- -// posix-threads.h - Defines for using POSIX threads. - -/* Copyright (C) 1998, 1999, 2001, 2003, 2006 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JV_POSIX_THREADS__ -#define __JV_POSIX_THREADS__ - -// NOTE: This file may only reference those pthread functions which -// are known not to be overridden by the Boehm GC. If in doubt, scan -// boehm-gc/gc.h. This is yucky but lets us avoid including gc.h -// everywhere (which would be truly yucky). - -#include <pthread.h> -#include <sched.h> -#include <sysdep/locks.h> - -// -// Typedefs. -// - -typedef struct _Jv_Thread_t -{ - // Flag values are defined in implementation. - int flags; - - // Actual thread id. - pthread_t thread; - - // Java Thread object. - java::lang::Thread *thread_obj; - - // Condition variable and corresponding mutex, used to implement the - // interruptable wait/notify mechanism. - pthread_cond_t wait_cond; - pthread_mutex_t wait_mutex; - - // Next thread for Condition Variable wait-list chain. - _Jv_Thread_t *next; - -} _Jv_Thread_t; - -typedef void _Jv_ThreadStartFunc (java::lang::Thread *); - -// Condition Variables used to implement wait/notify/sleep/interrupt. -typedef struct -{ - // Linked list of Threads that are waiting to be notified. - _Jv_Thread_t *first; - -} _Jv_ConditionVariable_t; - -typedef struct -{ - // For compatibility, simplicity, and correctness, we do not use the native - // pthreads recursive mutex implementation, but simulate them instead. - - // Mutex the thread holds the entire time this mutex is held. - pthread_mutex_t mutex; - - // Thread holding this mutex. - pthread_t owner; - - // Number of times mutex is held (lock depth). If 0, the lock is not held. - int count; -} _Jv_Mutex_t; - -// This is a convenience function used only by the pthreads thread -// implementation. This is slow, but that's too bad -- we need to do -// the checks for correctness. It might be nice to be able to compile -// this out. Returns 0 if the lock is held by the current thread, and -// 1 otherwise. -inline int -_Jv_MutexCheckMonitor (_Jv_Mutex_t *mu) -{ - return (pthread_equal(mu->owner, pthread_self()) == 0); -} - -// Type identifying a POSIX thread. -typedef pthread_t _Jv_ThreadDesc_t; - -inline _Jv_ThreadDesc_t -_Jv_GetPlatformThreadID(_Jv_Thread_t *t) -{ - return t->thread; -} - -// -// Signal helpers. -// - -void _Jv_BlockSigchld(); -void _Jv_UnBlockSigchld(); - - -// -// Condition variables. -// - -int _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, - jlong millis, jint nanos); - -int _Jv_CondNotify (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu); - -int _Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu); - -inline void -_Jv_CondInit (_Jv_ConditionVariable_t *cv) -{ - cv->first = 0; -} - -// -// Mutexes. -// - -#ifdef LOCK_DEBUG -# include <stdio.h> -#endif - -inline void -_Jv_MutexInit (_Jv_Mutex_t *mu) -{ -# ifdef LOCK_DEBUG /* Assumes Linuxthreads */ - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK); - pthread_mutex_init (&mu->mutex, &attr); -# else - pthread_mutex_init (&mu->mutex, 0); -# endif - - mu->count = 0; - mu->owner = 0; -} - -extern int _Jv_MutexLock (_Jv_Mutex_t *); - -inline int -_Jv_MutexUnlock (_Jv_Mutex_t *mu) -{ - if (_Jv_MutexCheckMonitor (mu)) - { -# ifdef LOCK_DEBUG - fprintf(stderr, "_Jv_MutexUnlock: Not owner\n"); - for (;;) {} -# endif - return 1; - } - - mu->count--; - - if (mu->count == 0) - { - mu->owner = 0; -# ifdef LOCK_DEBUG - int result = pthread_mutex_unlock (&mu->mutex); - if (0 != result) - { - fprintf(stderr, "Pthread_mutex_unlock returned %d\n", result); - for (;;) {} - } -# else - pthread_mutex_unlock (&mu->mutex); -# endif - } - return 0; -} - -#ifndef LINUX_THREADS - -// pthread_mutex_destroy does nothing on Linux and it is a win to avoid -// defining this macro. - -#define _Jv_HaveMutexDestroy - -inline void -_Jv_MutexDestroy (_Jv_Mutex_t *mu) -{ - pthread_mutex_destroy (&mu->mutex); -} - -#endif /* LINUX_THREADS */ - -// -// Thread creation and manipulation. -// - -void _Jv_InitThreads (void); - -_Jv_Thread_t *_Jv_ThreadInitData (java::lang::Thread *thread); -void _Jv_ThreadDestroyData (_Jv_Thread_t *data); - -inline java::lang::Thread * -_Jv_ThreadCurrent (void) -{ - extern pthread_key_t _Jv_ThreadKey; - return (java::lang::Thread *) pthread_getspecific (_Jv_ThreadKey); -} - -#ifdef JV_HASH_SYNCHRONIZATION -// Should be specialized to just load the "current thread" register -// on platforms that support it. Speed is of the essence. The value -// of the descriptor is not, so long as there is a one-to-one correspondence -// to threads. - - -#ifdef __ia64__ - -typedef size_t _Jv_ThreadId_t; - -register size_t _Jv_self __asm__("r13"); - // For linux_threads this is really a pointer to its thread data - // structure. We treat it as opaque. That should also work - // on other operating systems that follow the ABI standard. - -// This should become the prototype for machines that maintain a thread -// pointer in a register. -inline _Jv_ThreadId_t -_Jv_ThreadSelf (void) -{ - return _Jv_self; -} - -#define JV_SELF_DEFINED - -#endif /* __ia64__ */ - -#ifdef __alpha__ - -typedef void *_Jv_ThreadId_t; - -inline _Jv_ThreadId_t -_Jv_ThreadSelf (void) -{ - return __builtin_thread_pointer (); -} - -#define JV_SELF_DEFINED - -#endif /* __alpha__ */ - -#if defined(SLOW_PTHREAD_SELF) - -#include "sysdep/locks.h" - -typedef pthread_t _Jv_ThreadId_t; - -// E.g. on X86 Linux, pthread_self() is too slow for our purpose. -// Instead we maintain a cache based on the current sp value. -// This is similar to what's done for thread local allocation in the -// GC, only far simpler. -// This code should probably go away when Linux/X86 starts using a -// segment register to hold the thread id. -# define LOG_THREAD_SPACING 12 - // If two thread pointer values are closer than - // 1 << LOG_THREAD_SPACING, we assume they belong - // to the same thread. -# define SELF_CACHE_SIZE 1024 -# define SC_INDEX(sp) (((unsigned long)(sp) >> 19) & (SELF_CACHE_SIZE-1)) - // Mapping from sp value to cache index. - // Note that this is not in any real sense a hash - // function, since we need to be able to clear - // all possibly matching slots on thread startup. - // Thus all entries that might correspond to - // a given thread are intentionally contiguous. - // Works well with anything that allocates at least - // 512KB stacks. -# define SC_CLEAR_MIN (-16) // When starting a new thread, we clear -# define SC_CLEAR_MAX 0 // all self cache entries between - // SC_INDEX(sp)+SC_CLEAR_MIN and - // SC_INDEX(sp)+SC_CLEAR_MAX to ensure - // we never see stale values. The - // current values assume a downward - // growing stack of size <= 7.5 MB. -# define BAD_HIGH_SP_VALUE ((size_t)(-1)) - -extern volatile -struct self_cache_entry { - size_t high_sp_bits; // sp value >> LOG_THREAD_SPACING - pthread_t self; // Corresponding thread -} _Jv_self_cache[]; - -void _Jv_Self_Cache_Init(); - -_Jv_ThreadId_t -_Jv_ThreadSelf_out_of_line(volatile self_cache_entry *sce, - size_t high_sp_bits); - -inline _Jv_ThreadId_t -_Jv_ThreadSelf (void) -{ - int dummy; - size_t sp = (size_t)(&dummy); - unsigned h = SC_INDEX(sp); - volatile self_cache_entry *sce = _Jv_self_cache + h; - pthread_t candidate_self = sce -> self; // Read must precede following one. - read_barrier(); - if (sce -> high_sp_bits == sp >> LOG_THREAD_SPACING) - { - // The sce -> self value we read must be valid. An intervening - // cache replacement by another thread would have first replaced - // high_sp_bits by something else, and it can't possibly change - // back without our intervention. - return candidate_self; - } - else - return _Jv_ThreadSelf_out_of_line(sce, sp >> LOG_THREAD_SPACING); -} - -#define JV_SELF_DEFINED - -#endif /* SLOW_PTHREAD_SELF */ - -#ifndef JV_SELF_DEFINED /* If all else fails, call pthread_self directly */ - -typedef pthread_t _Jv_ThreadId_t; - -inline _Jv_ThreadId_t -_Jv_ThreadSelf (void) -{ - return pthread_self(); -} - -#endif /* !JV_SELF_DEFINED */ - -#endif /* JV_HASH_SYNCHRONIZATION */ - -inline _Jv_Thread_t * -_Jv_ThreadCurrentData (void) -{ - extern pthread_key_t _Jv_ThreadDataKey; - return (_Jv_Thread_t *) pthread_getspecific (_Jv_ThreadDataKey); -} - -inline void -_Jv_ThreadYield (void) -{ -#ifdef HAVE_SCHED_YIELD - sched_yield (); -#endif /* HAVE_SCHED_YIELD */ -} - -void _Jv_ThreadRegister (_Jv_Thread_t *data); -void _Jv_ThreadUnRegister (); - -void _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio); - -void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, - _Jv_ThreadStartFunc *meth); - -void _Jv_ThreadWait (void); - -void _Jv_ThreadInterrupt (_Jv_Thread_t *data); - -// park() / unpark() support - -struct ParkHelper -{ - volatile obj_addr_t permit; - pthread_mutex_t mutex; - pthread_cond_t cond; - - void init (); - void deactivate (); - void destroy (); - void park (jboolean isAbsolute, jlong time); - void unpark (); -}; - -inline void -ParkHelper::destroy () -{ - pthread_mutex_destroy (&mutex); - pthread_cond_destroy (&cond); -} - -#endif /* __JV_POSIX_THREADS__ */ diff --git a/libjava/include/posix.h b/libjava/include/posix.h deleted file mode 100644 index 6bd560c..0000000 --- a/libjava/include/posix.h +++ /dev/null @@ -1,193 +0,0 @@ -// posix.h -- Helper functions for POSIX-flavored OSs. - -/* Copyright (C) 2000, 2002, 2003, 2006, 2010, 2012 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JV_POSIX_H__ -#define __JV_POSIX_H__ - -#include <time.h> -#include <sys/types.h> - -#ifdef HAVE_SYS_TIME_H -#include <sys/time.h> -#endif - -#ifdef HAVE_SYS_SELECT_H -#include <sys/select.h> -#endif - -#ifdef HAVE_SYS_SOCKET_H -#include <sys/socket.h> -#endif - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -#include <fcntl.h> - -/* The header file <sys/rw_lock.h> needs to be included before javaprims.h - on HP-UX 11 to avoid a compilation error. */ -#ifdef HAVE_SYS_RW_LOCK_H -#include <sys/rw_lock.h> -#endif - -#include <gcj/cni.h> -#include <java/util/Properties.h> - -// Prefix and suffix for shared libraries. -#define _Jv_platform_solib_prefix "lib" -#if defined(__APPLE__) && defined(__MACH__) -#define _Jv_platform_solib_suffix ".dylib" -#elif defined(HPUX) && defined(HP_PA) -#define _Jv_platform_solib_suffix ".sl" -#else -#define _Jv_platform_solib_suffix ".so" -#endif - -#if __MACH__ && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060) -# undef _Unwind_FindEnclosingFunction -# define _Unwind_FindEnclosingFunction(PC) _darwin10_Unwind_FindEnclosingFunction(PC) -#endif - -// Some POSIX systems don't have O_SYNC and O_DYSNC so we define them here. -// Needed in java/io/natFileDescriptorPosix.cc. -#if !defined (O_SYNC) && defined (O_FSYNC) -#define O_SYNC O_FSYNC -#endif -#if !defined (O_DSYNC) && defined (O_FSYNC) -#define O_DSYNC O_FSYNC -#endif -// If O_DSYNC is still not defined, use O_SYNC (needed for newlib) -#if !defined (O_DSYNC) -#define O_DSYNC O_SYNC -#endif - -// Name of the Process implementation. -#ifdef ECOS -#define _Jv_platform_process ::java::lang::EcosProcess -#else -#define _Jv_platform_process ::java::lang::PosixProcess -#endif - -// Separator for file name components. -#define _Jv_platform_file_separator ((jchar) '/') -// Separator for path components. -#define _Jv_platform_path_separator ((jchar) ':') - -// List of names for `JNI_OnLoad'. -#define _Jv_platform_onload_names { "JNI_OnLoad", NULL } - -// Type of libffi ABI used by JNICALL methods. NOTE: This must agree -// with the JNICALL definition in jni.h -#define _Jv_platform_ffi_abi FFI_DEFAULT_ABI - -#ifndef DISABLE_JAVA_NET -#include <java/net/InetAddress.h> -#endif - -extern int _Jv_select (int n, fd_set *, fd_set *, fd_set *, struct timeval *); -extern jlong _Jv_platform_gettimeofday (); -extern jlong _Jv_platform_nanotime (); -extern void _Jv_platform_initialize (void); -extern void _Jv_platform_initProperties (java::util::Properties*); - -#ifdef JV_HASH_SYNCHRONIZATION -#ifndef HAVE_USLEEP_DECL -extern "C" int usleep (useconds_t useconds); -#endif /* not HAVE_USLEEP_DECL */ - -inline void -_Jv_platform_usleep (unsigned long usecs) -{ - usleep (usecs); -} -#endif /* JV_HASH_SYNCHRONIZATION */ - -#ifndef DISABLE_JAVA_NET - -#ifndef HAVE_SOCKLEN_T -#define socklen_t int -#endif - -static inline int -_Jv_socket (int domain, int type, int protocol) -{ - return ::socket (domain, type, protocol); -} - -#undef socket - -inline int -_Jv_connect (jint fd, sockaddr *ptr, int len) -{ - return ::connect (fd, ptr, len); -} - -#undef connect - -inline int -_Jv_close (jint fd) -{ - return ::close (fd); -} - -#undef close - -// Avoid macro definitions of bind from system headers, e.g. on -// Solaris 7 with _XOPEN_SOURCE. FIXME -inline int -_Jv_bind (int fd, struct sockaddr *addr, int addrlen) -{ - return ::bind (fd, addr, addrlen); -} - -#undef bind - -inline int -_Jv_listen (int fd, int backlog) -{ - return ::listen (fd, backlog); -} - -#undef listen - -inline int -_Jv_write(int s, void *buf, int len) -{ - return ::write (s, buf, len); -} - -#undef write - -inline int -_Jv_read(int s, void *buf, int len) -{ - return ::read (s, buf, len); -} - -#undef read - -#endif /* DISABLE_JAVA_NET */ - -// Wraps ::pipe -static inline int -_Jv_pipe (int filedes[2]) -{ - return ::pipe (filedes); -} - -// Forward declaration. See java-stack.h for definition. -struct _Jv_AddrInfo; - -// Given an address, determine the executable or shared object that defines -// it and the nearest named symbol. -extern int _Jv_platform_dladdr (void *addr, _Jv_AddrInfo *info); - -#endif /* __JV_POSIX_H__ */ diff --git a/libjava/include/powerpc-signal.h b/libjava/include/powerpc-signal.h deleted file mode 100644 index 9c6ddac..0000000 --- a/libjava/include/powerpc-signal.h +++ /dev/null @@ -1,113 +0,0 @@ -// powerpc-signal.h - Catch runtime signals and turn them into exceptions -// on a powerpc based Linux system. - -/* Copyright (C) 2003, 2006 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#include <signal.h> -#include <sys/syscall.h> - -#define HANDLE_SEGV 1 -#undef HANDLE_FPE - -#define SIGNAL_HANDLER(_name) \ - static void _name (int /* _signal */, struct sigcontext *_sc) - -/* MD_FALLBACK_FRAME_STATE_FOR takes care of special casing PC - before the faulting instruction, so we don't need to do anything - here. */ - -#define MAKE_THROW_FRAME(_exception) - -/* For an explanation why we cannot simply use sigaction to - install the handlers, see i386-signal.h. */ - -/* We use kernel_old_sigaction here because we're calling the kernel - directly rather than via glibc. The sigaction structure that the - syscall uses is a different shape from the one in userland and not - visible to us in a header file so we define it here. - Additionally we want a proper prototype for the handler function - with the struct sigcontext pointer passed by the kernel as the 2nd - argument, which isn't there in userland headers. - - Note that we explicitly avoid the SA_SIGINFO flag in INIT_SEGV and - INIT_FPE below. Using the ucontext pointer passed as 3rd argument - of a SA_SIGINFO type handler would need complicated backwards - compatibility hacks in MAKE_THROW_FRAME, as the ucontext layout - on PPC changed during the 2.5 kernel series. */ - -#ifndef __powerpc64__ -struct kernel_old_sigaction { - void (*k_sa_handler) (int, struct sigcontext *); - unsigned long k_sa_mask; - unsigned long k_sa_flags; - void (*k_sa_restorer) (void); -}; - -#define INIT_SEGV \ -do \ - { \ - struct kernel_old_sigaction kact; \ - kact.k_sa_handler = catch_segv; \ - kact.k_sa_mask = 0; \ - kact.k_sa_flags = 0; \ - if (syscall (SYS_sigaction, SIGSEGV, &kact, NULL) != 0) \ - __asm__ __volatile__ (".long 0"); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct kernel_old_sigaction kact; \ - kact.k_sa_handler = catch_fpe; \ - kact.k_sa_mask = 0; \ - kact.k_sa_flags = 0; \ - if (syscall (SYS_sigaction, SIGFPE, &kact, NULL) != 0) \ - __asm__ __volatile__ (".long 0"); \ - } \ -while (0) - -#else /* powerpc64 */ - -struct kernel_sigaction -{ - void (*k_sa_handler) (int, struct sigcontext *); - unsigned long k_sa_flags; - void (*k_sa_restorer)(void); - unsigned long k_sa_mask; -}; - -#define INIT_SEGV \ -do \ - { \ - struct kernel_sigaction kact; \ - memset (&kact, 0, sizeof (kact)); \ - kact.k_sa_handler = catch_segv; \ - if (syscall (SYS_rt_sigaction, SIGSEGV, &kact, NULL, 8) != 0) \ - __asm__ __volatile__ (".long 0"); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct kernel_sigaction kact; \ - memset (&kact, 0, sizeof (kact)); \ - kact.k_sa_handler = catch_fpe; \ - if (syscall (SYS_rt_sigaction, SIGFPE, &kact, NULL, 8) != 0) \ - __asm__ __volatile__ (".long 0"); \ - } \ -while (0) -#endif - -#endif /* JAVA_SIGNAL_H */ diff --git a/libjava/include/s390-signal.h b/libjava/include/s390-signal.h deleted file mode 100644 index 4ca4c10..0000000 --- a/libjava/include/s390-signal.h +++ /dev/null @@ -1,288 +0,0 @@ -// s390-signal.h - Catch runtime signals and turn them into exceptions -// on an s390 based Linux system. - -/* Copyright (C) 2002, 2010 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#include <signal.h> -#include <sys/syscall.h> -#include <ucontext.h> -#include <limits.h> - -#define HANDLE_SEGV 1 -#define HANDLE_FPE 1 - -#define SIGNAL_HANDLER(_name) \ -static void _name (int, siginfo_t *_si __attribute__((unused)), \ - ucontext_t *_uc __attribute__((unused))) - -/* We no longer need to fiddle with the PSW address in the signal handler; - this is now all handled correctly in MD_FALLBACK_FRAME_STATE_FOR. */ -#define MAKE_THROW_FRAME(_exception) - - -/* According to the JVM spec, "if the dividend is the negative integer - of the smallest magnitude and the divisor is -1, then overflow occurs - and the result is equal to the dividend. Despite the overflow, no - exception occurs". - - We handle this by inspecting the instruction which generated the signal, - and if dividend and divisor are as above, we simply return from the signal - handler. This causes execution to continue after the instruction. - Before returning, we the set result registers as expected. */ -#define UC_EXTENDED 0x00000001 - -#define HANDLE_DIVIDE_OVERFLOW \ -do \ -{ \ - unsigned char *_eip = (unsigned char *) \ - __builtin_extract_return_addr (_si->si_addr); \ - unsigned long *_regs = _uc->uc_mcontext.gregs; \ - int _r1, _r2, _d2, _x2, _b2; \ - struct \ - { \ - unsigned long int uc_flags; \ - struct ucontext *uc_link; \ - stack_t uc_stack; \ - mcontext_t uc_mcontext; \ - unsigned long sigmask[2]; \ - unsigned long ext_regs[16]; \ - } *_uc_ext = (typeof(_uc_ext))_uc; \ - \ - /* First, a couple of helper routines to decode instructions. */ \ - struct _decode \ - { \ - /* Decode RR instruction format. */ \ - static inline int _is_rr (unsigned char *_eip, \ - unsigned char _op, \ - int *_r1, int *_r2) \ - { \ - if (_eip[0] == _op) \ - { \ - *_r1 = _eip[1] >> 4; \ - *_r2 = _eip[1] & 0xf; \ - return 1; \ - } \ - return 0; \ - } \ - \ - /* Decode RX instruction format. */ \ - static inline int _is_rx (unsigned char *_eip, \ - unsigned char _op, \ - int *_r1, int *_d2, int *_x2, int *_b2) \ - { \ - if (_eip[0] == _op) \ - { \ - *_r1 = _eip[1] >> 4; \ - *_x2 = _eip[1] & 0xf; \ - *_b2 = _eip[2] >> 4; \ - *_d2 = ((_eip[2] & 0xf) << 8) + _eip[3]; \ - return 1; \ - } \ - return 0; \ - } \ - \ - /* Decode RRE instruction format. */ \ - static inline int _is_rre (unsigned char *_eip, \ - unsigned char _op1, unsigned char _op2,\ - int *_r1, int *_r2) \ - { \ - if (_eip[0] == _op1 && _eip[1] == _op2) \ - { \ - *_r1 = _eip[3] >> 4; \ - *_r2 = _eip[3] & 0xf; \ - return 1; \ - } \ - return 0; \ - } \ - \ - /* Decode RXY instruction format. */ \ - static inline int _is_rxy (unsigned char *_eip, \ - unsigned char _op1, unsigned char _op2,\ - int *_r1, int *_d2, int *_x2, int *_b2)\ - { \ - if (_eip[0] == _op1 && _eip[5] == _op2) \ - { \ - *_r1 = _eip[1] >> 4; \ - *_x2 = _eip[1] & 0xf; \ - *_b2 = _eip[2] >> 4; \ - *_d2 = ((_eip[2] & 0xf) << 8) + _eip[3] + (_eip[4] << 12); \ - /* We have a 20-bit signed displacement. */ \ - *_d2 = (*_d2 ^ 0x80000) - 0x80000; \ - return 1; \ - } \ - return 0; \ - } \ - \ - /* Compute effective address. */ \ - static inline unsigned long _eff (unsigned long *_regs, \ - long _d, int _x, int _b) \ - { \ - return _d + (_x? _regs[_x] : 0) + (_b? _regs[_b] : 0); \ - } \ - \ - static inline int is_long_long_min_p (unsigned long *_regs, \ - unsigned long *_ext_regs, \ - int _r) \ - { \ - return ((long long)_regs[_r] \ - | (long long)_ext_regs[_r] << 32) == \ - LONG_LONG_MIN; \ - } \ - }; \ - \ - /* DR r1,r2 */ \ - if (_decode::_is_rr (_eip, 0x1d, &_r1, &_r2) \ - && (int) _regs[_r1] == -1 && (int) _regs[_r1+1] == INT_MIN \ - && (int) _regs[_r2] == -1) \ - { \ - _regs[_r1] &= ~0xffffffff; \ - return; \ - } \ - \ - /* D r1,d2(x2,b2) */ \ - if (_decode::_is_rx (_eip, 0x5d, &_r1, &_d2, &_x2, &_b2) \ - && (int) _regs[_r1] == -1 && (int) _regs[_r1+1] == INT_MIN \ - && *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1) \ - { \ - _regs[_r1] &= ~0xffffffff; \ - return; \ - } \ - \ - /* DSGR r1,r2 */ \ - if (_decode::_is_rre (_eip, 0xb9, 0x0d, &_r1, &_r2) \ - && (long) _regs[_r1+1] == LONG_MIN \ - && (long) _regs[_r2] == -1L) \ - { \ - _regs[_r1] = 0; \ - return; \ - } \ - \ - /* DSGFR r1,r2 */ \ - if (_decode::_is_rre (_eip, 0xb9, 0x1d, &_r1, &_r2) \ - && (long) _regs[_r1+1] == LONG_MIN \ - && (int) _regs[_r2] == -1) \ - { \ - _regs[_r1] = 0; \ - return; \ - } \ - \ - /* DSG r1,d2(x2,b2) */ \ - if (_decode::_is_rxy (_eip, 0xe3, 0x0d, &_r1, &_d2, &_x2, &_b2) \ - && (long) _regs[_r1+1] == LONG_MIN \ - && *(long *) _decode::_eff (_regs, _d2, _x2, _b2) == -1L) \ - { \ - _regs[_r1] = 0; \ - return; \ - } \ - \ - /* DSGF r1,d2(x2,b2) */ \ - if (_decode::_is_rxy (_eip, 0xe3, 0x1d, &_r1, &_d2, &_x2, &_b2) \ - && (long) _regs[_r1+1] == LONG_MIN \ - && *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1) \ - { \ - _regs[_r1] = 0; \ - return; \ - } \ - \ - /* The extended ucontext contains the upper halfs of the 64bit \ - registers in 31bit applications. */ \ - if (_uc->uc_flags & 1 == 1) \ - { \ - /* DSGR r1,r2 */ \ - if (_decode::_is_rre (_eip, 0xb9, 0x0d, &_r1, &_r2) \ - && (int) _regs[_r2] == -1 \ - && (int) _uc_ext->ext_regs[_r2] == -1 \ - && _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \ - _r1 + 1)) \ - { \ - _regs[_r1] = 0; \ - _uc_ext->ext_regs[_r1] = 0; \ - return; \ - } \ - \ - /* DSGFR r1,r2 */ \ - if (_decode::_is_rre (_eip, 0xb9, 0x1d, &_r1, &_r2) \ - && (int) _regs[_r2] == -1 \ - && _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \ - _r1 + 1)) \ - { \ - _regs[_r1] = 0; \ - _uc_ext->ext_regs[_r1] = 0; \ - return; \ - } \ - \ - /* DSG r1,d2(x2,b2) */ \ - if (_decode::_is_rxy (_eip, 0xe3, 0x0d, &_r1, &_d2, &_x2, &_b2) \ - && *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1 \ - && *(int *) _decode::_eff (_regs, _d2 + 4, _x2, _b2) == -1 \ - && _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \ - _r1 + 1)) \ - { \ - _regs[_r1] = 0; \ - _uc_ext->ext_regs[_r1] = 0; \ - return; \ - } \ - \ - /* DSGF r1,d2(x2,b2) */ \ - if (_decode::_is_rxy (_eip, 0xe3, 0x1d, &_r1, &_d2, &_x2, &_b2) \ - && *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1 \ - && _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \ - _r1 + 1)) \ - { \ - _regs[_r1] = 0; \ - _uc_ext->ext_regs[_r1] = 0; \ - return; \ - } \ - } \ - } \ -while (0) - -/* For an explanation why we cannot simply use sigaction to - install the handlers, see i386-signal.h. */ - -/* We use old_kernel_sigaction here because we're calling the kernel - directly rather than via glibc. The sigaction structure that the - syscall uses is a different shape from the one in userland and not - visible to us in a header file so we define it here. */ - -struct old_s390_kernel_sigaction { - void (*k_sa_handler) (int, siginfo_t *, ucontext_t *); - unsigned long k_sa_mask; - unsigned long k_sa_flags; - void (*sa_restorer) (void); -}; - -#define INIT_SEGV \ -do \ - { \ - struct old_s390_kernel_sigaction kact; \ - kact.k_sa_handler = catch_segv; \ - kact.k_sa_mask = 0; \ - kact.k_sa_flags = SA_SIGINFO; \ - syscall (SYS_sigaction, SIGSEGV, &kact, NULL); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct old_s390_kernel_sigaction kact; \ - kact.k_sa_handler = catch_fpe; \ - kact.k_sa_mask = 0; \ - kact.k_sa_flags = SA_SIGINFO; \ - syscall (SYS_sigaction, SIGFPE, &kact, NULL); \ - } \ -while (0) - -#endif /* JAVA_SIGNAL_H */ - diff --git a/libjava/include/sh-signal.h b/libjava/include/sh-signal.h deleted file mode 100644 index 3a96ce2..0000000 --- a/libjava/include/sh-signal.h +++ /dev/null @@ -1,75 +0,0 @@ -// sh-signal.h - Catch runtime signals and turn them into exceptions -// on a SuperH based Linux system. - -/* Copyright (C) 2004, 2006 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#include <signal.h> -#include <sys/syscall.h> - -#define HANDLE_SEGV 1 -#define HANDLE_FPE 1 - -/* The third parameter to the signal handler points to something with - * this structure defined in asm/ucontext.h, but the name clashes with - * struct ucontext from sys/ucontext.h so this private copy is used. */ -typedef struct _sig_ucontext { - unsigned long uc_flags; - struct _sig_ucontext *uc_link; - stack_t uc_stack; - struct sigcontext uc_mcontext; - sigset_t uc_sigmask; -} sig_ucontext_t; - -#define SIGNAL_HANDLER(_name) \ - static void _name (int , siginfo_t *, sig_ucontext_t *_uc) - -#define MAKE_THROW_FRAME(_exception) - -/* For an explanation why we cannot simply use sigaction to - install the handlers, see i386-signal.h. */ - -/* We use kernel_old_sigaction here because we're calling the kernel - directly rather than via glibc. The sigaction structure that the - syscall uses is a different shape from the one in userland and not - visible to us in a header file so we define it here. */ - -struct kernel_old_sigaction { - void (*k_sa_handler) (int, siginfo_t *, sig_ucontext_t *); - unsigned long k_sa_mask; - unsigned long k_sa_flags; - void (*k_sa_restorer) (void); -}; - -#define INIT_SEGV \ -do \ - { \ - struct kernel_old_sigaction kact; \ - kact.k_sa_handler = catch_segv; \ - kact.k_sa_mask = 0; \ - kact.k_sa_flags = SA_SIGINFO | SA_NODEFER; \ - syscall (SYS_sigaction, SIGSEGV, &kact, NULL); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct kernel_old_sigaction kact; \ - kact.k_sa_handler = catch_fpe; \ - kact.k_sa_mask = 0; \ - kact.k_sa_flags = SA_SIGINFO | SA_NODEFER; \ - syscall (SYS_sigaction, SIGFPE, &kact, NULL); \ - } \ -while (0) - -#endif /* JAVA_SIGNAL_H */ diff --git a/libjava/include/stamp-h.in b/libjava/include/stamp-h.in deleted file mode 100644 index 9788f70..0000000 --- a/libjava/include/stamp-h.in +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/libjava/include/win32-signal.h b/libjava/include/win32-signal.h deleted file mode 100644 index 8d8a9e2..0000000 --- a/libjava/include/win32-signal.h +++ /dev/null @@ -1,40 +0,0 @@ -// win32-signal.h - Catch runtime signals and turn them into exceptions. - -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -// Exception handling is done totally differently on Win32 this stuff -// just keeps it compatible - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#define HANDLE_SEGV 1 -#define HANDLE_FPE 1 - -#define SIGNAL_HANDLER(_name) \ -static void _name (int _dummy) - -#define MAKE_THROW_FRAME(_exception) do {} while (0) -#define HANDLE_DIVIDE_OVERFLOW do {} while (0) - -#define INIT_SEGV \ -do \ - { \ - } \ -while (0) - - -#define INIT_FPE \ -do \ - { \ - } \ -while (0) - - -#endif /* JAVA_SIGNAL_H */ diff --git a/libjava/include/win32-threads.h b/libjava/include/win32-threads.h deleted file mode 100644 index b8f70f5..0000000 --- a/libjava/include/win32-threads.h +++ /dev/null @@ -1,232 +0,0 @@ -// -*- c++ -*- -// win32-threads.h - Defines for using Win32 threads. - -/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software - Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JV_WIN32_THREADS__ -#define __JV_WIN32_THREADS__ - -#define WIN32_LEAN_AND_MEAN -#include <windows.h> - -// -// Typedefs. -// - -typedef struct -{ - // ev[0] (signal) is a Win32 auto-reset event for _Jv_CondNotify - // ev[1] (broadcast) is a Win32 manual-reset event for _Jv_CondNotifyAll - HANDLE ev[2]; - - // Number of threads waiting on this condition variable - int blocked_count; - - // Protects access to the blocked_count variable - CRITICAL_SECTION count_mutex; - -} _Jv_ConditionVariable_t; - -typedef struct -{ - // The thread-id of the owner thread if any, 0 otherwise - DWORD owner; - - // Track nested mutex acquisitions by the same thread - int refcount; - - // The actual Windows construct used to implement this mutex - CRITICAL_SECTION cs; - -} _Jv_Mutex_t; - -typedef struct _Jv_Thread_t -{ - int flags; // Flags are defined in implementation. - HANDLE handle; // Actual handle to the thread - - // Protects access to the thread's interrupt_flag and - // interrupt_event variables within this module. - CRITICAL_SECTION interrupt_mutex; - - // A Win32 auto-reset event for thread interruption - HANDLE interrupt_event; - - java::lang::Thread *thread_obj; -} _Jv_Thread_t; - -typedef DWORD _Jv_ThreadId_t; - -inline _Jv_ThreadId_t -_Jv_ThreadSelf (void) -{ - return GetCurrentThreadId(); -} - -typedef void _Jv_ThreadStartFunc (java::lang::Thread *); - -// Type identifying a win32 thread. -typedef HANDLE _Jv_ThreadDesc_t; - -inline _Jv_ThreadDesc_t -_Jv_GetPlatformThreadID(_Jv_Thread_t *t) -{ - return t->handle; -} - -// -// Condition variables. -// - -#define _Jv_HaveCondDestroy -int _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, jlong millis, jint nanos); -void _Jv_CondInit (_Jv_ConditionVariable_t *cv); -void _Jv_CondDestroy (_Jv_ConditionVariable_t *cv); -int _Jv_CondNotify (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *); -int _Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *); - -// -// Mutexes. -// We use CRITICAL_SECTIONs instead of CreateMutex() for better performance -// - -// Returns 0 if the mutex lock is held by the current thread, and 1 otherwise. -inline int _Jv_MutexCheckMonitor (_Jv_Mutex_t *mu) -{ - return (mu->owner != GetCurrentThreadId ( )); -} - -inline void _Jv_MutexInit (_Jv_Mutex_t *mu) -{ - mu->owner = 0UL; - mu->refcount = 0; - InitializeCriticalSection (&(mu->cs)); -} - -#define _Jv_HaveMutexDestroy -inline void _Jv_MutexDestroy (_Jv_Mutex_t *mu) -{ - mu->owner = 0UL; - mu->refcount = 0; - DeleteCriticalSection (&(mu->cs)); - mu = NULL; -} - -inline int _Jv_MutexUnlock (_Jv_Mutex_t *mu) -{ - if (mu->owner == GetCurrentThreadId ( )) - { - mu->refcount--; - if (mu->refcount == 0) - mu->owner = 0UL; - LeaveCriticalSection (&(mu->cs)); - return 0; - } - else - return 1; -} - -inline int _Jv_MutexLock (_Jv_Mutex_t *mu) -{ - EnterCriticalSection (&(mu->cs)); - mu->owner = GetCurrentThreadId ( ); - mu->refcount++; - return 0; -} - -// -// Thread creation and manipulation. -// - -void _Jv_InitThreads (void); -_Jv_Thread_t *_Jv_ThreadInitData (java::lang::Thread *thread); -void _Jv_ThreadDestroyData (_Jv_Thread_t *data); - -inline java::lang::Thread* _Jv_ThreadCurrent (void) -{ - extern DWORD _Jv_ThreadKey; - return (java::lang::Thread *) TlsGetValue(_Jv_ThreadKey); -} - -inline _Jv_Thread_t *_Jv_ThreadCurrentData(void) -{ - extern DWORD _Jv_ThreadDataKey; - return (_Jv_Thread_t *) TlsGetValue(_Jv_ThreadDataKey); -} - -inline void _Jv_ThreadYield (void) -{ - Sleep (0); -} - -void _Jv_ThreadRegister (_Jv_Thread_t *data); -void _Jv_ThreadUnRegister (); - -void _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio); -void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, - _Jv_ThreadStartFunc *meth); -void _Jv_ThreadWait (void); -void _Jv_ThreadInterrupt (_Jv_Thread_t *data); - -// -// Thread interruption support -// - -// Gets the auto-reset event for the current thread which is -// signalled by _Jv_ThreadInterrupt. The caller can wait on this -// event in addition to other waitable objects. -// -// NOTE: After waiting on this event with WaitForMultipleObjects, -// you should ALWAYS use the return value of WaitForMultipleObjects -// to test whether this event was signalled and whether thread -// interruption has occurred. You should do this instead of checking -// the thread's interrupted_flag, because someone could have reset -// this flag in the interval of time between the return of -// WaitForMultipleObjects and the time you query interrupted_flag. -// See java/lang/natWin32Process.cc (waitFor) for an example. -HANDLE _Jv_Win32GetInterruptEvent (void); - -// park() / unpark() support - -struct ParkHelper -{ - // We use LONG instead of obj_addr_t to avoid pulling in locks.h, - // which depends on size_t, ... - volatile LONG permit; - - // The critical section is used for lazy initialization of our event - CRITICAL_SECTION cs; - HANDLE event; - - void init (); - void deactivate (); - void destroy (); - void park (jboolean isAbsolute, jlong time); - void unpark (); - -private: - void init_event(); -}; - -// Remove defines from <windows.h> that conflict with various things in libgcj code - -#undef TRUE -#undef FALSE -#undef MAX_PRIORITY -#undef MIN_PRIORITY -#undef min -#undef max -#undef interface -#undef STRICT -#undef VOID -#undef TEXT -#undef OUT - -#endif /* __JV_WIN32_THREADS__ */ diff --git a/libjava/include/win32.h b/libjava/include/win32.h deleted file mode 100644 index 48989fe..0000000 --- a/libjava/include/win32.h +++ /dev/null @@ -1,188 +0,0 @@ -// win32.h -- Helper functions for Microsoft-flavored OSs. - -/* Copyright (C) 2002, 2003, 2006 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#ifndef __JV_WIN32_H__ -#define __JV_WIN32_H__ - -// Enable UNICODE support? - -#ifdef MINGW_LIBGCJ_UNICODE -#define UNICODE -#define _UNICODE -#endif // MINGW_LIBGCJ_UNICODE - -#include <tchar.h> - -// Includes -#define WIN32_LEAN_AND_MEAN -// Force Winsock 2 interface. -#include <winsock2.h> -#include <windows.h> -#undef WIN32_LEAN_AND_MEAN -#undef STRICT - -#include <ws2tcpip.h> -#include <gcj/cni.h> -#include <jvm.h> -#include <java/util/Properties.h> - -#include <io.h> - -/* Begin UNICODE Support Classes and Functions */ - -/* Helper class which creates a temporary, null-terminated, - wide-character C string. */ -class _Jv_Win32TempString -{ -public: - _Jv_Win32TempString(jstring jstr); - ~_Jv_Win32TempString(); - -// Accessors - operator LPCTSTR() const - { - return buf_; - } - LPCTSTR buf() const - { - return buf_; - } - LPTSTR buf() - { - return buf_; - } - -private: - TCHAR stackbuf_[500]; - LPTSTR buf_; -}; - -// Mimics the JV_TEMP_STRING_UTF macro in jvm.h -#define JV_TEMP_STRING_WIN32(x,y) _Jv_Win32TempString x(y); - -// Creates a jstring from a LPCTSTR -extern jstring _Jv_Win32NewString (LPCTSTR pcsz); - -/* End UNICODE Helpers */ - -// Prefix and suffix for shared libraries. -#define _Jv_platform_solib_prefix "" -#define _Jv_platform_solib_suffix ".dll" - -// Name of the Process implementation. -#define _Jv_platform_process ::java::lang::Win32Process - -// Separator for file name components. -#define _Jv_platform_file_separator ((jchar) '\\') -// Separator for path components. -#define _Jv_platform_path_separator ((jchar) ';') - -// List of names for `JNI_OnLoad'. On Win32, JNI_OnLoad is an -// "stdcall" function taking two pointers (8 bytes) as arguments. It -// could also have been exported as "JNI_OnLoad@8" (MinGW) or -// "_JNI_OnLoad@8" (MSVC). -#define _Jv_platform_onload_names \ - { "JNI_OnLoad", "JNI_OnLoad@8", "_JNI_OnLoad@8", NULL } - -// Type of libffi ABI used by JNICALL methods. NOTE: This must agree -// with the JNICALL definition in jni.h -#define _Jv_platform_ffi_abi FFI_STDCALL - -/* Useful helper classes and methods. */ - -/* A C++ wrapper around a WSAEVENT which closes the event - in its destructor. If dwSelFlags is non-zero, we also - issue an WSAEventSelect on the socket descriptor with - the given flags; this is undone by a corresponding call - to WSAEventSelect(fd, 0, 0) in our destructor. */ -class WSAEventWrapper -{ -public: - // Default constructor. Call init() after this. - WSAEventWrapper(); - WSAEventWrapper(int fd, DWORD dwSelFlags); - ~WSAEventWrapper(); - - // Used for two-step initialization after calling - // default constructor. - void init(int fd, DWORD dwSelFlags); - - int getFD() - { - return m_fd; - } - - WSAEVENT getEventHandle() - { - return m_hEvent; - } - -private: - WSAEVENT m_hEvent; - int m_fd; - DWORD m_dwSelFlags; -}; - -// Error string text. The int argument is compatible -// with both int WSAGetLastError() and DWORD GetLastError() -// I tried avoiding having to pass the error explicitly, but -// it didn't work this was invoked with say -// throw new SomeException(_Jv_WinStrError()). -extern jstring -_Jv_WinStrError (LPCTSTR lpszPrologue, int nErrorCode); - -extern jstring -_Jv_WinStrError (int nErrorCode); - -extern void -_Jv_ThrowIOException (DWORD dwErrorCode); - -extern void -_Jv_ThrowIOException (); - -extern void -_Jv_ThrowSocketException (DWORD dwErrorCode); - -extern void -_Jv_ThrowSocketException (); - -// Platform implementation -extern void _Jv_platform_initialize (void); -extern void _Jv_platform_initProperties (java::util::Properties*); -extern jlong _Jv_platform_gettimeofday (); -extern jlong _Jv_platform_nanotime (); -extern int _Jv_pipe (int filedes[2]); - -extern void -_Jv_platform_close_on_exec (HANDLE h); - -#ifdef JV_HASH_SYNCHRONIZATION -/* Suspends the execution of the current thread for the specified - number of microseconds. Tries to emulate the behaviour of usleep() - on UNIX and provides a granularity of 1 millisecond. */ -inline void -_Jv_platform_usleep (unsigned long usecs) -{ - if (usecs > 0UL) - { - unsigned long millis = ((usecs + 999UL) / 1000UL); - Sleep (millis); - } -} -#endif /* JV_HASH_SYNCHRONIZATION */ - -// Forward declaration. See java-stack.h for definition. -struct _Jv_AddrInfo; - -// Given an address, determine the executable or shared object that defines -// it and the nearest named symbol. -extern int _Jv_platform_dladdr (void *addr, _Jv_AddrInfo *info); - -#endif /* __JV_WIN32_H__ */ diff --git a/libjava/include/x86_64-signal.h b/libjava/include/x86_64-signal.h deleted file mode 100644 index 12383b5..0000000 --- a/libjava/include/x86_64-signal.h +++ /dev/null @@ -1,185 +0,0 @@ -// x86_64-signal.h - Catch runtime signals and turn them into exceptions -// on an x86_64 based GNU/Linux system. - -/* Copyright (C) 2003, 2006, 2007, 2012 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - - -#ifdef __x86_64__ - -#ifndef JAVA_SIGNAL_H -#define JAVA_SIGNAL_H 1 - -#include <signal.h> -#include <sys/syscall.h> - -#define HANDLE_SEGV 1 -#define HANDLE_FPE 1 - -#define SIGNAL_HANDLER(_name) \ -static void _Jv_##_name (int, siginfo_t *, \ - void *_p __attribute__ ((__unused__))) - -#define HANDLE_DIVIDE_OVERFLOW \ -do \ -{ \ - struct ucontext *_uc = (struct ucontext *)_p; \ - gregset_t &_gregs = _uc->uc_mcontext.gregs; \ - unsigned char *_rip = (unsigned char *)_gregs[REG_RIP]; \ - \ - /* According to the JVM spec, "if the dividend is the negative \ - * integer of largest possible magnitude for the type and the \ - * divisor is -1, then overflow occurs and the result is equal to \ - * the dividend. Despite the overflow, no exception occurs". \ - \ - * We handle this by inspecting the instruction which generated the \ - * signal and advancing ip to point to the following instruction. \ - * As the instructions are variable length it is necessary to do a \ - * little calculation to figure out where the following instruction \ - * actually is. \ - \ - */ \ - \ - bool _is_64_bit = false; \ - \ - /* Skip 67h address size prefix. */ \ - if (_rip[0] == 0x67) \ - _rip++; \ - \ - if ((_rip[0] & 0xf0) == 0x40) /* REX byte present. */ \ - { \ - unsigned char _rex = _rip[0] & 0x0f; \ - _is_64_bit = (_rex & 0x08) != 0; \ - _rip++; \ - } \ - \ - /* Detect a signed division of Integer.MIN_VALUE or Long.MIN_VALUE. */ \ - if (_rip[0] == 0xf7) \ - { \ - bool _min_value_dividend = false; \ - unsigned char _modrm = _rip[1]; \ - \ - if (((_modrm >> 3) & 7) == 7) \ - { \ - if (_is_64_bit) \ - _min_value_dividend = \ - _gregs[REG_RAX] == (greg_t)0x8000000000000000ULL; \ - else \ - _min_value_dividend = \ - (_gregs[REG_RAX] & 0xffffffff) == (greg_t)0x80000000ULL; \ - } \ - \ - if (_min_value_dividend) \ - { \ - unsigned char _rm = _modrm & 7; \ - _gregs[REG_RDX] = 0; /* the remainder is zero */ \ - switch (_modrm >> 6) \ - { \ - case 0: /* register indirect */ \ - if (_rm == 5) /* 32-bit displacement */ \ - _rip += 4; \ - if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ - _rip += 1; \ - break; \ - case 1: /* register indirect + 8-bit displacement */ \ - _rip += 1; \ - if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ - _rip += 1; \ - break; \ - case 2: /* register indirect + 32-bit displacement */ \ - _rip += 4; \ - if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ - _rip += 1; \ - break; \ - case 3: \ - break; \ - } \ - _rip += 2; \ - _gregs[REG_RIP] = (greg_t)_rip; \ - return; \ - } \ - } \ -} \ -while (0) - -extern "C" -{ - struct kernel_sigaction - { - void (*k_sa_sigaction)(int,siginfo_t *,void *); - unsigned long k_sa_flags; - void (*k_sa_restorer) (void); - sigset_t k_sa_mask; - }; -} - -#define MAKE_THROW_FRAME(_exception) - -#define RESTORE(name, syscall) RESTORE2 (name, syscall) -#define RESTORE2(name, syscall) \ -asm \ - ( \ - ".text\n" \ - ".byte 0 # Yes, this really is necessary\n" \ - ".align 16\n" \ - "__" #name ":\n" \ - " movq $" #syscall ", %rax\n" \ - " syscall\n" \ - ); - -/* The return code for realtime-signals. */ -RESTORE (restore_rt, __NR_rt_sigreturn) -void restore_rt (void) asm ("__restore_rt") - __attribute__ ((visibility ("hidden"))); - -#define INIT_SEGV \ -do \ - { \ - struct kernel_sigaction act; \ - act.k_sa_sigaction = _Jv_catch_segv; \ - sigemptyset (&act.k_sa_mask); \ - act.k_sa_flags = SA_SIGINFO|0x4000000; \ - act.k_sa_restorer = restore_rt; \ - syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \ - } \ -while (0) - -#define INIT_FPE \ -do \ - { \ - struct kernel_sigaction act; \ - act.k_sa_sigaction = _Jv_catch_fpe; \ - sigemptyset (&act.k_sa_mask); \ - act.k_sa_flags = SA_SIGINFO|0x4000000; \ - act.k_sa_restorer = restore_rt; \ - syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, _NSIG / 8); \ - } \ -while (0) - -/* You might wonder why we use syscall(SYS_sigaction) in INIT_FPE - * instead of the standard sigaction(). This is necessary because of - * the shenanigans above where we increment the PC saved in the - * context and then return. This trick will only work when we are - * called _directly_ by the kernel, because linuxthreads wraps signal - * handlers and its wrappers do not copy the sigcontext struct back - * when returning from a signal handler. If we return from our divide - * handler to a linuxthreads wrapper, we will lose the PC adjustment - * we made and return to the faulting instruction again. Using - * syscall(SYS_sigaction) causes our handler to be called directly - * by the kernel, bypassing any wrappers. */ - -#endif /* JAVA_SIGNAL_H */ - -#else /* __x86_64__ */ - -/* This is for the 32-bit subsystem on x86-64. */ - -#define sigcontext_struct sigcontext -#include <java-signal-aux.h> - -#endif /* __x86_64__ */ |