RESTRICT AUTOMERGE: Update libxml2 to 2.9.8

Merge to pi-dev, restore Android.mk and revert 440b0b3d89db029dc2b8c86130461d292a8e11dc

Bug: 79662501
Bug: 36809766
Bug: 36810305
Bug: 62151041

Test: manually verify functionality for regression

Change-Id: I2fea499ca1d60d47b1a36d7c4662e2937be74e8c
diff --git a/.gitignore b/.gitignore
index 84cf80f..680a7e1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+*.exe
 *.o
 *.lo
 *.log
@@ -76,6 +77,7 @@
 python/libxml2class.py
 python/libxml2class.txt
 python/libxml2mod.la
+python/setup.py
 python/tests/Makefile
 python/tests/Makefile.in
 python/tests/tmp.xml
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..da48143
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,22 @@
+language: c
+sudo: false
+addons:
+  apt:
+    packages:
+      # Some tests require the DTDs.
+      w3c-sgml-lib
+matrix:
+  include:
+    # Try to emulate a C89 compiler on a POSIX system by disabling as many
+    # GNU extensions as possible.
+    - compiler: gcc
+      env: CFLAGS="-O2 -std=c89 -D_XOPEN_SOURCE=700 -Werror -Wno-error=unused-function"
+    # clang with AddressSanitizer and UndefinedBehaviorSanitizer.
+    - compiler: clang
+      dist: trusty
+      env: CONFIG="--without-python"
+           CFLAGS="-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize=float-divide-by-zero,pointer-overflow -fno-sanitize-recover=all -Werror -Wno-error=unused-function -Wno-error=cast-align"
+           UBSAN_OPTIONS=print_stacktrace=1
+script: sh autogen.sh $CONFIG && make -j2 V=1 && make check
+git:
+  depth: 10
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..260edf1
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,119 @@
+//
+// Copyright (C) 2014 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+//
+// To update:
+//
+
+//  git merge aosp/upstream-master
+//  mma -j
+//  # (Make any necessary Android.bp changes and test the new libxml2.)
+//  git push aosp HEAD:master  # Push directly, avoiding gerrit.
+//  git push aosp HEAD:refs/for/master  # Push to gerrit.
+//
+//  # Now commit any necessary Android.bp changes like normal:
+//  repo start post-sync .
+//  git commit -a
+//
+
+// This comes from the automake-generated Makefile.
+// We deliberately exclude nanoftp.c and nanohttp.c, the trio library, and zlib.
+cc_library {
+    name: "libxml2",
+    vendor_available: true,
+    vndk: {
+        enabled: true,
+    },
+    host_supported: true,
+    srcs: [
+        "SAX.c",
+        "entities.c",
+        "encoding.c",
+        "error.c",
+        "parserInternals.c",
+        "parser.c",
+        "tree.c",
+        "hash.c",
+        "list.c",
+        "xmlIO.c",
+        "xmlmemory.c",
+        "uri.c",
+        "valid.c",
+        "xlink.c",
+        "debugXML.c",
+        "xpath.c",
+        "xpointer.c",
+        "xinclude.c",
+        "DOCBparser.c",
+        "catalog.c",
+        "globals.c",
+        "threads.c",
+        "c14n.c",
+        "xmlstring.c",
+        "buf.c",
+        "xmlregexp.c",
+        "xmlschemas.c",
+        "xmlschemastypes.c",
+        "xmlunicode.c",
+        "xmlreader.c",
+        "relaxng.c",
+        "dict.c",
+        "SAX2.c",
+        "xmlwriter.c",
+        "legacy.c",
+        "chvalid.c",
+        "pattern.c",
+        "xmlsave.c",
+        "xmlmodule.c",
+        "schematron.c",
+    ],
+    export_include_dirs: ["include"],
+    cflags: [
+        "-DLIBXML_THREAD_ENABLED=1",
+
+        "-Wall",
+        "-Werror",
+        "-Wno-error=ignored-attributes",
+        "-Wno-missing-field-initializers",
+        "-Wno-self-assign",
+        "-Wno-sign-compare",
+        "-Wno-tautological-pointer-compare",
+        "-Wno-unused-function",
+        "-Wno-unused-parameter",
+    ],
+    static: {
+        cflags: ["-fvisibility=hidden"],
+    },
+    target: {
+        vendor: {
+            exclude_shared_libs: ["libicuuc"],
+        },
+    },
+    shared_libs: ["libicuuc"],
+    export_shared_lib_headers: ["libicuuc"],
+}
+
+cc_binary_host {
+    name: "xmllint",
+    srcs: ["xmllint.c"],
+    cflags: [
+        "-DLIBXML_THREAD_ENABLED=1",
+
+        "-Wall",
+        "-Werror",
+    ],
+    shared_libs: ["libxml2"],
+}
diff --git a/Android.mk b/Android.mk
index 63e87ee..f35448f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -20,9 +20,7 @@
 # To update:
 #
 
-#  git remote add libxml2 git://git.gnome.org/libxml2
-#  git fetch libxml2
-#  git merge libxml2/master
+#  git merge aosp/upstream-master
 #  mm -j32
 #  # (Make any necessary Android.mk changes and test the new libxml2.)
 #  git push aosp HEAD:master  # Push directly, avoiding gerrit.
@@ -37,7 +35,7 @@
 # We deliberately exclude nanoftp.c and nanohttp.c, the trio library, and zlib.
 common_SRC_FILES := SAX.c entities.c encoding.c error.c \
         parserInternals.c parser.c tree.c hash.c list.c xmlIO.c \
-        xmlmemory.c uri.c valid.c xlink.c HTMLparser.c HTMLtree.c \
+        xmlmemory.c uri.c valid.c xlink.c \
         debugXML.c xpath.c xpointer.c xinclude.c \
         DOCBparser.c catalog.c globals.c threads.c c14n.c xmlstring.c \
         buf.c xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
@@ -54,6 +52,7 @@
     -Wno-self-assign \
     -Wno-sign-compare \
     -Wno-tautological-pointer-compare \
+    -Wno-unused-parameter \
 
 # Static library
 #=======================================================
diff --git a/CONTRIBUTING b/CONTRIBUTING
new file mode 100644
index 0000000..6f7a988
--- /dev/null
+++ b/CONTRIBUTING
@@ -0,0 +1,24 @@
+The current version of the code can be found in the GNOME Git Repository:
+
+    https://git.gnome.org/browse/libxml2/
+
+There's mirror on GitHub:
+
+    https://github.com/GNOME/libxml2
+
+Start discussions and send patches to the mailing list, or file a bug and
+add a patch as attachment.
+
+    https://mail.gnome.org/mailman/listinfo/xml
+    https://bugzilla.gnome.org/enter_bug.cgi?product=libxml2
+
+Format patches with git-format-patch and use plain text attachments
+if possible.
+
+All code must conform to C89 and pass the "make check" tests. Avoid
+compiler warnings and add regression tests if possible.
+
+The .travis.yml file can be used to thoroughly check the build with strict
+compiler flags, ASan and UBSan. Fork the libxml2 mirror on GitHub and set
+up Travis to test the commits you make on your fork.
+
diff --git a/ChangeLog b/ChangeLog
index 08725dd..896fbbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -593,7 +593,7 @@
 
 Tue Apr 22 10:27:17 CEST 2008 Daniel Veillard <daniel@veillard.com>
 
-	* dict.c: improvement on the hashing of the dictionnary, with visible
+	* dict.c: improvement on the hashing of the dictionary, with visible
 	  speed up as the number of strings in the hash increases, work from
 	  Stefan Behnel
 
@@ -1929,7 +1929,7 @@
 
 	* tree.c: Fixed xmlGetNodePath() to generate the node test "*"
 	  for elements in the default namespace, rather than generating
-	  an unprefixed named node test and loosing the namespace
+	  an unprefixed named node test and losing the namespace
 	  information.
 
 Fri Jun  9 21:45:02 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
@@ -2305,7 +2305,7 @@
 	* tree.c: Simplified usage of the internal xmlNsMap. Added a
 	  "strict" lookup for namespaces based on a prefix. Fixed a
 	  namespace processing issue in the clone-node function, which
-	  occured if a @ctxt argument was given.
+	  occurred if a @ctxt argument was given.
 	  
 Fri Mar  3 17:44:10 CET 2006 Rob Richards <rrichards@ctindustries.net>
 
@@ -3951,7 +3951,7 @@
 	* README: updated 
 	* debugXML.c: fix a bug raised by bill on IRC
 	* relaxng.c: fix a leak in weird circumstances
-	* runsuite.c Makefile.am: standalone test tool agaisnt
+	* runsuite.c Makefile.am: standalone test tool against
 	  the regression suites, work in progress
 
 Tue Jun 28 08:30:26 CEST 2005 Daniel Veillard <daniel@veillard.com>
@@ -4356,7 +4356,7 @@
 	* xmlschemas.c: Added substitution group constraints; changed
 	  the build of the pre-computed substitution groups. Channeled
 	  errors during xsi assembling of schemas to the validation
-	  context. Fixed a big memory leak, which occured when using
+	  context. Fixed a big memory leak, which occurred when using
 	  IDCs: the precomputed value of attributes was not freed if
 	  the attribute did not resolve to an IDC field (discovered
 	  with the help of Randy J. Ray's schema, posted to the
@@ -4551,7 +4551,7 @@
 
 Mon Mar 21 21:09:07 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
 
-	* xmlschemas.c: Fixed a segfault, which occured during bubbling
+	* xmlschemas.c: Fixed a segfault, which occurred during bubbling
 	  of IDC nodes (bug #170779 and #170778, reported by GUY Fabrice):
 	  a variable was missed to be reset in a loop. Deactivated bubbling,
 	  if not referenced by a keyref.
@@ -5017,7 +5017,7 @@
 Sun Jan 23 23:54:39 CET 2005 Daniel Veillard <daniel@veillard.com>
 
 	* hash.c include/libxml/hash.h: added xmlHashCreateDict where
-	  the hash reuses the dictionnary for internal strings
+	  the hash reuses the dictionary for internal strings
 	* entities.c valid.c parser.c: reuse that new API, leads to a decent
 	  speedup when parsing for example DocBook documents.
 
@@ -5371,7 +5371,7 @@
 Wed Nov 24 13:41:52 CET 2004 Daniel Veillard <daniel@veillard.com>
 
 	* dict.c include/libxml/dict.h: added xmlDictExists() to the 
-	  dictionnary interface.
+	  dictionary interface.
 	* xmlreader.c: applying xmlTextReaderHasAttributes fix for namespaces
 	  from Rob Richards
 
@@ -5697,7 +5697,7 @@
 Tue Oct 26 18:09:59 CEST 2004 Daniel Veillard <daniel@veillard.com>
 
 	* debugXML.c include/libxml/xmlerror.h: added checking for names
-	  values and dictionnaries generates a tons of errors
+	  values and dictionaries generates a tons of errors
 	* SAX2.ccatalog.c parser.c relaxng.c tree.c xinclude.c xmlwriter.c
 	  include/libxml/tree.h: fixing the errors in the regression tests
 
@@ -7746,14 +7746,14 @@
 	  make tests
 	* xpath.c include/libxml/xpath.h: added xmlXPathCtxtCompile() to
 	  compile an XPath expression within a context, currently the goal
-	  is to be able to reuse the XSLT stylesheet dictionnary, but this
+	  is to be able to reuse the XSLT stylesheet dictionary, but this
 	  opens the door to others possible optimizations.
 	* dict.c include/libxml/dict.h: added xmlDictCreateSub() which allows
-	  to build a new dictionnary based on another read-only dictionnary.
-	  This is needed for XSLT to keep the stylesheet dictionnary read-only
+	  to build a new dictionary based on another read-only dictionary.
+	  This is needed for XSLT to keep the stylesheet dictionary read-only
 	  while being able to reuse the strings for the transformation
-	  dictionnary.
-	* xinclude.c: fixed a dictionnar reference counting problem occuring
+	  dictionary.
+	* xinclude.c: fixed a dictionary reference counting problem occuring
 	  when document parsing failed.
 	* testSAX.c: adding option --repeat for timing 100times the parsing
 	* doc/* : rebuilt all the docs
@@ -7806,7 +7806,7 @@
 Thu Jan  8 17:57:50 CET 2004 Daniel Veillard <daniel@veillard.com>
 
 	* xmlschemas.c: removed a memory leak remaining from the switch
-	  to a dictionnary for string allocations c.f. #130891
+	  to a dictionary for string allocations c.f. #130891
 
 Thu Jan  8 17:48:46 CET 2004 Daniel Veillard <daniel@veillard.com>
 
@@ -7928,7 +7928,7 @@
 Fri Jan  2 11:40:06 CET 2004 Daniel Veillard <daniel@veillard.com>
 
 	* SAX2.c: found and fixed a bug misallocating some non
-	  blank text node strings from the dictionnary.
+	  blank text node strings from the dictionary.
 	* xmlmemory.c: fixed a problem with the memory debug mutex
 	  release.
 
@@ -9386,7 +9386,7 @@
 
 	* parser.c: William's change allowed to spot a nasty bug in xmlDoRead
 	  if the result is not well formed that ctxt->myDoc is not NULL
-	  and uses the context dictionnary.
+	  and uses the context dictionary.
 
 Fri Sep 26 21:09:34 CEST 2003 Daniel Veillard <daniel@veillard.com>
 
@@ -11220,7 +11220,7 @@
 	* test/xsdtest/xsdtest.xml uri.c: after and exchange with James
 	  Clark it appeared I had bug in URI parsing code ...
 	* relaxng.c include/libxml/relaxng.h: completely revamped error
-	  reporting to not loose message from optional parts.
+	  reporting to not lose message from optional parts.
 	* xmllint.c: added timing for RNG validation steps
 	* result/relaxng/*: updated the result, all error messages changed
 
@@ -13182,7 +13182,7 @@
 	  xmlNewCharEncodingHandler as requested in #89415
 	* python/generator.py python/setup.py.in: applied cleanup
 	  patches from Marc-Andre Lemburg
-	* tree.c: fixing bug #89332 on a specific case of loosing 
+	* tree.c: fixing bug #89332 on a specific case of losing 
 	  the XML-1.0 namespace on xml:xxx attributes
 
 Wed Jul 31 23:27:42 2002  Aleksey Sanin  <aleksey@aleksey.com>
@@ -15356,7 +15356,7 @@
 
 Sat Oct  6 15:07:14 CEST 2001 Daniel Veillard <daniel@veillard.com>
 
-	* xpath.c: fixing #61673 part I, do not loose doc information
+	* xpath.c: fixing #61673 part I, do not lose doc information
 	  when copying result value trees.
 
 Sat Oct  6 11:58:58 CEST 2001 Daniel Veillard <daniel@veillard.com>
@@ -15970,7 +15970,7 @@
 Mon Jul  9 22:06:53 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
 
 	* valid.c: fixed "Internal: MIXED struct bad" when #CDATA elements
-	  validation occured on content with element child
+	  validation occurred on content with element child
 
 Mon Jul  9 17:59:08 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
 
diff --git a/HACKING b/HACKING
deleted file mode 100644
index 5d28294..0000000
--- a/HACKING
+++ /dev/null
@@ -1,37 +0,0 @@
-NOTE: 
-  - the head of this module is package libxml-2 . There is incompatibilities
-    with the old libxml-1 headers. I posted on gnome-hackers a recipe to
-    change your code to compile with both, check it out ! Also read
-    http://xmlsoft.org/upgrade.html
-  - in the meantime the old 1.x code has been tagged with LIB_XML_1_BRANCH
-    extract this version and drop me a mail if you want me to take care of
-    the update of your module to libxml-2 <daniel@veillard.com>
-  - the 1.x branch has a separate commit policy, please check the HACKING
-    file for this branch
-
-     Rules for commits on the gnome-xml module
-     =========================================
-
-  BEFORE READING FURTHER: DO NOT COMMIT DIRECTLY !
-
- In the exceptional case where a serious breakage in this module
-prevents other core projects from making progress, then feel free
-to patch first and send mail afterward as long as the changes are limited.
-Please keep in mind that a large part of my user base is on Windows, so
-be careful with potential portability problems there.
-
-Otherwise, send me (veillard@redhat.com) a mail and if it's a bug
-issue, register it at bugzilla.gnome.org (module libxml). I check both
-my mail and the bug database on a regular basis. If you don't get an
-answer within a week (which is highly unprobable) then commit your changes.
-This simply mean that I'm on holliday or on the road.
-
-  thanks in advance for following the rule,
-
-Daniel
-
-P.S.: Bjorn Reese, William Brack, Thomas Broyer, Igor Zlatkovic and
-      Aleksey Sanin get an exception for the send before commit rule
-      as well as John Fleck for the doc maintenance Send them mail if
-      I don't answer to request in a timely fashion
-
diff --git a/HTMLparser.c b/HTMLparser.c
deleted file mode 100644
index d1395fa..0000000
--- a/HTMLparser.c
+++ /dev/null
@@ -1,7165 +0,0 @@
-/*
- * HTMLparser.c : an HTML 4.0 non-verifying parser
- *
- * See Copyright for the status of this software.
- *
- * daniel@veillard.com
- */
-
-#define IN_LIBXML
-#include "libxml.h"
-#ifdef LIBXML_HTML_ENABLED
-
-#include <string.h>
-#ifdef HAVE_CTYPE_H
-#include <ctype.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_ZLIB_H
-#include <zlib.h>
-#endif
-
-#include <libxml/xmlmemory.h>
-#include <libxml/tree.h>
-#include <libxml/parser.h>
-#include <libxml/parserInternals.h>
-#include <libxml/xmlerror.h>
-#include <libxml/HTMLparser.h>
-#include <libxml/HTMLtree.h>
-#include <libxml/entities.h>
-#include <libxml/encoding.h>
-#include <libxml/valid.h>
-#include <libxml/xmlIO.h>
-#include <libxml/globals.h>
-#include <libxml/uri.h>
-
-#include "buf.h"
-#include "enc.h"
-
-#define HTML_MAX_NAMELEN 1000
-#define HTML_PARSER_BIG_BUFFER_SIZE 1000
-#define HTML_PARSER_BUFFER_SIZE 100
-
-/* #define DEBUG */
-/* #define DEBUG_PUSH */
-
-static int htmlOmittedDefaultValue = 1;
-
-xmlChar * htmlDecodeEntities(htmlParserCtxtPtr ctxt, int len,
-			     xmlChar end, xmlChar  end2, xmlChar end3);
-static void htmlParseComment(htmlParserCtxtPtr ctxt);
-
-/************************************************************************
- *									*
- *		Some factorized error routines				*
- *									*
- ************************************************************************/
-
-/**
- * htmlErrMemory:
- * @ctxt:  an HTML parser context
- * @extra:  extra informations
- *
- * Handle a redefinition of attribute error
- */
-static void
-htmlErrMemory(xmlParserCtxtPtr ctxt, const char *extra)
-{
-    if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
-        (ctxt->instate == XML_PARSER_EOF))
-	return;
-    if (ctxt != NULL) {
-        ctxt->errNo = XML_ERR_NO_MEMORY;
-        ctxt->instate = XML_PARSER_EOF;
-        ctxt->disableSAX = 1;
-    }
-    if (extra)
-        __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER,
-                        XML_ERR_NO_MEMORY, XML_ERR_FATAL, NULL, 0, extra,
-                        NULL, NULL, 0, 0,
-                        "Memory allocation failed : %s\n", extra);
-    else
-        __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER,
-                        XML_ERR_NO_MEMORY, XML_ERR_FATAL, NULL, 0, NULL,
-                        NULL, NULL, 0, 0, "Memory allocation failed\n");
-}
-
-/**
- * htmlParseErr:
- * @ctxt:  an HTML parser context
- * @error:  the error number
- * @msg:  the error message
- * @str1:  string infor
- * @str2:  string infor
- *
- * Handle a fatal parser error, i.e. violating Well-Formedness constraints
- */
-static void LIBXML_ATTR_FORMAT(3,0)
-htmlParseErr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
-             const char *msg, const xmlChar *str1, const xmlChar *str2)
-{
-    if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
-        (ctxt->instate == XML_PARSER_EOF))
-	return;
-    if (ctxt != NULL)
-	ctxt->errNo = error;
-    __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_HTML, error,
-                    XML_ERR_ERROR, NULL, 0,
-		    (const char *) str1, (const char *) str2,
-		    NULL, 0, 0,
-		    msg, str1, str2);
-    if (ctxt != NULL)
-	ctxt->wellFormed = 0;
-}
-
-/**
- * htmlParseErrInt:
- * @ctxt:  an HTML parser context
- * @error:  the error number
- * @msg:  the error message
- * @val:  integer info
- *
- * Handle a fatal parser error, i.e. violating Well-Formedness constraints
- */
-static void LIBXML_ATTR_FORMAT(3,0)
-htmlParseErrInt(xmlParserCtxtPtr ctxt, xmlParserErrors error,
-             const char *msg, int val)
-{
-    if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
-        (ctxt->instate == XML_PARSER_EOF))
-	return;
-    if (ctxt != NULL)
-	ctxt->errNo = error;
-    __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_HTML, error,
-                    XML_ERR_ERROR, NULL, 0, NULL, NULL,
-		    NULL, val, 0, msg, val);
-    if (ctxt != NULL)
-	ctxt->wellFormed = 0;
-}
-
-/************************************************************************
- *									*
- *	Parser stacks related functions and macros		*
- *									*
- ************************************************************************/
-
-/**
- * htmlnamePush:
- * @ctxt:  an HTML parser context
- * @value:  the element name
- *
- * Pushes a new element name on top of the name stack
- *
- * Returns 0 in case of error, the index in the stack otherwise
- */
-static int
-htmlnamePush(htmlParserCtxtPtr ctxt, const xmlChar * value)
-{
-    if ((ctxt->html < 3) && (xmlStrEqual(value, BAD_CAST "head")))
-        ctxt->html = 3;
-    if ((ctxt->html < 10) && (xmlStrEqual(value, BAD_CAST "body")))
-        ctxt->html = 10;
-    if (ctxt->nameNr >= ctxt->nameMax) {
-        ctxt->nameMax *= 2;
-        ctxt->nameTab = (const xmlChar * *)
-                         xmlRealloc((xmlChar * *)ctxt->nameTab,
-                                    ctxt->nameMax *
-                                    sizeof(ctxt->nameTab[0]));
-        if (ctxt->nameTab == NULL) {
-            htmlErrMemory(ctxt, NULL);
-            return (0);
-        }
-    }
-    ctxt->nameTab[ctxt->nameNr] = value;
-    ctxt->name = value;
-    return (ctxt->nameNr++);
-}
-/**
- * htmlnamePop:
- * @ctxt: an HTML parser context
- *
- * Pops the top element name from the name stack
- *
- * Returns the name just removed
- */
-static const xmlChar *
-htmlnamePop(htmlParserCtxtPtr ctxt)
-{
-    const xmlChar *ret;
-
-    if (ctxt->nameNr <= 0)
-        return (NULL);
-    ctxt->nameNr--;
-    if (ctxt->nameNr < 0)
-        return (NULL);
-    if (ctxt->nameNr > 0)
-        ctxt->name = ctxt->nameTab[ctxt->nameNr - 1];
-    else
-        ctxt->name = NULL;
-    ret = ctxt->nameTab[ctxt->nameNr];
-    ctxt->nameTab[ctxt->nameNr] = NULL;
-    return (ret);
-}
-
-/**
- * htmlNodeInfoPush:
- * @ctxt:  an HTML parser context
- * @value:  the node info
- *
- * Pushes a new element name on top of the node info stack
- *
- * Returns 0 in case of error, the index in the stack otherwise
- */
-static int
-htmlNodeInfoPush(htmlParserCtxtPtr ctxt, htmlParserNodeInfo *value)
-{
-    if (ctxt->nodeInfoNr >= ctxt->nodeInfoMax) {
-        if (ctxt->nodeInfoMax == 0)
-                ctxt->nodeInfoMax = 5;
-        ctxt->nodeInfoMax *= 2;
-        ctxt->nodeInfoTab = (htmlParserNodeInfo *)
-                         xmlRealloc((htmlParserNodeInfo *)ctxt->nodeInfoTab,
-                                    ctxt->nodeInfoMax *
-                                    sizeof(ctxt->nodeInfoTab[0]));
-        if (ctxt->nodeInfoTab == NULL) {
-            htmlErrMemory(ctxt, NULL);
-            return (0);
-        }
-    }
-    ctxt->nodeInfoTab[ctxt->nodeInfoNr] = *value;
-    ctxt->nodeInfo = &ctxt->nodeInfoTab[ctxt->nodeInfoNr];
-    return (ctxt->nodeInfoNr++);
-}
-
-/**
- * htmlNodeInfoPop:
- * @ctxt:  an HTML parser context
- *
- * Pops the top element name from the node info stack
- *
- * Returns 0 in case of error, the pointer to NodeInfo otherwise
- */
-static htmlParserNodeInfo *
-htmlNodeInfoPop(htmlParserCtxtPtr ctxt)
-{
-    if (ctxt->nodeInfoNr <= 0)
-        return (NULL);
-    ctxt->nodeInfoNr--;
-    if (ctxt->nodeInfoNr < 0)
-        return (NULL);
-    if (ctxt->nodeInfoNr > 0)
-        ctxt->nodeInfo = &ctxt->nodeInfoTab[ctxt->nodeInfoNr - 1];
-    else
-        ctxt->nodeInfo = NULL;
-    return &ctxt->nodeInfoTab[ctxt->nodeInfoNr];
-}
-
-/*
- * Macros for accessing the content. Those should be used only by the parser,
- * and not exported.
- *
- * Dirty macros, i.e. one need to make assumption on the context to use them
- *
- *   CUR_PTR return the current pointer to the xmlChar to be parsed.
- *   CUR     returns the current xmlChar value, i.e. a 8 bit value if compiled
- *           in ISO-Latin or UTF-8, and the current 16 bit value if compiled
- *           in UNICODE mode. This should be used internally by the parser
- *           only to compare to ASCII values otherwise it would break when
- *           running with UTF-8 encoding.
- *   NXT(n)  returns the n'th next xmlChar. Same as CUR is should be used only
- *           to compare on ASCII based substring.
- *   UPP(n)  returns the n'th next xmlChar converted to uppercase. Same as CUR
- *           it should be used only to compare on ASCII based substring.
- *   SKIP(n) Skip n xmlChar, and must also be used only to skip ASCII defined
- *           strings without newlines within the parser.
- *
- * Clean macros, not dependent of an ASCII context, expect UTF-8 encoding
- *
- *   CURRENT Returns the current char value, with the full decoding of
- *           UTF-8 if we are using this mode. It returns an int.
- *   NEXT    Skip to the next character, this does the proper decoding
- *           in UTF-8 mode. It also pop-up unfinished entities on the fly.
- *   NEXTL(l) Skip the current unicode character of l xmlChars long.
- *   COPY(to) copy one char to *to, increment CUR_PTR and to accordingly
- */
-
-#define UPPER (toupper(*ctxt->input->cur))
-
-#define SKIP(val) ctxt->nbChars += (val),ctxt->input->cur += (val),ctxt->input->col+=(val)
-
-#define NXT(val) ctxt->input->cur[(val)]
-
-#define UPP(val) (toupper(ctxt->input->cur[(val)]))
-
-#define CUR_PTR ctxt->input->cur
-#define BASE_PTR ctxt->input->base
-
-#define SHRINK if ((ctxt->input->cur - ctxt->input->base > 2 * INPUT_CHUNK) && \
-		   (ctxt->input->end - ctxt->input->cur < 2 * INPUT_CHUNK)) \
-	xmlParserInputShrink(ctxt->input)
-
-#define GROW if ((ctxt->progressive == 0) &&				\
-		 (ctxt->input->end - ctxt->input->cur < INPUT_CHUNK))	\
-	xmlParserInputGrow(ctxt->input, INPUT_CHUNK)
-
-#define CURRENT ((int) (*ctxt->input->cur))
-
-#define SKIP_BLANKS htmlSkipBlankChars(ctxt)
-
-/* Inported from XML */
-
-/* #define CUR (ctxt->token ? ctxt->token : (int) (*ctxt->input->cur)) */
-#define CUR ((int) (*ctxt->input->cur))
-#define NEXT xmlNextChar(ctxt)
-
-#define RAW (ctxt->token ? -1 : (*ctxt->input->cur))
-
-
-#define NEXTL(l) do {							\
-    if (*(ctxt->input->cur) == '\n') {					\
-	ctxt->input->line++; ctxt->input->col = 1;			\
-    } else ctxt->input->col++;						\
-    ctxt->token = 0; ctxt->input->cur += l; ctxt->nbChars++;		\
-  } while (0)
-
-/************
-    \
-    if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt);	\
-    if (*ctxt->input->cur == '&') xmlParserHandleReference(ctxt);
- ************/
-
-#define CUR_CHAR(l) htmlCurrentChar(ctxt, &l)
-#define CUR_SCHAR(s, l) xmlStringCurrentChar(ctxt, s, &l)
-
-#define COPY_BUF(l,b,i,v)						\
-    if (l == 1) b[i++] = (xmlChar) v;					\
-    else i += xmlCopyChar(l,&b[i],v)
-
-/**
- * htmlFindEncoding:
- * @the HTML parser context
- *
- * Ty to find and encoding in the current data available in the input
- * buffer this is needed to try to switch to the proper encoding when
- * one face a character error.
- * That's an heuristic, since it's operating outside of parsing it could
- * try to use a meta which had been commented out, that's the reason it
- * should only be used in case of error, not as a default.
- *
- * Returns an encoding string or NULL if not found, the string need to
- *   be freed
- */
-static xmlChar *
-htmlFindEncoding(xmlParserCtxtPtr ctxt) {
-    const xmlChar *start, *cur, *end;
-
-    if ((ctxt == NULL) || (ctxt->input == NULL) ||
-        (ctxt->input->encoding != NULL) || (ctxt->input->buf == NULL) ||
-        (ctxt->input->buf->encoder != NULL))
-        return(NULL);
-    if ((ctxt->input->cur == NULL) || (ctxt->input->end == NULL))
-        return(NULL);
-
-    start = ctxt->input->cur;
-    end = ctxt->input->end;
-    /* we also expect the input buffer to be zero terminated */
-    if (*end != 0)
-        return(NULL);
-
-    cur = xmlStrcasestr(start, BAD_CAST "HTTP-EQUIV");
-    if (cur == NULL)
-        return(NULL);
-    cur = xmlStrcasestr(cur, BAD_CAST  "CONTENT");
-    if (cur == NULL)
-        return(NULL);
-    cur = xmlStrcasestr(cur, BAD_CAST  "CHARSET=");
-    if (cur == NULL)
-        return(NULL);
-    cur += 8;
-    start = cur;
-    while (((*cur >= 'A') && (*cur <= 'Z')) ||
-           ((*cur >= 'a') && (*cur <= 'z')) ||
-           ((*cur >= '0') && (*cur <= '9')) ||
-           (*cur == '-') || (*cur == '_') || (*cur == ':') || (*cur == '/'))
-           cur++;
-    if (cur == start)
-        return(NULL);
-    return(xmlStrndup(start, cur - start));
-}
-
-/**
- * htmlCurrentChar:
- * @ctxt:  the HTML parser context
- * @len:  pointer to the length of the char read
- *
- * The current char value, if using UTF-8 this may actually span multiple
- * bytes in the input buffer. Implement the end of line normalization:
- * 2.11 End-of-Line Handling
- * If the encoding is unspecified, in the case we find an ISO-Latin-1
- * char, then the encoding converter is plugged in automatically.
- *
- * Returns the current char value and its length
- */
-
-static int
-htmlCurrentChar(xmlParserCtxtPtr ctxt, int *len) {
-    if (ctxt->instate == XML_PARSER_EOF)
-	return(0);
-
-    if (ctxt->token != 0) {
-	*len = 0;
-	return(ctxt->token);
-    }
-    if (ctxt->charset == XML_CHAR_ENCODING_UTF8) {
-	/*
-	 * We are supposed to handle UTF8, check it's valid
-	 * From rfc2044: encoding of the Unicode values on UTF-8:
-	 *
-	 * UCS-4 range (hex.)           UTF-8 octet sequence (binary)
-	 * 0000 0000-0000 007F   0xxxxxxx
-	 * 0000 0080-0000 07FF   110xxxxx 10xxxxxx
-	 * 0000 0800-0000 FFFF   1110xxxx 10xxxxxx 10xxxxxx
-	 *
-	 * Check for the 0x110000 limit too
-	 */
-	const unsigned char *cur = ctxt->input->cur;
-	unsigned char c;
-	unsigned int val;
-
-	c = *cur;
-	if (c & 0x80) {
-	    if (cur[1] == 0) {
-		xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
-                cur = ctxt->input->cur;
-            }
-	    if ((cur[1] & 0xc0) != 0x80)
-		goto encoding_error;
-	    if ((c & 0xe0) == 0xe0) {
-
-		if (cur[2] == 0) {
-		    xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
-                    cur = ctxt->input->cur;
-                }
-		if ((cur[2] & 0xc0) != 0x80)
-		    goto encoding_error;
-		if ((c & 0xf0) == 0xf0) {
-		    if (cur[3] == 0) {
-			xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
-                        cur = ctxt->input->cur;
-                    }
-		    if (((c & 0xf8) != 0xf0) ||
-			((cur[3] & 0xc0) != 0x80))
-			goto encoding_error;
-		    /* 4-byte code */
-		    *len = 4;
-		    val = (cur[0] & 0x7) << 18;
-		    val |= (cur[1] & 0x3f) << 12;
-		    val |= (cur[2] & 0x3f) << 6;
-		    val |= cur[3] & 0x3f;
-		} else {
-		  /* 3-byte code */
-		    *len = 3;
-		    val = (cur[0] & 0xf) << 12;
-		    val |= (cur[1] & 0x3f) << 6;
-		    val |= cur[2] & 0x3f;
-		}
-	    } else {
-	      /* 2-byte code */
-		*len = 2;
-		val = (cur[0] & 0x1f) << 6;
-		val |= cur[1] & 0x3f;
-	    }
-	    if (!IS_CHAR(val)) {
-	        htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
-				"Char 0x%X out of allowed range\n", val);
-	    }
-	    return(val);
-	} else {
-            if ((*ctxt->input->cur == 0) &&
-                (ctxt->input->cur < ctxt->input->end)) {
-                    htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
-				"Char 0x%X out of allowed range\n", 0);
-                *len = 1;
-                return(' ');
-            }
-	    /* 1-byte code */
-	    *len = 1;
-	    return((int) *ctxt->input->cur);
-	}
-    }
-    /*
-     * Assume it's a fixed length encoding (1) with
-     * a compatible encoding for the ASCII set, since
-     * XML constructs only use < 128 chars
-     */
-    *len = 1;
-    if ((int) *ctxt->input->cur < 0x80)
-	return((int) *ctxt->input->cur);
-
-    /*
-     * Humm this is bad, do an automatic flow conversion
-     */
-    {
-        xmlChar * guess;
-        xmlCharEncodingHandlerPtr handler;
-
-        guess = htmlFindEncoding(ctxt);
-        if (guess == NULL) {
-            xmlSwitchEncoding(ctxt, XML_CHAR_ENCODING_8859_1);
-        } else {
-            if (ctxt->input->encoding != NULL)
-                xmlFree((xmlChar *) ctxt->input->encoding);
-            ctxt->input->encoding = guess;
-            handler = xmlFindCharEncodingHandler((const char *) guess);
-            if (handler != NULL) {
-                xmlSwitchToEncoding(ctxt, handler);
-            } else {
-                htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
-                             "Unsupported encoding %s", guess, NULL);
-            }
-        }
-        ctxt->charset = XML_CHAR_ENCODING_UTF8;
-    }
-
-    return(xmlCurrentChar(ctxt, len));
-
-encoding_error:
-    /*
-     * If we detect an UTF8 error that probably mean that the
-     * input encoding didn't get properly advertized in the
-     * declaration header. Report the error and switch the encoding
-     * to ISO-Latin-1 (if you don't like this policy, just declare the
-     * encoding !)
-     */
-    {
-        char buffer[150];
-
-	if (ctxt->input->end - ctxt->input->cur >= 4) {
-	    snprintf(buffer, 149, "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
-			    ctxt->input->cur[0], ctxt->input->cur[1],
-			    ctxt->input->cur[2], ctxt->input->cur[3]);
-	} else {
-	    snprintf(buffer, 149, "Bytes: 0x%02X\n", ctxt->input->cur[0]);
-	}
-	htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
-		     "Input is not proper UTF-8, indicate encoding !\n",
-		     BAD_CAST buffer, NULL);
-    }
-
-    ctxt->charset = XML_CHAR_ENCODING_8859_1;
-    *len = 1;
-    return((int) *ctxt->input->cur);
-}
-
-/**
- * htmlSkipBlankChars:
- * @ctxt:  the HTML parser context
- *
- * skip all blanks character found at that point in the input streams.
- *
- * Returns the number of space chars skipped
- */
-
-static int
-htmlSkipBlankChars(xmlParserCtxtPtr ctxt) {
-    int res = 0;
-
-    while (IS_BLANK_CH(*(ctxt->input->cur))) {
-	if ((*ctxt->input->cur == 0) &&
-	    (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) {
-		xmlPopInput(ctxt);
-	} else {
-	    if (*(ctxt->input->cur) == '\n') {
-		ctxt->input->line++; ctxt->input->col = 1;
-	    } else ctxt->input->col++;
-	    ctxt->input->cur++;
-	    ctxt->nbChars++;
-	    if (*ctxt->input->cur == 0)
-		xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
-	}
-	res++;
-    }
-    return(res);
-}
-
-
-
-/************************************************************************
- *									*
- *	The list of HTML elements and their properties		*
- *									*
- ************************************************************************/
-
-/*
- *  Start Tag: 1 means the start tag can be ommited
- *  End Tag:   1 means the end tag can be ommited
- *             2 means it's forbidden (empty elements)
- *             3 means the tag is stylistic and should be closed easily
- *  Depr:      this element is deprecated
- *  DTD:       1 means that this element is valid only in the Loose DTD
- *             2 means that this element is valid only in the Frameset DTD
- *
- * Name,Start Tag,End Tag,Save End,Empty,Deprecated,DTD,inline,Description
-	, subElements , impliedsubelt , Attributes, userdata
- */
-
-/* Definitions and a couple of vars for HTML Elements */
-
-#define FONTSTYLE "tt", "i", "b", "u", "s", "strike", "big", "small"
-#define NB_FONTSTYLE 8
-#define PHRASE "em", "strong", "dfn", "code", "samp", "kbd", "var", "cite", "abbr", "acronym"
-#define NB_PHRASE 10
-#define SPECIAL "a", "img", "applet", "embed", "object", "font", "basefont", "br", "script", "map", "q", "sub", "sup", "span", "bdo", "iframe"
-#define NB_SPECIAL 16
-#define INLINE FONTSTYLE, PHRASE, SPECIAL, FORMCTRL
-#define NB_INLINE NB_PCDATA + NB_FONTSTYLE + NB_PHRASE + NB_SPECIAL + NB_FORMCTRL
-#define BLOCK HEADING, LIST, "pre", "p", "dl", "div", "center", "noscript", "noframes", "blockquote", "form", "isindex", "hr", "table", "fieldset", "address"
-#define NB_BLOCK NB_HEADING + NB_LIST + 14
-#define FORMCTRL "input", "select", "textarea", "label", "button"
-#define NB_FORMCTRL 5
-#define PCDATA
-#define NB_PCDATA 0
-#define HEADING "h1", "h2", "h3", "h4", "h5", "h6"
-#define NB_HEADING 6
-#define LIST "ul", "ol", "dir", "menu"
-#define NB_LIST 4
-#define MODIFIER
-#define NB_MODIFIER 0
-#define FLOW BLOCK,INLINE
-#define NB_FLOW NB_BLOCK + NB_INLINE
-#define EMPTY NULL
-
-
-static const char* const html_flow[] = { FLOW, NULL } ;
-static const char* const html_inline[] = { INLINE, NULL } ;
-
-/* placeholders: elts with content but no subelements */
-static const char* const html_pcdata[] = { NULL } ;
-#define html_cdata html_pcdata
-
-
-/* ... and for HTML Attributes */
-
-#define COREATTRS "id", "class", "style", "title"
-#define NB_COREATTRS 4
-#define I18N "lang", "dir"
-#define NB_I18N 2
-#define EVENTS "onclick", "ondblclick", "onmousedown", "onmouseup", "onmouseover", "onmouseout", "onkeypress", "onkeydown", "onkeyup"
-#define NB_EVENTS 9
-#define ATTRS COREATTRS,I18N,EVENTS
-#define NB_ATTRS NB_NB_COREATTRS + NB_I18N + NB_EVENTS
-#define CELLHALIGN "align", "char", "charoff"
-#define NB_CELLHALIGN 3
-#define CELLVALIGN "valign"
-#define NB_CELLVALIGN 1
-
-static const char* const html_attrs[] = { ATTRS, NULL } ;
-static const char* const core_i18n_attrs[] = { COREATTRS, I18N, NULL } ;
-static const char* const core_attrs[] = { COREATTRS, NULL } ;
-static const char* const i18n_attrs[] = { I18N, NULL } ;
-
-
-/* Other declarations that should go inline ... */
-static const char* const a_attrs[] = { ATTRS, "charset", "type", "name",
-	"href", "hreflang", "rel", "rev", "accesskey", "shape", "coords",
-	"tabindex", "onfocus", "onblur", NULL } ;
-static const char* const target_attr[] = { "target", NULL } ;
-static const char* const rows_cols_attr[] = { "rows", "cols", NULL } ;
-static const char* const alt_attr[] = { "alt", NULL } ;
-static const char* const src_alt_attrs[] = { "src", "alt", NULL } ;
-static const char* const href_attrs[] = { "href", NULL } ;
-static const char* const clear_attrs[] = { "clear", NULL } ;
-static const char* const inline_p[] = { INLINE, "p", NULL } ;
-
-static const char* const flow_param[] = { FLOW, "param", NULL } ;
-static const char* const applet_attrs[] = { COREATTRS , "codebase",
-		"archive", "alt", "name", "height", "width", "align",
-		"hspace", "vspace", NULL } ;
-static const char* const area_attrs[] = { "shape", "coords", "href", "nohref",
-	"tabindex", "accesskey", "onfocus", "onblur", NULL } ;
-static const char* const basefont_attrs[] =
-	{ "id", "size", "color", "face", NULL } ;
-static const char* const quote_attrs[] = { ATTRS, "cite", NULL } ;
-static const char* const body_contents[] = { FLOW, "ins", "del", NULL } ;
-static const char* const body_attrs[] = { ATTRS, "onload", "onunload", NULL } ;
-static const char* const body_depr[] = { "background", "bgcolor", "text",
-	"link", "vlink", "alink", NULL } ;
-static const char* const button_attrs[] = { ATTRS, "name", "value", "type",
-	"disabled", "tabindex", "accesskey", "onfocus", "onblur", NULL } ;
-
-
-static const char* const col_attrs[] = { ATTRS, "span", "width", CELLHALIGN, CELLVALIGN, NULL } ;
-static const char* const col_elt[] = { "col", NULL } ;
-static const char* const edit_attrs[] = { ATTRS, "datetime", "cite", NULL } ;
-static const char* const compact_attrs[] = { ATTRS, "compact", NULL } ;
-static const char* const dl_contents[] = { "dt", "dd", NULL } ;
-static const char* const compact_attr[] = { "compact", NULL } ;
-static const char* const label_attr[] = { "label", NULL } ;
-static const char* const fieldset_contents[] = { FLOW, "legend" } ;
-static const char* const font_attrs[] = { COREATTRS, I18N, "size", "color", "face" , NULL } ;
-static const char* const form_contents[] = { HEADING, LIST, INLINE, "pre", "p", "div", "center", "noscript", "noframes", "blockquote", "isindex", "hr", "table", "fieldset", "address", NULL } ;
-static const char* const form_attrs[] = { ATTRS, "method", "enctype", "accept", "name", "onsubmit", "onreset", "accept-charset", NULL } ;
-static const char* const frame_attrs[] = { COREATTRS, "longdesc", "name", "src", "frameborder", "marginwidth", "marginheight", "noresize", "scrolling" , NULL } ;
-static const char* const frameset_attrs[] = { COREATTRS, "rows", "cols", "onload", "onunload", NULL } ;
-static const char* const frameset_contents[] = { "frameset", "frame", "noframes", NULL } ;
-static const char* const head_attrs[] = { I18N, "profile", NULL } ;
-static const char* const head_contents[] = { "title", "isindex", "base", "script", "style", "meta", "link", "object", NULL } ;
-static const char* const hr_depr[] = { "align", "noshade", "size", "width", NULL } ;
-static const char* const version_attr[] = { "version", NULL } ;
-static const char* const html_content[] = { "head", "body", "frameset", NULL } ;
-static const char* const iframe_attrs[] = { COREATTRS, "longdesc", "name", "src", "frameborder", "marginwidth", "marginheight", "scrolling", "align", "height", "width", NULL } ;
-static const char* const img_attrs[] = { ATTRS, "longdesc", "name", "height", "width", "usemap", "ismap", NULL } ;
-static const char* const embed_attrs[] = { COREATTRS, "align", "alt", "border", "code", "codebase", "frameborder", "height", "hidden", "hspace", "name", "palette", "pluginspace", "pluginurl", "src", "type", "units", "vspace", "width", NULL } ;
-static const char* const input_attrs[] = { ATTRS, "type", "name", "value", "checked", "disabled", "readonly", "size", "maxlength", "src", "alt", "usemap", "ismap", "tabindex", "accesskey", "onfocus", "onblur", "onselect", "onchange", "accept", NULL } ;
-static const char* const prompt_attrs[] = { COREATTRS, I18N, "prompt", NULL } ;
-static const char* const label_attrs[] = { ATTRS, "for", "accesskey", "onfocus", "onblur", NULL } ;
-static const char* const legend_attrs[] = { ATTRS, "accesskey", NULL } ;
-static const char* const align_attr[] = { "align", NULL } ;
-static const char* const link_attrs[] = { ATTRS, "charset", "href", "hreflang", "type", "rel", "rev", "media", NULL } ;
-static const char* const map_contents[] = { BLOCK, "area", NULL } ;
-static const char* const name_attr[] = { "name", NULL } ;
-static const char* const action_attr[] = { "action", NULL } ;
-static const char* const blockli_elt[] = { BLOCK, "li", NULL } ;
-static const char* const meta_attrs[] = { I18N, "http-equiv", "name", "scheme", "charset", NULL } ;
-static const char* const content_attr[] = { "content", NULL } ;
-static const char* const type_attr[] = { "type", NULL } ;
-static const char* const noframes_content[] = { "body", FLOW MODIFIER, NULL } ;
-static const char* const object_contents[] = { FLOW, "param", NULL } ;
-static const char* const object_attrs[] = { ATTRS, "declare", "classid", "codebase", "data", "type", "codetype", "archive", "standby", "height", "width", "usemap", "name", "tabindex", NULL } ;
-static const char* const object_depr[] = { "align", "border", "hspace", "vspace", NULL } ;
-static const char* const ol_attrs[] = { "type", "compact", "start", NULL} ;
-static const char* const option_elt[] = { "option", NULL } ;
-static const char* const optgroup_attrs[] = { ATTRS, "disabled", NULL } ;
-static const char* const option_attrs[] = { ATTRS, "disabled", "label", "selected", "value", NULL } ;
-static const char* const param_attrs[] = { "id", "value", "valuetype", "type", NULL } ;
-static const char* const width_attr[] = { "width", NULL } ;
-static const char* const pre_content[] = { PHRASE, "tt", "i", "b", "u", "s", "strike", "a", "br", "script", "map", "q", "span", "bdo", "iframe", NULL } ;
-static const char* const script_attrs[] = { "charset", "src", "defer", "event", "for", NULL } ;
-static const char* const language_attr[] = { "language", NULL } ;
-static const char* const select_content[] = { "optgroup", "option", NULL } ;
-static const char* const select_attrs[] = { ATTRS, "name", "size", "multiple", "disabled", "tabindex", "onfocus", "onblur", "onchange", NULL } ;
-static const char* const style_attrs[] = { I18N, "media", "title", NULL } ;
-static const char* const table_attrs[] = { ATTRS, "summary", "width", "border", "frame", "rules", "cellspacing", "cellpadding", "datapagesize", NULL } ;
-static const char* const table_depr[] = { "align", "bgcolor", NULL } ;
-static const char* const table_contents[] = { "caption", "col", "colgroup", "thead", "tfoot", "tbody", "tr", NULL} ;
-static const char* const tr_elt[] = { "tr", NULL } ;
-static const char* const talign_attrs[] = { ATTRS, CELLHALIGN, CELLVALIGN, NULL} ;
-static const char* const th_td_depr[] = { "nowrap", "bgcolor", "width", "height", NULL } ;
-static const char* const th_td_attr[] = { ATTRS, "abbr", "axis", "headers", "scope", "rowspan", "colspan", CELLHALIGN, CELLVALIGN, NULL } ;
-static const char* const textarea_attrs[] = { ATTRS, "name", "disabled", "readonly", "tabindex", "accesskey", "onfocus", "onblur", "onselect", "onchange", NULL } ;
-static const char* const tr_contents[] = { "th", "td", NULL } ;
-static const char* const bgcolor_attr[] = { "bgcolor", NULL } ;
-static const char* const li_elt[] = { "li", NULL } ;
-static const char* const ul_depr[] = { "type", "compact", NULL} ;
-static const char* const dir_attr[] = { "dir", NULL} ;
-
-#define DECL (const char**)
-
-static const htmlElemDesc
-html40ElementTable[] = {
-{ "a",		0, 0, 0, 0, 0, 0, 1, "anchor ",
-	DECL html_inline , NULL , DECL a_attrs , DECL target_attr, NULL
-},
-{ "abbr",	0, 0, 0, 0, 0, 0, 1, "abbreviated form",
-	DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "acronym",	0, 0, 0, 0, 0, 0, 1, "",
-	DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "address",	0, 0, 0, 0, 0, 0, 0, "information on author ",
-	DECL inline_p  , NULL , DECL html_attrs, NULL, NULL
-},
-{ "applet",	0, 0, 0, 0, 1, 1, 2, "java applet ",
-	DECL flow_param , NULL , NULL , DECL applet_attrs, NULL
-},
-{ "area",	0, 2, 2, 1, 0, 0, 0, "client-side image map area ",
-	EMPTY ,  NULL , DECL area_attrs , DECL target_attr, DECL alt_attr
-},
-{ "b",		0, 3, 0, 0, 0, 0, 1, "bold text style",
-	DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "base",	0, 2, 2, 1, 0, 0, 0, "document base uri ",
-	EMPTY , NULL , NULL , DECL target_attr, DECL href_attrs
-},
-{ "basefont",	0, 2, 2, 1, 1, 1, 1, "base font size " ,
-	EMPTY , NULL , NULL, DECL basefont_attrs, NULL
-},
-{ "bdo",	0, 0, 0, 0, 0, 0, 1, "i18n bidi over-ride ",
-	DECL html_inline , NULL , DECL core_i18n_attrs, NULL, DECL dir_attr
-},
-{ "big",	0, 3, 0, 0, 0, 0, 1, "large text style",
-	DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "blockquote",	0, 0, 0, 0, 0, 0, 0, "long quotation ",
-	DECL html_flow , NULL , DECL quote_attrs , NULL, NULL
-},
-{ "body",	1, 1, 0, 0, 0, 0, 0, "document body ",
-	DECL body_contents , "div" , DECL body_attrs, DECL body_depr, NULL
-},
-{ "br",		0, 2, 2, 1, 0, 0, 1, "forced line break ",
-	EMPTY , NULL , DECL core_attrs, DECL clear_attrs , NULL
-},
-{ "button",	0, 0, 0, 0, 0, 0, 2, "push button ",
-	DECL html_flow MODIFIER , NULL , DECL button_attrs, NULL, NULL
-},
-{ "caption",	0, 0, 0, 0, 0, 0, 0, "table caption ",
-	DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "center",	0, 3, 0, 0, 1, 1, 0, "shorthand for div align=center ",
-	DECL html_flow , NULL , NULL, DECL html_attrs, NULL
-},
-{ "cite",	0, 0, 0, 0, 0, 0, 1, "citation",
-	DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "code",	0, 0, 0, 0, 0, 0, 1, "computer code fragment",
-	DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "col",	0, 2, 2, 1, 0, 0, 0, "table column ",
-	EMPTY , NULL , DECL col_attrs , NULL, NULL
-},
-{ "colgroup",	0, 1, 0, 0, 0, 0, 0, "table column group ",
-	DECL col_elt , "col" , DECL col_attrs , NULL, NULL
-},
-{ "dd",		0, 1, 0, 0, 0, 0, 0, "definition description ",
-	DECL html_flow , NULL , DECL html_attrs, NULL, NULL
-},
-{ "del",	0, 0, 0, 0, 0, 0, 2, "deleted text ",
-	DECL html_flow , NULL , DECL edit_attrs , NULL, NULL
-},
-{ "dfn",	0, 0, 0, 0, 0, 0, 1, "instance definition",
-	DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "dir",	0, 0, 0, 0, 1, 1, 0, "directory list",
-	DECL blockli_elt, "li" , NULL, DECL compact_attrs, NULL
-},
-{ "div",	0, 0, 0, 0, 0, 0, 0, "generic language/style container",
-	DECL html_flow, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "dl",		0, 0, 0, 0, 0, 0, 0, "definition list ",
-	DECL dl_contents , "dd" , DECL html_attrs, DECL compact_attr, NULL
-},
-{ "dt",		0, 1, 0, 0, 0, 0, 0, "definition term ",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "em",		0, 3, 0, 0, 0, 0, 1, "emphasis",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "embed",	0, 1, 0, 0, 1, 1, 1, "generic embedded object ",
-	EMPTY, NULL, DECL embed_attrs, NULL, NULL
-},
-{ "fieldset",	0, 0, 0, 0, 0, 0, 0, "form control group ",
-	DECL fieldset_contents , NULL, DECL html_attrs, NULL, NULL
-},
-{ "font",	0, 3, 0, 0, 1, 1, 1, "local change to font ",
-	DECL html_inline, NULL, NULL, DECL font_attrs, NULL
-},
-{ "form",	0, 0, 0, 0, 0, 0, 0, "interactive form ",
-	DECL form_contents, "fieldset", DECL form_attrs , DECL target_attr, DECL action_attr
-},
-{ "frame",	0, 2, 2, 1, 0, 2, 0, "subwindow " ,
-	EMPTY, NULL, NULL, DECL frame_attrs, NULL
-},
-{ "frameset",	0, 0, 0, 0, 0, 2, 0, "window subdivision" ,
-	DECL frameset_contents, "noframes" , NULL , DECL frameset_attrs, NULL
-},
-{ "h1",		0, 0, 0, 0, 0, 0, 0, "heading ",
-	DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "h2",		0, 0, 0, 0, 0, 0, 0, "heading ",
-	DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "h3",		0, 0, 0, 0, 0, 0, 0, "heading ",
-	DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "h4",		0, 0, 0, 0, 0, 0, 0, "heading ",
-	DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "h5",		0, 0, 0, 0, 0, 0, 0, "heading ",
-	DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "h6",		0, 0, 0, 0, 0, 0, 0, "heading ",
-	DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "head",	1, 1, 0, 0, 0, 0, 0, "document head ",
-	DECL head_contents, NULL, DECL head_attrs, NULL, NULL
-},
-{ "hr",		0, 2, 2, 1, 0, 0, 0, "horizontal rule " ,
-	EMPTY, NULL, DECL html_attrs, DECL hr_depr, NULL
-},
-{ "html",	1, 1, 0, 0, 0, 0, 0, "document root element ",
-	DECL html_content , NULL , DECL i18n_attrs, DECL version_attr, NULL
-},
-{ "i",		0, 3, 0, 0, 0, 0, 1, "italic text style",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "iframe",	0, 0, 0, 0, 0, 1, 2, "inline subwindow ",
-	DECL html_flow, NULL, NULL, DECL iframe_attrs, NULL
-},
-{ "img",	0, 2, 2, 1, 0, 0, 1, "embedded image ",
-	EMPTY, NULL, DECL img_attrs, DECL align_attr, DECL src_alt_attrs
-},
-{ "input",	0, 2, 2, 1, 0, 0, 1, "form control ",
-	EMPTY, NULL, DECL input_attrs , DECL align_attr, NULL
-},
-{ "ins",	0, 0, 0, 0, 0, 0, 2, "inserted text",
-	DECL html_flow, NULL, DECL edit_attrs, NULL, NULL
-},
-{ "isindex",	0, 2, 2, 1, 1, 1, 0, "single line prompt ",
-	EMPTY, NULL, NULL, DECL prompt_attrs, NULL
-},
-{ "kbd",	0, 0, 0, 0, 0, 0, 1, "text to be entered by the user",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "label",	0, 0, 0, 0, 0, 0, 1, "form field label text ",
-	DECL html_inline MODIFIER, NULL, DECL label_attrs , NULL, NULL
-},
-{ "legend",	0, 0, 0, 0, 0, 0, 0, "fieldset legend ",
-	DECL html_inline, NULL, DECL legend_attrs , DECL align_attr, NULL
-},
-{ "li",		0, 1, 1, 0, 0, 0, 0, "list item ",
-	DECL html_flow, NULL, DECL html_attrs, NULL, NULL
-},
-{ "link",	0, 2, 2, 1, 0, 0, 0, "a media-independent link ",
-	EMPTY, NULL, DECL link_attrs, DECL target_attr, NULL
-},
-{ "map",	0, 0, 0, 0, 0, 0, 2, "client-side image map ",
-	DECL map_contents , NULL, DECL html_attrs , NULL, DECL name_attr
-},
-{ "menu",	0, 0, 0, 0, 1, 1, 0, "menu list ",
-	DECL blockli_elt , NULL, NULL, DECL compact_attrs, NULL
-},
-{ "meta",	0, 2, 2, 1, 0, 0, 0, "generic metainformation ",
-	EMPTY, NULL, DECL meta_attrs , NULL , DECL content_attr
-},
-{ "noframes",	0, 0, 0, 0, 0, 2, 0, "alternate content container for non frame-based rendering ",
-	DECL noframes_content, "body" , DECL html_attrs, NULL, NULL
-},
-{ "noscript",	0, 0, 0, 0, 0, 0, 0, "alternate content container for non script-based rendering ",
-	DECL html_flow, "div", DECL html_attrs, NULL, NULL
-},
-{ "object",	0, 0, 0, 0, 0, 0, 2, "generic embedded object ",
-	DECL object_contents , "div" , DECL object_attrs, DECL object_depr, NULL
-},
-{ "ol",		0, 0, 0, 0, 0, 0, 0, "ordered list ",
-	DECL li_elt , "li" , DECL html_attrs, DECL ol_attrs, NULL
-},
-{ "optgroup",	0, 0, 0, 0, 0, 0, 0, "option group ",
-	DECL option_elt , "option", DECL optgroup_attrs, NULL, DECL label_attr
-},
-{ "option",	0, 1, 0, 0, 0, 0, 0, "selectable choice " ,
-	DECL html_pcdata, NULL, DECL option_attrs, NULL, NULL
-},
-{ "p",		0, 1, 0, 0, 0, 0, 0, "paragraph ",
-	DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "param",	0, 2, 2, 1, 0, 0, 0, "named property value ",
-	EMPTY, NULL, DECL param_attrs, NULL, DECL name_attr
-},
-{ "pre",	0, 0, 0, 0, 0, 0, 0, "preformatted text ",
-	DECL pre_content, NULL, DECL html_attrs, DECL width_attr, NULL
-},
-{ "q",		0, 0, 0, 0, 0, 0, 1, "short inline quotation ",
-	DECL html_inline, NULL, DECL quote_attrs, NULL, NULL
-},
-{ "s",		0, 3, 0, 0, 1, 1, 1, "strike-through text style",
-	DECL html_inline, NULL, NULL, DECL html_attrs, NULL
-},
-{ "samp",	0, 0, 0, 0, 0, 0, 1, "sample program output, scripts, etc.",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "script",	0, 0, 0, 0, 0, 0, 2, "script statements ",
-	DECL html_cdata, NULL, DECL script_attrs, DECL language_attr, DECL type_attr
-},
-{ "select",	0, 0, 0, 0, 0, 0, 1, "option selector ",
-	DECL select_content, NULL, DECL select_attrs, NULL, NULL
-},
-{ "small",	0, 3, 0, 0, 0, 0, 1, "small text style",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "span",	0, 0, 0, 0, 0, 0, 1, "generic language/style container ",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "strike",	0, 3, 0, 0, 1, 1, 1, "strike-through text",
-	DECL html_inline, NULL, NULL, DECL html_attrs, NULL
-},
-{ "strong",	0, 3, 0, 0, 0, 0, 1, "strong emphasis",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "style",	0, 0, 0, 0, 0, 0, 0, "style info ",
-	DECL html_cdata, NULL, DECL style_attrs, NULL, DECL type_attr
-},
-{ "sub",	0, 3, 0, 0, 0, 0, 1, "subscript",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "sup",	0, 3, 0, 0, 0, 0, 1, "superscript ",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "table",	0, 0, 0, 0, 0, 0, 0, "",
-	DECL table_contents , "tr" , DECL table_attrs , DECL table_depr, NULL
-},
-{ "tbody",	1, 0, 0, 0, 0, 0, 0, "table body ",
-	DECL tr_elt , "tr" , DECL talign_attrs, NULL, NULL
-},
-{ "td",		0, 0, 0, 0, 0, 0, 0, "table data cell",
-	DECL html_flow, NULL, DECL th_td_attr, DECL th_td_depr, NULL
-},
-{ "textarea",	0, 0, 0, 0, 0, 0, 1, "multi-line text field ",
-	DECL html_pcdata, NULL, DECL textarea_attrs, NULL, DECL rows_cols_attr
-},
-{ "tfoot",	0, 1, 0, 0, 0, 0, 0, "table footer ",
-	DECL tr_elt , "tr" , DECL talign_attrs, NULL, NULL
-},
-{ "th",		0, 1, 0, 0, 0, 0, 0, "table header cell",
-	DECL html_flow, NULL, DECL th_td_attr, DECL th_td_depr, NULL
-},
-{ "thead",	0, 1, 0, 0, 0, 0, 0, "table header ",
-	DECL tr_elt , "tr" , DECL talign_attrs, NULL, NULL
-},
-{ "title",	0, 0, 0, 0, 0, 0, 0, "document title ",
-	DECL html_pcdata, NULL, DECL i18n_attrs, NULL, NULL
-},
-{ "tr",		0, 0, 0, 0, 0, 0, 0, "table row ",
-	DECL tr_contents , "td" , DECL talign_attrs, DECL bgcolor_attr, NULL
-},
-{ "tt",		0, 3, 0, 0, 0, 0, 1, "teletype or monospaced text style",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "u",		0, 3, 0, 0, 1, 1, 1, "underlined text style",
-	DECL html_inline, NULL, NULL, DECL html_attrs, NULL
-},
-{ "ul",		0, 0, 0, 0, 0, 0, 0, "unordered list ",
-	DECL li_elt , "li" , DECL html_attrs, DECL ul_depr, NULL
-},
-{ "var",	0, 0, 0, 0, 0, 0, 1, "instance of a variable or program argument",
-	DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-}
-};
-
-/*
- * start tags that imply the end of current element
- */
-static const char * const htmlStartClose[] = {
-"form",		"form", "p", "hr", "h1", "h2", "h3", "h4", "h5", "h6",
-		"dl", "ul", "ol", "menu", "dir", "address", "pre",
-		"listing", "xmp", "head", NULL,
-"head",		"p", NULL,
-"title",	"p", NULL,
-"body",		"head", "style", "link", "title", "p", NULL,
-"frameset",	"head", "style", "link", "title", "p", NULL,
-"li",		"p", "h1", "h2", "h3", "h4", "h5", "h6", "dl", "address",
-		"pre", "listing", "xmp", "head", "li", NULL,
-"hr",		"p", "head", NULL,
-"h1",		"p", "head", NULL,
-"h2",		"p", "head", NULL,
-"h3",		"p", "head", NULL,
-"h4",		"p", "head", NULL,
-"h5",		"p", "head", NULL,
-"h6",		"p", "head", NULL,
-"dir",		"p", "head", NULL,
-"address",	"p", "head", "ul", NULL,
-"pre",		"p", "head", "ul", NULL,
-"listing",	"p", "head", NULL,
-"xmp",		"p", "head", NULL,
-"blockquote",	"p", "head", NULL,
-"dl",		"p", "dt", "menu", "dir", "address", "pre", "listing",
-		"xmp", "head", NULL,
-"dt",		"p", "menu", "dir", "address", "pre", "listing", "xmp",
-                "head", "dd", NULL,
-"dd",		"p", "menu", "dir", "address", "pre", "listing", "xmp",
-                "head", "dt", NULL,
-"ul",		"p", "head", "ol", "menu", "dir", "address", "pre",
-		"listing", "xmp", NULL,
-"ol",		"p", "head", "ul", NULL,
-"menu",		"p", "head", "ul", NULL,
-"p",		"p", "head", "h1", "h2", "h3", "h4", "h5", "h6", FONTSTYLE, NULL,
-"div",		"p", "head", NULL,
-"noscript",	"p", NULL,
-"center",	"font", "b", "i", "p", "head", NULL,
-"a",		"a", "head", NULL,
-"caption",	"p", NULL,
-"colgroup",	"caption", "colgroup", "col", "p", NULL,
-"col",		"caption", "col", "p", NULL,
-"table",	"p", "head", "h1", "h2", "h3", "h4", "h5", "h6", "pre",
-		"listing", "xmp", "a", NULL,
-"th",		"th", "td", "p", "span", "font", "a", "b", "i", "u", NULL,
-"td",		"th", "td", "p", "span", "font", "a", "b", "i", "u", NULL,
-"tr",		"th", "td", "tr", "caption", "col", "colgroup", "p", NULL,
-"thead",	"caption", "col", "colgroup", NULL,
-"tfoot",	"th", "td", "tr", "caption", "col", "colgroup", "thead",
-		"tbody", "p", NULL,
-"tbody",	"th", "td", "tr", "caption", "col", "colgroup", "thead",
-		"tfoot", "tbody", "p", NULL,
-"optgroup",	"option", NULL,
-"option",	"option", NULL,
-"fieldset",	"legend", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6",
-		"pre", "listing", "xmp", "a", NULL,
-/* most tags in in FONTSTYLE, PHRASE and SPECIAL should close <head> */
-"tt",		"head", NULL,
-"i",		"head", NULL,
-"b",		"head", NULL,
-"u",		"head", NULL,
-"s",		"head", NULL,
-"strike",	"head", NULL,
-"big",		"head", NULL,
-"small",	"head", NULL,
-
-"em",		"head", NULL,
-"strong",	"head", NULL,
-"dfn",		"head", NULL,
-"code",		"head", NULL,
-"samp",		"head", NULL,
-"kbd",		"head", NULL,
-"var",		"head", NULL,
-"cite",		"head", NULL,
-"abbr",		"head", NULL,
-"acronym",	"head", NULL,
-
-/* "a" */
-"img",		"head", NULL,
-/* "applet" */
-/* "embed" */
-/* "object" */
-"font",		"head", NULL,
-/* "basefont" */
-"br",		"head", NULL,
-/* "script" */
-"map",		"head", NULL,
-"q",		"head", NULL,
-"sub",		"head", NULL,
-"sup",		"head", NULL,
-"span",		"head", NULL,
-"bdo",		"head", NULL,
-"iframe",	"head", NULL,
-NULL
-};
-
-/*
- * The list of HTML elements which are supposed not to have
- * CDATA content and where a p element will be implied
- *
- * TODO: extend that list by reading the HTML SGML DTD on
- *       implied paragraph
- */
-static const char *const htmlNoContentElements[] = {
-    "html",
-    "head",
-    NULL
-};
-
-/*
- * The list of HTML attributes which are of content %Script;
- * NOTE: when adding ones, check htmlIsScriptAttribute() since
- *       it assumes the name starts with 'on'
- */
-static const char *const htmlScriptAttributes[] = {
-    "onclick",
-    "ondblclick",
-    "onmousedown",
-    "onmouseup",
-    "onmouseover",
-    "onmousemove",
-    "onmouseout",
-    "onkeypress",
-    "onkeydown",
-    "onkeyup",
-    "onload",
-    "onunload",
-    "onfocus",
-    "onblur",
-    "onsubmit",
-    "onreset",
-    "onchange",
-    "onselect"
-};
-
-/*
- * This table is used by the htmlparser to know what to do with
- * broken html pages. By assigning different priorities to different
- * elements the parser can decide how to handle extra endtags.
- * Endtags are only allowed to close elements with lower or equal
- * priority.
- */
-
-typedef struct {
-    const char *name;
-    int priority;
-} elementPriority;
-
-static const elementPriority htmlEndPriority[] = {
-    {"div",   150},
-    {"td",    160},
-    {"th",    160},
-    {"tr",    170},
-    {"thead", 180},
-    {"tbody", 180},
-    {"tfoot", 180},
-    {"table", 190},
-    {"head",  200},
-    {"body",  200},
-    {"html",  220},
-    {NULL,    100} /* Default priority */
-};
-
-static const char** htmlStartCloseIndex[100];
-static int htmlStartCloseIndexinitialized = 0;
-
-/************************************************************************
- *									*
- *	functions to handle HTML specific data			*
- *									*
- ************************************************************************/
-
-/**
- * htmlInitAutoClose:
- *
- * Initialize the htmlStartCloseIndex for fast lookup of closing tags names.
- * This is not reentrant. Call xmlInitParser() once before processing in
- * case of use in multithreaded programs.
- */
-void
-htmlInitAutoClose(void) {
-    int indx, i = 0;
-
-    if (htmlStartCloseIndexinitialized) return;
-
-    for (indx = 0;indx < 100;indx ++) htmlStartCloseIndex[indx] = NULL;
-    indx = 0;
-    while ((htmlStartClose[i] != NULL) && (indx < 100 - 1)) {
-        htmlStartCloseIndex[indx++] = (const char**) &htmlStartClose[i];
-	while (htmlStartClose[i] != NULL) i++;
-	i++;
-    }
-    htmlStartCloseIndexinitialized = 1;
-}
-
-/**
- * htmlTagLookup:
- * @tag:  The tag name in lowercase
- *
- * Lookup the HTML tag in the ElementTable
- *
- * Returns the related htmlElemDescPtr or NULL if not found.
- */
-const htmlElemDesc *
-htmlTagLookup(const xmlChar *tag) {
-    unsigned int i;
-
-    for (i = 0; i < (sizeof(html40ElementTable) /
-                     sizeof(html40ElementTable[0]));i++) {
-        if (!xmlStrcasecmp(tag, BAD_CAST html40ElementTable[i].name))
-	    return((htmlElemDescPtr) &html40ElementTable[i]);
-    }
-    return(NULL);
-}
-
-/**
- * htmlGetEndPriority:
- * @name: The name of the element to look up the priority for.
- *
- * Return value: The "endtag" priority.
- **/
-static int
-htmlGetEndPriority (const xmlChar *name) {
-    int i = 0;
-
-    while ((htmlEndPriority[i].name != NULL) &&
-	   (!xmlStrEqual((const xmlChar *)htmlEndPriority[i].name, name)))
-	i++;
-
-    return(htmlEndPriority[i].priority);
-}
-
-
-/**
- * htmlCheckAutoClose:
- * @newtag:  The new tag name
- * @oldtag:  The old tag name
- *
- * Checks whether the new tag is one of the registered valid tags for
- * closing old.
- * Initialize the htmlStartCloseIndex for fast lookup of closing tags names.
- *
- * Returns 0 if no, 1 if yes.
- */
-static int
-htmlCheckAutoClose(const xmlChar * newtag, const xmlChar * oldtag)
-{
-    int i, indx;
-    const char **closed = NULL;
-
-    if (htmlStartCloseIndexinitialized == 0)
-        htmlInitAutoClose();
-
-    /* inefficient, but not a big deal */
-    for (indx = 0; indx < 100; indx++) {
-        closed = htmlStartCloseIndex[indx];
-        if (closed == NULL)
-            return (0);
-        if (xmlStrEqual(BAD_CAST * closed, newtag))
-            break;
-    }
-
-    i = closed - htmlStartClose;
-    i++;
-    while (htmlStartClose[i] != NULL) {
-        if (xmlStrEqual(BAD_CAST htmlStartClose[i], oldtag)) {
-            return (1);
-        }
-        i++;
-    }
-    return (0);
-}
-
-/**
- * htmlAutoCloseOnClose:
- * @ctxt:  an HTML parser context
- * @newtag:  The new tag name
- * @force:  force the tag closure
- *
- * The HTML DTD allows an ending tag to implicitly close other tags.
- */
-static void
-htmlAutoCloseOnClose(htmlParserCtxtPtr ctxt, const xmlChar * newtag)
-{
-    const htmlElemDesc *info;
-    int i, priority;
-
-    priority = htmlGetEndPriority(newtag);
-
-    for (i = (ctxt->nameNr - 1); i >= 0; i--) {
-
-        if (xmlStrEqual(newtag, ctxt->nameTab[i]))
-            break;
-        /*
-         * A missplaced endtag can only close elements with lower
-         * or equal priority, so if we find an element with higher
-         * priority before we find an element with
-         * matching name, we just ignore this endtag
-         */
-        if (htmlGetEndPriority(ctxt->nameTab[i]) > priority)
-            return;
-    }
-    if (i < 0)
-        return;
-
-    while (!xmlStrEqual(newtag, ctxt->name)) {
-        info = htmlTagLookup(ctxt->name);
-        if ((info != NULL) && (info->endTag == 3)) {
-            htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
-	                 "Opening and ending tag mismatch: %s and %s\n",
-			 newtag, ctxt->name);
-        }
-        if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
-            ctxt->sax->endElement(ctxt->userData, ctxt->name);
-	htmlnamePop(ctxt);
-    }
-}
-
-/**
- * htmlAutoCloseOnEnd:
- * @ctxt:  an HTML parser context
- *
- * Close all remaining tags at the end of the stream
- */
-static void
-htmlAutoCloseOnEnd(htmlParserCtxtPtr ctxt)
-{
-    int i;
-
-    if (ctxt->nameNr == 0)
-        return;
-    for (i = (ctxt->nameNr - 1); i >= 0; i--) {
-        if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
-            ctxt->sax->endElement(ctxt->userData, ctxt->name);
-	htmlnamePop(ctxt);
-    }
-}
-
-/**
- * htmlAutoClose:
- * @ctxt:  an HTML parser context
- * @newtag:  The new tag name or NULL
- *
- * The HTML DTD allows a tag to implicitly close other tags.
- * The list is kept in htmlStartClose array. This function is
- * called when a new tag has been detected and generates the
- * appropriates closes if possible/needed.
- * If newtag is NULL this mean we are at the end of the resource
- * and we should check
- */
-static void
-htmlAutoClose(htmlParserCtxtPtr ctxt, const xmlChar * newtag)
-{
-    while ((newtag != NULL) && (ctxt->name != NULL) &&
-           (htmlCheckAutoClose(newtag, ctxt->name))) {
-        if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
-            ctxt->sax->endElement(ctxt->userData, ctxt->name);
-	htmlnamePop(ctxt);
-    }
-    if (newtag == NULL) {
-        htmlAutoCloseOnEnd(ctxt);
-        return;
-    }
-    while ((newtag == NULL) && (ctxt->name != NULL) &&
-           ((xmlStrEqual(ctxt->name, BAD_CAST "head")) ||
-            (xmlStrEqual(ctxt->name, BAD_CAST "body")) ||
-            (xmlStrEqual(ctxt->name, BAD_CAST "html")))) {
-        if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
-            ctxt->sax->endElement(ctxt->userData, ctxt->name);
-	htmlnamePop(ctxt);
-    }
-}
-
-/**
- * htmlAutoCloseTag:
- * @doc:  the HTML document
- * @name:  The tag name
- * @elem:  the HTML element
- *
- * The HTML DTD allows a tag to implicitly close other tags.
- * The list is kept in htmlStartClose array. This function checks
- * if the element or one of it's children would autoclose the
- * given tag.
- *
- * Returns 1 if autoclose, 0 otherwise
- */
-int
-htmlAutoCloseTag(htmlDocPtr doc, const xmlChar *name, htmlNodePtr elem) {
-    htmlNodePtr child;
-
-    if (elem == NULL) return(1);
-    if (xmlStrEqual(name, elem->name)) return(0);
-    if (htmlCheckAutoClose(elem->name, name)) return(1);
-    child = elem->children;
-    while (child != NULL) {
-        if (htmlAutoCloseTag(doc, name, child)) return(1);
-	child = child->next;
-    }
-    return(0);
-}
-
-/**
- * htmlIsAutoClosed:
- * @doc:  the HTML document
- * @elem:  the HTML element
- *
- * The HTML DTD allows a tag to implicitly close other tags.
- * The list is kept in htmlStartClose array. This function checks
- * if a tag is autoclosed by one of it's child
- *
- * Returns 1 if autoclosed, 0 otherwise
- */
-int
-htmlIsAutoClosed(htmlDocPtr doc, htmlNodePtr elem) {
-    htmlNodePtr child;
-
-    if (elem == NULL) return(1);
-    child = elem->children;
-    while (child != NULL) {
-	if (htmlAutoCloseTag(doc, elem->name, child)) return(1);
-	child = child->next;
-    }
-    return(0);
-}
-
-/**
- * htmlCheckImplied:
- * @ctxt:  an HTML parser context
- * @newtag:  The new tag name
- *
- * The HTML DTD allows a tag to exists only implicitly
- * called when a new tag has been detected and generates the
- * appropriates implicit tags if missing
- */
-static void
-htmlCheckImplied(htmlParserCtxtPtr ctxt, const xmlChar *newtag) {
-    int i;
-
-    if (ctxt->options & HTML_PARSE_NOIMPLIED)
-        return;
-    if (!htmlOmittedDefaultValue)
-	return;
-    if (xmlStrEqual(newtag, BAD_CAST"html"))
-	return;
-    if (ctxt->nameNr <= 0) {
-	htmlnamePush(ctxt, BAD_CAST"html");
-	if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
-	    ctxt->sax->startElement(ctxt->userData, BAD_CAST"html", NULL);
-    }
-    if ((xmlStrEqual(newtag, BAD_CAST"body")) || (xmlStrEqual(newtag, BAD_CAST"head")))
-        return;
-    if ((ctxt->nameNr <= 1) &&
-        ((xmlStrEqual(newtag, BAD_CAST"script")) ||
-	 (xmlStrEqual(newtag, BAD_CAST"style")) ||
-	 (xmlStrEqual(newtag, BAD_CAST"meta")) ||
-	 (xmlStrEqual(newtag, BAD_CAST"link")) ||
-	 (xmlStrEqual(newtag, BAD_CAST"title")) ||
-	 (xmlStrEqual(newtag, BAD_CAST"base")))) {
-        if (ctxt->html >= 3) {
-            /* we already saw or generated an <head> before */
-            return;
-        }
-        /*
-         * dropped OBJECT ... i you put it first BODY will be
-         * assumed !
-         */
-        htmlnamePush(ctxt, BAD_CAST"head");
-        if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
-            ctxt->sax->startElement(ctxt->userData, BAD_CAST"head", NULL);
-    } else if ((!xmlStrEqual(newtag, BAD_CAST"noframes")) &&
-	       (!xmlStrEqual(newtag, BAD_CAST"frame")) &&
-	       (!xmlStrEqual(newtag, BAD_CAST"frameset"))) {
-        if (ctxt->html >= 10) {
-            /* we already saw or generated a <body> before */
-            return;
-        }
-	for (i = 0;i < ctxt->nameNr;i++) {
-	    if (xmlStrEqual(ctxt->nameTab[i], BAD_CAST"body")) {
-		return;
-	    }
-	    if (xmlStrEqual(ctxt->nameTab[i], BAD_CAST"head")) {
-		return;
-	    }
-	}
-
-	htmlnamePush(ctxt, BAD_CAST"body");
-	if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
-	    ctxt->sax->startElement(ctxt->userData, BAD_CAST"body", NULL);
-    }
-}
-
-/**
- * htmlCheckParagraph
- * @ctxt:  an HTML parser context
- *
- * Check whether a p element need to be implied before inserting
- * characters in the current element.
- *
- * Returns 1 if a paragraph has been inserted, 0 if not and -1
- *         in case of error.
- */
-
-static int
-htmlCheckParagraph(htmlParserCtxtPtr ctxt) {
-    const xmlChar *tag;
-    int i;
-
-    if (ctxt == NULL)
-	return(-1);
-    tag = ctxt->name;
-    if (tag == NULL) {
-	htmlAutoClose(ctxt, BAD_CAST"p");
-	htmlCheckImplied(ctxt, BAD_CAST"p");
-	htmlnamePush(ctxt, BAD_CAST"p");
-	if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
-	    ctxt->sax->startElement(ctxt->userData, BAD_CAST"p", NULL);
-	return(1);
-    }
-    if (!htmlOmittedDefaultValue)
-	return(0);
-    for (i = 0; htmlNoContentElements[i] != NULL; i++) {
-	if (xmlStrEqual(tag, BAD_CAST htmlNoContentElements[i])) {
-	    htmlAutoClose(ctxt, BAD_CAST"p");
-	    htmlCheckImplied(ctxt, BAD_CAST"p");
-	    htmlnamePush(ctxt, BAD_CAST"p");
-	    if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
-		ctxt->sax->startElement(ctxt->userData, BAD_CAST"p", NULL);
-	    return(1);
-	}
-    }
-    return(0);
-}
-
-/**
- * htmlIsScriptAttribute:
- * @name:  an attribute name
- *
- * Check if an attribute is of content type Script
- *
- * Returns 1 is the attribute is a script 0 otherwise
- */
-int
-htmlIsScriptAttribute(const xmlChar *name) {
-    unsigned int i;
-
-    if (name == NULL)
-      return(0);
-    /*
-     * all script attributes start with 'on'
-     */
-    if ((name[0] != 'o') || (name[1] != 'n'))
-      return(0);
-    for (i = 0;
-	 i < sizeof(htmlScriptAttributes)/sizeof(htmlScriptAttributes[0]);
-	 i++) {
-	if (xmlStrEqual(name, (const xmlChar *) htmlScriptAttributes[i]))
-	    return(1);
-    }
-    return(0);
-}
-
-/************************************************************************
- *									*
- *	The list of HTML predefined entities			*
- *									*
- ************************************************************************/
-
-
-static const htmlEntityDesc  html40EntitiesTable[] = {
-/*
- * the 4 absolute ones, plus apostrophe.
- */
-{ 34,	"quot",	"quotation mark = APL quote, U+0022 ISOnum" },
-{ 38,	"amp",	"ampersand, U+0026 ISOnum" },
-{ 39,	"apos",	"single quote" },
-{ 60,	"lt",	"less-than sign, U+003C ISOnum" },
-{ 62,	"gt",	"greater-than sign, U+003E ISOnum" },
-
-/*
- * A bunch still in the 128-255 range
- * Replacing them depend really on the charset used.
- */
-{ 160,	"nbsp",	"no-break space = non-breaking space, U+00A0 ISOnum" },
-{ 161,	"iexcl","inverted exclamation mark, U+00A1 ISOnum" },
-{ 162,	"cent",	"cent sign, U+00A2 ISOnum" },
-{ 163,	"pound","pound sign, U+00A3 ISOnum" },
-{ 164,	"curren","currency sign, U+00A4 ISOnum" },
-{ 165,	"yen",	"yen sign = yuan sign, U+00A5 ISOnum" },
-{ 166,	"brvbar","broken bar = broken vertical bar, U+00A6 ISOnum" },
-{ 167,	"sect",	"section sign, U+00A7 ISOnum" },
-{ 168,	"uml",	"diaeresis = spacing diaeresis, U+00A8 ISOdia" },
-{ 169,	"copy",	"copyright sign, U+00A9 ISOnum" },
-{ 170,	"ordf",	"feminine ordinal indicator, U+00AA ISOnum" },
-{ 171,	"laquo","left-pointing double angle quotation mark = left pointing guillemet, U+00AB ISOnum" },
-{ 172,	"not",	"not sign, U+00AC ISOnum" },
-{ 173,	"shy",	"soft hyphen = discretionary hyphen, U+00AD ISOnum" },
-{ 174,	"reg",	"registered sign = registered trade mark sign, U+00AE ISOnum" },
-{ 175,	"macr",	"macron = spacing macron = overline = APL overbar, U+00AF ISOdia" },
-{ 176,	"deg",	"degree sign, U+00B0 ISOnum" },
-{ 177,	"plusmn","plus-minus sign = plus-or-minus sign, U+00B1 ISOnum" },
-{ 178,	"sup2",	"superscript two = superscript digit two = squared, U+00B2 ISOnum" },
-{ 179,	"sup3",	"superscript three = superscript digit three = cubed, U+00B3 ISOnum" },
-{ 180,	"acute","acute accent = spacing acute, U+00B4 ISOdia" },
-{ 181,	"micro","micro sign, U+00B5 ISOnum" },
-{ 182,	"para",	"pilcrow sign = paragraph sign, U+00B6 ISOnum" },
-{ 183,	"middot","middle dot = Georgian comma Greek middle dot, U+00B7 ISOnum" },
-{ 184,	"cedil","cedilla = spacing cedilla, U+00B8 ISOdia" },
-{ 185,	"sup1",	"superscript one = superscript digit one, U+00B9 ISOnum" },
-{ 186,	"ordm",	"masculine ordinal indicator, U+00BA ISOnum" },
-{ 187,	"raquo","right-pointing double angle quotation mark right pointing guillemet, U+00BB ISOnum" },
-{ 188,	"frac14","vulgar fraction one quarter = fraction one quarter, U+00BC ISOnum" },
-{ 189,	"frac12","vulgar fraction one half = fraction one half, U+00BD ISOnum" },
-{ 190,	"frac34","vulgar fraction three quarters = fraction three quarters, U+00BE ISOnum" },
-{ 191,	"iquest","inverted question mark = turned question mark, U+00BF ISOnum" },
-{ 192,	"Agrave","latin capital letter A with grave = latin capital letter A grave, U+00C0 ISOlat1" },
-{ 193,	"Aacute","latin capital letter A with acute, U+00C1 ISOlat1" },
-{ 194,	"Acirc","latin capital letter A with circumflex, U+00C2 ISOlat1" },
-{ 195,	"Atilde","latin capital letter A with tilde, U+00C3 ISOlat1" },
-{ 196,	"Auml",	"latin capital letter A with diaeresis, U+00C4 ISOlat1" },
-{ 197,	"Aring","latin capital letter A with ring above = latin capital letter A ring, U+00C5 ISOlat1" },
-{ 198,	"AElig","latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1" },
-{ 199,	"Ccedil","latin capital letter C with cedilla, U+00C7 ISOlat1" },
-{ 200,	"Egrave","latin capital letter E with grave, U+00C8 ISOlat1" },
-{ 201,	"Eacute","latin capital letter E with acute, U+00C9 ISOlat1" },
-{ 202,	"Ecirc","latin capital letter E with circumflex, U+00CA ISOlat1" },
-{ 203,	"Euml",	"latin capital letter E with diaeresis, U+00CB ISOlat1" },
-{ 204,	"Igrave","latin capital letter I with grave, U+00CC ISOlat1" },
-{ 205,	"Iacute","latin capital letter I with acute, U+00CD ISOlat1" },
-{ 206,	"Icirc","latin capital letter I with circumflex, U+00CE ISOlat1" },
-{ 207,	"Iuml",	"latin capital letter I with diaeresis, U+00CF ISOlat1" },
-{ 208,	"ETH",	"latin capital letter ETH, U+00D0 ISOlat1" },
-{ 209,	"Ntilde","latin capital letter N with tilde, U+00D1 ISOlat1" },
-{ 210,	"Ograve","latin capital letter O with grave, U+00D2 ISOlat1" },
-{ 211,	"Oacute","latin capital letter O with acute, U+00D3 ISOlat1" },
-{ 212,	"Ocirc","latin capital letter O with circumflex, U+00D4 ISOlat1" },
-{ 213,	"Otilde","latin capital letter O with tilde, U+00D5 ISOlat1" },
-{ 214,	"Ouml",	"latin capital letter O with diaeresis, U+00D6 ISOlat1" },
-{ 215,	"times","multiplication sign, U+00D7 ISOnum" },
-{ 216,	"Oslash","latin capital letter O with stroke latin capital letter O slash, U+00D8 ISOlat1" },
-{ 217,	"Ugrave","latin capital letter U with grave, U+00D9 ISOlat1" },
-{ 218,	"Uacute","latin capital letter U with acute, U+00DA ISOlat1" },
-{ 219,	"Ucirc","latin capital letter U with circumflex, U+00DB ISOlat1" },
-{ 220,	"Uuml",	"latin capital letter U with diaeresis, U+00DC ISOlat1" },
-{ 221,	"Yacute","latin capital letter Y with acute, U+00DD ISOlat1" },
-{ 222,	"THORN","latin capital letter THORN, U+00DE ISOlat1" },
-{ 223,	"szlig","latin small letter sharp s = ess-zed, U+00DF ISOlat1" },
-{ 224,	"agrave","latin small letter a with grave = latin small letter a grave, U+00E0 ISOlat1" },
-{ 225,	"aacute","latin small letter a with acute, U+00E1 ISOlat1" },
-{ 226,	"acirc","latin small letter a with circumflex, U+00E2 ISOlat1" },
-{ 227,	"atilde","latin small letter a with tilde, U+00E3 ISOlat1" },
-{ 228,	"auml",	"latin small letter a with diaeresis, U+00E4 ISOlat1" },
-{ 229,	"aring","latin small letter a with ring above = latin small letter a ring, U+00E5 ISOlat1" },
-{ 230,	"aelig","latin small letter ae = latin small ligature ae, U+00E6 ISOlat1" },
-{ 231,	"ccedil","latin small letter c with cedilla, U+00E7 ISOlat1" },
-{ 232,	"egrave","latin small letter e with grave, U+00E8 ISOlat1" },
-{ 233,	"eacute","latin small letter e with acute, U+00E9 ISOlat1" },
-{ 234,	"ecirc","latin small letter e with circumflex, U+00EA ISOlat1" },
-{ 235,	"euml",	"latin small letter e with diaeresis, U+00EB ISOlat1" },
-{ 236,	"igrave","latin small letter i with grave, U+00EC ISOlat1" },
-{ 237,	"iacute","latin small letter i with acute, U+00ED ISOlat1" },
-{ 238,	"icirc","latin small letter i with circumflex, U+00EE ISOlat1" },
-{ 239,	"iuml",	"latin small letter i with diaeresis, U+00EF ISOlat1" },
-{ 240,	"eth",	"latin small letter eth, U+00F0 ISOlat1" },
-{ 241,	"ntilde","latin small letter n with tilde, U+00F1 ISOlat1" },
-{ 242,	"ograve","latin small letter o with grave, U+00F2 ISOlat1" },
-{ 243,	"oacute","latin small letter o with acute, U+00F3 ISOlat1" },
-{ 244,	"ocirc","latin small letter o with circumflex, U+00F4 ISOlat1" },
-{ 245,	"otilde","latin small letter o with tilde, U+00F5 ISOlat1" },
-{ 246,	"ouml",	"latin small letter o with diaeresis, U+00F6 ISOlat1" },
-{ 247,	"divide","division sign, U+00F7 ISOnum" },
-{ 248,	"oslash","latin small letter o with stroke, = latin small letter o slash, U+00F8 ISOlat1" },
-{ 249,	"ugrave","latin small letter u with grave, U+00F9 ISOlat1" },
-{ 250,	"uacute","latin small letter u with acute, U+00FA ISOlat1" },
-{ 251,	"ucirc","latin small letter u with circumflex, U+00FB ISOlat1" },
-{ 252,	"uuml",	"latin small letter u with diaeresis, U+00FC ISOlat1" },
-{ 253,	"yacute","latin small letter y with acute, U+00FD ISOlat1" },
-{ 254,	"thorn","latin small letter thorn with, U+00FE ISOlat1" },
-{ 255,	"yuml",	"latin small letter y with diaeresis, U+00FF ISOlat1" },
-
-{ 338,	"OElig","latin capital ligature OE, U+0152 ISOlat2" },
-{ 339,	"oelig","latin small ligature oe, U+0153 ISOlat2" },
-{ 352,	"Scaron","latin capital letter S with caron, U+0160 ISOlat2" },
-{ 353,	"scaron","latin small letter s with caron, U+0161 ISOlat2" },
-{ 376,	"Yuml",	"latin capital letter Y with diaeresis, U+0178 ISOlat2" },
-
-/*
- * Anything below should really be kept as entities references
- */
-{ 402,	"fnof",	"latin small f with hook = function = florin, U+0192 ISOtech" },
-
-{ 710,	"circ",	"modifier letter circumflex accent, U+02C6 ISOpub" },
-{ 732,	"tilde","small tilde, U+02DC ISOdia" },
-
-{ 913,	"Alpha","greek capital letter alpha, U+0391" },
-{ 914,	"Beta",	"greek capital letter beta, U+0392" },
-{ 915,	"Gamma","greek capital letter gamma, U+0393 ISOgrk3" },
-{ 916,	"Delta","greek capital letter delta, U+0394 ISOgrk3" },
-{ 917,	"Epsilon","greek capital letter epsilon, U+0395" },
-{ 918,	"Zeta",	"greek capital letter zeta, U+0396" },
-{ 919,	"Eta",	"greek capital letter eta, U+0397" },
-{ 920,	"Theta","greek capital letter theta, U+0398 ISOgrk3" },
-{ 921,	"Iota",	"greek capital letter iota, U+0399" },
-{ 922,	"Kappa","greek capital letter kappa, U+039A" },
-{ 923,	"Lambda", "greek capital letter lambda, U+039B ISOgrk3" },
-{ 924,	"Mu",	"greek capital letter mu, U+039C" },
-{ 925,	"Nu",	"greek capital letter nu, U+039D" },
-{ 926,	"Xi",	"greek capital letter xi, U+039E ISOgrk3" },
-{ 927,	"Omicron","greek capital letter omicron, U+039F" },
-{ 928,	"Pi",	"greek capital letter pi, U+03A0 ISOgrk3" },
-{ 929,	"Rho",	"greek capital letter rho, U+03A1" },
-{ 931,	"Sigma","greek capital letter sigma, U+03A3 ISOgrk3" },
-{ 932,	"Tau",	"greek capital letter tau, U+03A4" },
-{ 933,	"Upsilon","greek capital letter upsilon, U+03A5 ISOgrk3" },
-{ 934,	"Phi",	"greek capital letter phi, U+03A6 ISOgrk3" },
-{ 935,	"Chi",	"greek capital letter chi, U+03A7" },
-{ 936,	"Psi",	"greek capital letter psi, U+03A8 ISOgrk3" },
-{ 937,	"Omega","greek capital letter omega, U+03A9 ISOgrk3" },
-
-{ 945,	"alpha","greek small letter alpha, U+03B1 ISOgrk3" },
-{ 946,	"beta",	"greek small letter beta, U+03B2 ISOgrk3" },
-{ 947,	"gamma","greek small letter gamma, U+03B3 ISOgrk3" },
-{ 948,	"delta","greek small letter delta, U+03B4 ISOgrk3" },
-{ 949,	"epsilon","greek small letter epsilon, U+03B5 ISOgrk3" },
-{ 950,	"zeta",	"greek small letter zeta, U+03B6 ISOgrk3" },
-{ 951,	"eta",	"greek small letter eta, U+03B7 ISOgrk3" },
-{ 952,	"theta","greek small letter theta, U+03B8 ISOgrk3" },
-{ 953,	"iota",	"greek small letter iota, U+03B9 ISOgrk3" },
-{ 954,	"kappa","greek small letter kappa, U+03BA ISOgrk3" },
-{ 955,	"lambda","greek small letter lambda, U+03BB ISOgrk3" },
-{ 956,	"mu",	"greek small letter mu, U+03BC ISOgrk3" },
-{ 957,	"nu",	"greek small letter nu, U+03BD ISOgrk3" },
-{ 958,	"xi",	"greek small letter xi, U+03BE ISOgrk3" },
-{ 959,	"omicron","greek small letter omicron, U+03BF NEW" },
-{ 960,	"pi",	"greek small letter pi, U+03C0 ISOgrk3" },
-{ 961,	"rho",	"greek small letter rho, U+03C1 ISOgrk3" },
-{ 962,	"sigmaf","greek small letter final sigma, U+03C2 ISOgrk3" },
-{ 963,	"sigma","greek small letter sigma, U+03C3 ISOgrk3" },
-{ 964,	"tau",	"greek small letter tau, U+03C4 ISOgrk3" },
-{ 965,	"upsilon","greek small letter upsilon, U+03C5 ISOgrk3" },
-{ 966,	"phi",	"greek small letter phi, U+03C6 ISOgrk3" },
-{ 967,	"chi",	"greek small letter chi, U+03C7 ISOgrk3" },
-{ 968,	"psi",	"greek small letter psi, U+03C8 ISOgrk3" },
-{ 969,	"omega","greek small letter omega, U+03C9 ISOgrk3" },
-{ 977,	"thetasym","greek small letter theta symbol, U+03D1 NEW" },
-{ 978,	"upsih","greek upsilon with hook symbol, U+03D2 NEW" },
-{ 982,	"piv",	"greek pi symbol, U+03D6 ISOgrk3" },
-
-{ 8194,	"ensp",	"en space, U+2002 ISOpub" },
-{ 8195,	"emsp",	"em space, U+2003 ISOpub" },
-{ 8201,	"thinsp","thin space, U+2009 ISOpub" },
-{ 8204,	"zwnj",	"zero width non-joiner, U+200C NEW RFC 2070" },
-{ 8205,	"zwj",	"zero width joiner, U+200D NEW RFC 2070" },
-{ 8206,	"lrm",	"left-to-right mark, U+200E NEW RFC 2070" },
-{ 8207,	"rlm",	"right-to-left mark, U+200F NEW RFC 2070" },
-{ 8211,	"ndash","en dash, U+2013 ISOpub" },
-{ 8212,	"mdash","em dash, U+2014 ISOpub" },
-{ 8216,	"lsquo","left single quotation mark, U+2018 ISOnum" },
-{ 8217,	"rsquo","right single quotation mark, U+2019 ISOnum" },
-{ 8218,	"sbquo","single low-9 quotation mark, U+201A NEW" },
-{ 8220,	"ldquo","left double quotation mark, U+201C ISOnum" },
-{ 8221,	"rdquo","right double quotation mark, U+201D ISOnum" },
-{ 8222,	"bdquo","double low-9 quotation mark, U+201E NEW" },
-{ 8224,	"dagger","dagger, U+2020 ISOpub" },
-{ 8225,	"Dagger","double dagger, U+2021 ISOpub" },
-
-{ 8226,	"bull",	"bullet = black small circle, U+2022 ISOpub" },
-{ 8230,	"hellip","horizontal ellipsis = three dot leader, U+2026 ISOpub" },
-
-{ 8240,	"permil","per mille sign, U+2030 ISOtech" },
-
-{ 8242,	"prime","prime = minutes = feet, U+2032 ISOtech" },
-{ 8243,	"Prime","double prime = seconds = inches, U+2033 ISOtech" },
-
-{ 8249,	"lsaquo","single left-pointing angle quotation mark, U+2039 ISO proposed" },
-{ 8250,	"rsaquo","single right-pointing angle quotation mark, U+203A ISO proposed" },
-
-{ 8254,	"oline","overline = spacing overscore, U+203E NEW" },
-{ 8260,	"frasl","fraction slash, U+2044 NEW" },
-
-{ 8364,	"euro",	"euro sign, U+20AC NEW" },
-
-{ 8465,	"image","blackletter capital I = imaginary part, U+2111 ISOamso" },
-{ 8472,	"weierp","script capital P = power set = Weierstrass p, U+2118 ISOamso" },
-{ 8476,	"real",	"blackletter capital R = real part symbol, U+211C ISOamso" },
-{ 8482,	"trade","trade mark sign, U+2122 ISOnum" },
-{ 8501,	"alefsym","alef symbol = first transfinite cardinal, U+2135 NEW" },
-{ 8592,	"larr",	"leftwards arrow, U+2190 ISOnum" },
-{ 8593,	"uarr",	"upwards arrow, U+2191 ISOnum" },
-{ 8594,	"rarr",	"rightwards arrow, U+2192 ISOnum" },
-{ 8595,	"darr",	"downwards arrow, U+2193 ISOnum" },
-{ 8596,	"harr",	"left right arrow, U+2194 ISOamsa" },
-{ 8629,	"crarr","downwards arrow with corner leftwards = carriage return, U+21B5 NEW" },
-{ 8656,	"lArr",	"leftwards double arrow, U+21D0 ISOtech" },
-{ 8657,	"uArr",	"upwards double arrow, U+21D1 ISOamsa" },
-{ 8658,	"rArr",	"rightwards double arrow, U+21D2 ISOtech" },
-{ 8659,	"dArr",	"downwards double arrow, U+21D3 ISOamsa" },
-{ 8660,	"hArr",	"left right double arrow, U+21D4 ISOamsa" },
-
-{ 8704,	"forall","for all, U+2200 ISOtech" },
-{ 8706,	"part",	"partial differential, U+2202 ISOtech" },
-{ 8707,	"exist","there exists, U+2203 ISOtech" },
-{ 8709,	"empty","empty set = null set = diameter, U+2205 ISOamso" },
-{ 8711,	"nabla","nabla = backward difference, U+2207 ISOtech" },
-{ 8712,	"isin",	"element of, U+2208 ISOtech" },
-{ 8713,	"notin","not an element of, U+2209 ISOtech" },
-{ 8715,	"ni",	"contains as member, U+220B ISOtech" },
-{ 8719,	"prod",	"n-ary product = product sign, U+220F ISOamsb" },
-{ 8721,	"sum",	"n-ary summation, U+2211 ISOamsb" },
-{ 8722,	"minus","minus sign, U+2212 ISOtech" },
-{ 8727,	"lowast","asterisk operator, U+2217 ISOtech" },
-{ 8730,	"radic","square root = radical sign, U+221A ISOtech" },
-{ 8733,	"prop",	"proportional to, U+221D ISOtech" },
-{ 8734,	"infin","infinity, U+221E ISOtech" },
-{ 8736,	"ang",	"angle, U+2220 ISOamso" },
-{ 8743,	"and",	"logical and = wedge, U+2227 ISOtech" },
-{ 8744,	"or",	"logical or = vee, U+2228 ISOtech" },
-{ 8745,	"cap",	"intersection = cap, U+2229 ISOtech" },
-{ 8746,	"cup",	"union = cup, U+222A ISOtech" },
-{ 8747,	"int",	"integral, U+222B ISOtech" },
-{ 8756,	"there4","therefore, U+2234 ISOtech" },
-{ 8764,	"sim",	"tilde operator = varies with = similar to, U+223C ISOtech" },
-{ 8773,	"cong",	"approximately equal to, U+2245 ISOtech" },
-{ 8776,	"asymp","almost equal to = asymptotic to, U+2248 ISOamsr" },
-{ 8800,	"ne",	"not equal to, U+2260 ISOtech" },
-{ 8801,	"equiv","identical to, U+2261 ISOtech" },
-{ 8804,	"le",	"less-than or equal to, U+2264 ISOtech" },
-{ 8805,	"ge",	"greater-than or equal to, U+2265 ISOtech" },
-{ 8834,	"sub",	"subset of, U+2282 ISOtech" },
-{ 8835,	"sup",	"superset of, U+2283 ISOtech" },
-{ 8836,	"nsub",	"not a subset of, U+2284 ISOamsn" },
-{ 8838,	"sube",	"subset of or equal to, U+2286 ISOtech" },
-{ 8839,	"supe",	"superset of or equal to, U+2287 ISOtech" },
-{ 8853,	"oplus","circled plus = direct sum, U+2295 ISOamsb" },
-{ 8855,	"otimes","circled times = vector product, U+2297 ISOamsb" },
-{ 8869,	"perp",	"up tack = orthogonal to = perpendicular, U+22A5 ISOtech" },
-{ 8901,	"sdot",	"dot operator, U+22C5 ISOamsb" },
-{ 8968,	"lceil","left ceiling = apl upstile, U+2308 ISOamsc" },
-{ 8969,	"rceil","right ceiling, U+2309 ISOamsc" },
-{ 8970,	"lfloor","left floor = apl downstile, U+230A ISOamsc" },
-{ 8971,	"rfloor","right floor, U+230B ISOamsc" },
-{ 9001,	"lang",	"left-pointing angle bracket = bra, U+2329 ISOtech" },
-{ 9002,	"rang",	"right-pointing angle bracket = ket, U+232A ISOtech" },
-{ 9674,	"loz",	"lozenge, U+25CA ISOpub" },
-
-{ 9824,	"spades","black spade suit, U+2660 ISOpub" },
-{ 9827,	"clubs","black club suit = shamrock, U+2663 ISOpub" },
-{ 9829,	"hearts","black heart suit = valentine, U+2665 ISOpub" },
-{ 9830,	"diams","black diamond suit, U+2666 ISOpub" },
-
-};
-
-/************************************************************************
- *									*
- *		Commodity functions to handle entities			*
- *									*
- ************************************************************************/
-
-/*
- * Macro used to grow the current buffer.
- */
-#define growBuffer(buffer) {						\
-    xmlChar *tmp;							\
-    buffer##_size *= 2;							\
-    tmp = (xmlChar *) xmlRealloc(buffer, buffer##_size * sizeof(xmlChar)); \
-    if (tmp == NULL) {						\
-	htmlErrMemory(ctxt, "growing buffer\n");			\
-	xmlFree(buffer);						\
-	return(NULL);							\
-    }									\
-    buffer = tmp;							\
-}
-
-/**
- * htmlEntityLookup:
- * @name: the entity name
- *
- * Lookup the given entity in EntitiesTable
- *
- * TODO: the linear scan is really ugly, an hash table is really needed.
- *
- * Returns the associated htmlEntityDescPtr if found, NULL otherwise.
- */
-const htmlEntityDesc *
-htmlEntityLookup(const xmlChar *name) {
-    unsigned int i;
-
-    for (i = 0;i < (sizeof(html40EntitiesTable)/
-                    sizeof(html40EntitiesTable[0]));i++) {
-        if (xmlStrEqual(name, BAD_CAST html40EntitiesTable[i].name)) {
-            return((htmlEntityDescPtr) &html40EntitiesTable[i]);
-	}
-    }
-    return(NULL);
-}
-
-/**
- * htmlEntityValueLookup:
- * @value: the entity's unicode value
- *
- * Lookup the given entity in EntitiesTable
- *
- * TODO: the linear scan is really ugly, an hash table is really needed.
- *
- * Returns the associated htmlEntityDescPtr if found, NULL otherwise.
- */
-const htmlEntityDesc *
-htmlEntityValueLookup(unsigned int value) {
-    unsigned int i;
-
-    for (i = 0;i < (sizeof(html40EntitiesTable)/
-                    sizeof(html40EntitiesTable[0]));i++) {
-        if (html40EntitiesTable[i].value >= value) {
-	    if (html40EntitiesTable[i].value > value)
-		break;
-            return((htmlEntityDescPtr) &html40EntitiesTable[i]);
-	}
-    }
-    return(NULL);
-}
-
-/**
- * UTF8ToHtml:
- * @out:  a pointer to an array of bytes to store the result
- * @outlen:  the length of @out
- * @in:  a pointer to an array of UTF-8 chars
- * @inlen:  the length of @in
- *
- * Take a block of UTF-8 chars in and try to convert it to an ASCII
- * plus HTML entities block of chars out.
- *
- * Returns 0 if success, -2 if the transcoding fails, or -1 otherwise
- * The value of @inlen after return is the number of octets consumed
- *     as the return value is positive, else unpredictable.
- * The value of @outlen after return is the number of octets consumed.
- */
-int
-UTF8ToHtml(unsigned char* out, int *outlen,
-              const unsigned char* in, int *inlen) {
-    const unsigned char* processed = in;
-    const unsigned char* outend;
-    const unsigned char* outstart = out;
-    const unsigned char* instart = in;
-    const unsigned char* inend;
-    unsigned int c, d;
-    int trailing;
-
-    if ((out == NULL) || (outlen == NULL) || (inlen == NULL)) return(-1);
-    if (in == NULL) {
-        /*
-	 * initialization nothing to do
-	 */
-	*outlen = 0;
-	*inlen = 0;
-	return(0);
-    }
-    inend = in + (*inlen);
-    outend = out + (*outlen);
-    while (in < inend) {
-	d = *in++;
-	if      (d < 0x80)  { c= d; trailing= 0; }
-	else if (d < 0xC0) {
-	    /* trailing byte in leading position */
-	    *outlen = out - outstart;
-	    *inlen = processed - instart;
-	    return(-2);
-        } else if (d < 0xE0)  { c= d & 0x1F; trailing= 1; }
-        else if (d < 0xF0)  { c= d & 0x0F; trailing= 2; }
-        else if (d < 0xF8)  { c= d & 0x07; trailing= 3; }
-	else {
-	    /* no chance for this in Ascii */
-	    *outlen = out - outstart;
-	    *inlen = processed - instart;
-	    return(-2);
-	}
-
-	if (inend - in < trailing) {
-	    break;
-	}
-
-	for ( ; trailing; trailing--) {
-	    if ((in >= inend) || (((d= *in++) & 0xC0) != 0x80))
-		break;
-	    c <<= 6;
-	    c |= d & 0x3F;
-	}
-
-	/* assertion: c is a single UTF-4 value */
-	if (c < 0x80) {
-	    if (out + 1 >= outend)
-		break;
-	    *out++ = c;
-	} else {
-	    int len;
-	    const htmlEntityDesc * ent;
-	    const char *cp;
-	    char nbuf[16];
-
-	    /*
-	     * Try to lookup a predefined HTML entity for it
-	     */
-
-	    ent = htmlEntityValueLookup(c);
-	    if (ent == NULL) {
-	      snprintf(nbuf, sizeof(nbuf), "#%u", c);
-	      cp = nbuf;
-	    }
-	    else
-	      cp = ent->name;
-	    len = strlen(cp);
-	    if (out + 2 + len >= outend)
-		break;
-	    *out++ = '&';
-	    memcpy(out, cp, len);
-	    out += len;
-	    *out++ = ';';
-	}
-	processed = in;
-    }
-    *outlen = out - outstart;
-    *inlen = processed - instart;
-    return(0);
-}
-
-/**
- * htmlEncodeEntities:
- * @out:  a pointer to an array of bytes to store the result
- * @outlen:  the length of @out
- * @in:  a pointer to an array of UTF-8 chars
- * @inlen:  the length of @in
- * @quoteChar: the quote character to escape (' or ") or zero.
- *
- * Take a block of UTF-8 chars in and try to convert it to an ASCII
- * plus HTML entities block of chars out.
- *
- * Returns 0 if success, -2 if the transcoding fails, or -1 otherwise
- * The value of @inlen after return is the number of octets consumed
- *     as the return value is positive, else unpredictable.
- * The value of @outlen after return is the number of octets consumed.
- */
-int
-htmlEncodeEntities(unsigned char* out, int *outlen,
-		   const unsigned char* in, int *inlen, int quoteChar) {
-    const unsigned char* processed = in;
-    const unsigned char* outend;
-    const unsigned char* outstart = out;
-    const unsigned char* instart = in;
-    const unsigned char* inend;
-    unsigned int c, d;
-    int trailing;
-
-    if ((out == NULL) || (outlen == NULL) || (inlen == NULL) || (in == NULL))
-        return(-1);
-    outend = out + (*outlen);
-    inend = in + (*inlen);
-    while (in < inend) {
-	d = *in++;
-	if      (d < 0x80)  { c= d; trailing= 0; }
-	else if (d < 0xC0) {
-	    /* trailing byte in leading position */
-	    *outlen = out - outstart;
-	    *inlen = processed - instart;
-	    return(-2);
-        } else if (d < 0xE0)  { c= d & 0x1F; trailing= 1; }
-        else if (d < 0xF0)  { c= d & 0x0F; trailing= 2; }
-        else if (d < 0xF8)  { c= d & 0x07; trailing= 3; }
-	else {
-	    /* no chance for this in Ascii */
-	    *outlen = out - outstart;
-	    *inlen = processed - instart;
-	    return(-2);
-	}
-
-	if (inend - in < trailing)
-	    break;
-
-	while (trailing--) {
-	    if (((d= *in++) & 0xC0) != 0x80) {
-		*outlen = out - outstart;
-		*inlen = processed - instart;
-		return(-2);
-	    }
-	    c <<= 6;
-	    c |= d & 0x3F;
-	}
-
-	/* assertion: c is a single UTF-4 value */
-	if ((c < 0x80) && (c != (unsigned int) quoteChar) &&
-	    (c != '&') && (c != '<') && (c != '>')) {
-	    if (out >= outend)
-		break;
-	    *out++ = c;
-	} else {
-	    const htmlEntityDesc * ent;
-	    const char *cp;
-	    char nbuf[16];
-	    int len;
-
-	    /*
-	     * Try to lookup a predefined HTML entity for it
-	     */
-	    ent = htmlEntityValueLookup(c);
-	    if (ent == NULL) {
-		snprintf(nbuf, sizeof(nbuf), "#%u", c);
-		cp = nbuf;
-	    }
-	    else
-		cp = ent->name;
-	    len = strlen(cp);
-	    if (out + 2 + len > outend)
-		break;
-	    *out++ = '&';
-	    memcpy(out, cp, len);
-	    out += len;
-	    *out++ = ';';
-	}
-	processed = in;
-    }
-    *outlen = out - outstart;
-    *inlen = processed - instart;
-    return(0);
-}
-
-/************************************************************************
- *									*
- *		Commodity functions to handle streams			*
- *									*
- ************************************************************************/
-
-/**
- * htmlNewInputStream:
- * @ctxt:  an HTML parser context
- *
- * Create a new input stream structure
- * Returns the new input stream or NULL
- */
-static htmlParserInputPtr
-htmlNewInputStream(htmlParserCtxtPtr ctxt) {
-    htmlParserInputPtr input;
-
-    input = (xmlParserInputPtr) xmlMalloc(sizeof(htmlParserInput));
-    if (input == NULL) {
-        htmlErrMemory(ctxt, "couldn't allocate a new input stream\n");
-	return(NULL);
-    }
-    memset(input, 0, sizeof(htmlParserInput));
-    input->filename = NULL;
-    input->directory = NULL;
-    input->base = NULL;
-    input->cur = NULL;
-    input->buf = NULL;
-    input->line = 1;
-    input->col = 1;
-    input->buf = NULL;
-    input->free = NULL;
-    input->version = NULL;
-    input->consumed = 0;
-    input->length = 0;
-    return(input);
-}
-
-
-/************************************************************************
- *									*
- *		Commodity functions, cleanup needed ?			*
- *									*
- ************************************************************************/
-/*
- * all tags allowing pc data from the html 4.01 loose dtd
- * NOTE: it might be more apropriate to integrate this information
- * into the html40ElementTable array but I don't want to risk any
- * binary incomptibility
- */
-static const char *allowPCData[] = {
-    "a", "abbr", "acronym", "address", "applet", "b", "bdo", "big",
-    "blockquote", "body", "button", "caption", "center", "cite", "code",
-    "dd", "del", "dfn", "div", "dt", "em", "font", "form", "h1", "h2",
-    "h3", "h4", "h5", "h6", "i", "iframe", "ins", "kbd", "label", "legend",
-    "li", "noframes", "noscript", "object", "p", "pre", "q", "s", "samp",
-    "small", "span", "strike", "strong", "td", "th", "tt", "u", "var"
-};
-
-/**
- * areBlanks:
- * @ctxt:  an HTML parser context
- * @str:  a xmlChar *
- * @len:  the size of @str
- *
- * Is this a sequence of blank chars that one can ignore ?
- *
- * Returns 1 if ignorable 0 otherwise.
- */
-
-static int areBlanks(htmlParserCtxtPtr ctxt, const xmlChar *str, int len) {
-    unsigned int i;
-    int j;
-    xmlNodePtr lastChild;
-    xmlDtdPtr dtd;
-
-    for (j = 0;j < len;j++)
-        if (!(IS_BLANK_CH(str[j]))) return(0);
-
-    if (CUR == 0) return(1);
-    if (CUR != '<') return(0);
-    if (ctxt->name == NULL)
-	return(1);
-    if (xmlStrEqual(ctxt->name, BAD_CAST"html"))
-	return(1);
-    if (xmlStrEqual(ctxt->name, BAD_CAST"head"))
-	return(1);
-
-    /* Only strip CDATA children of the body tag for strict HTML DTDs */
-    if (xmlStrEqual(ctxt->name, BAD_CAST "body") && ctxt->myDoc != NULL) {
-        dtd = xmlGetIntSubset(ctxt->myDoc);
-        if (dtd != NULL && dtd->ExternalID != NULL) {
-            if (!xmlStrcasecmp(dtd->ExternalID, BAD_CAST "-//W3C//DTD HTML 4.01//EN") ||
-                    !xmlStrcasecmp(dtd->ExternalID, BAD_CAST "-//W3C//DTD HTML 4//EN"))
-                return(1);
-        }
-    }
-
-    if (ctxt->node == NULL) return(0);
-    lastChild = xmlGetLastChild(ctxt->node);
-    while ((lastChild) && (lastChild->type == XML_COMMENT_NODE))
-	lastChild = lastChild->prev;
-    if (lastChild == NULL) {
-        if ((ctxt->node->type != XML_ELEMENT_NODE) &&
-            (ctxt->node->content != NULL)) return(0);
-	/* keep ws in constructs like ...<b> </b>...
-	   for all tags "b" allowing PCDATA */
-	for ( i = 0; i < sizeof(allowPCData)/sizeof(allowPCData[0]); i++ ) {
-	    if ( xmlStrEqual(ctxt->name, BAD_CAST allowPCData[i]) ) {
-		return(0);
-	    }
-	}
-    } else if (xmlNodeIsText(lastChild)) {
-        return(0);
-    } else {
-	/* keep ws in constructs like <p><b>xy</b> <i>z</i><p>
-	   for all tags "p" allowing PCDATA */
-	for ( i = 0; i < sizeof(allowPCData)/sizeof(allowPCData[0]); i++ ) {
-	    if ( xmlStrEqual(lastChild->name, BAD_CAST allowPCData[i]) ) {
-		return(0);
-	    }
-	}
-    }
-    return(1);
-}
-
-/**
- * htmlNewDocNoDtD:
- * @URI:  URI for the dtd, or NULL
- * @ExternalID:  the external ID of the DTD, or NULL
- *
- * Creates a new HTML document without a DTD node if @URI and @ExternalID
- * are NULL
- *
- * Returns a new document, do not initialize the DTD if not provided
- */
-htmlDocPtr
-htmlNewDocNoDtD(const xmlChar *URI, const xmlChar *ExternalID) {
-    xmlDocPtr cur;
-
-    /*
-     * Allocate a new document and fill the fields.
-     */
-    cur = (xmlDocPtr) xmlMalloc(sizeof(xmlDoc));
-    if (cur == NULL) {
-	htmlErrMemory(NULL, "HTML document creation failed\n");
-	return(NULL);
-    }
-    memset(cur, 0, sizeof(xmlDoc));
-
-    cur->type = XML_HTML_DOCUMENT_NODE;
-    cur->version = NULL;
-    cur->intSubset = NULL;
-    cur->doc = cur;
-    cur->name = NULL;
-    cur->children = NULL;
-    cur->extSubset = NULL;
-    cur->oldNs = NULL;
-    cur->encoding = NULL;
-    cur->standalone = 1;
-    cur->compression = 0;
-    cur->ids = NULL;
-    cur->refs = NULL;
-    cur->_private = NULL;
-    cur->charset = XML_CHAR_ENCODING_UTF8;
-    cur->properties = XML_DOC_HTML | XML_DOC_USERBUILT;
-    if ((ExternalID != NULL) ||
-	(URI != NULL))
-	xmlCreateIntSubset(cur, BAD_CAST "html", ExternalID, URI);
-    return(cur);
-}
-
-/**
- * htmlNewDoc:
- * @URI:  URI for the dtd, or NULL
- * @ExternalID:  the external ID of the DTD, or NULL
- *
- * Creates a new HTML document
- *
- * Returns a new document
- */
-htmlDocPtr
-htmlNewDoc(const xmlChar *URI, const xmlChar *ExternalID) {
-    if ((URI == NULL) && (ExternalID == NULL))
-	return(htmlNewDocNoDtD(
-		    BAD_CAST "http://www.w3.org/TR/REC-html40/loose.dtd",
-		    BAD_CAST "-//W3C//DTD HTML 4.0 Transitional//EN"));
-
-    return(htmlNewDocNoDtD(URI, ExternalID));
-}
-
-
-/************************************************************************
- *									*
- *			The parser itself				*
- *	Relates to http://www.w3.org/TR/html40				*
- *									*
- ************************************************************************/
-
-/************************************************************************
- *									*
- *			The parser itself				*
- *									*
- ************************************************************************/
-
-static const xmlChar * htmlParseNameComplex(xmlParserCtxtPtr ctxt);
-
-/**
- * htmlParseHTMLName:
- * @ctxt:  an HTML parser context
- *
- * parse an HTML tag or attribute name, note that we convert it to lowercase
- * since HTML names are not case-sensitive.
- *
- * Returns the Tag Name parsed or NULL
- */
-
-static const xmlChar *
-htmlParseHTMLName(htmlParserCtxtPtr ctxt) {
-    int i = 0;
-    xmlChar loc[HTML_PARSER_BUFFER_SIZE];
-
-    if (!IS_ASCII_LETTER(CUR) && (CUR != '_') &&
-        (CUR != ':') && (CUR != '.')) return(NULL);
-
-    while ((i < HTML_PARSER_BUFFER_SIZE) &&
-           ((IS_ASCII_LETTER(CUR)) || (IS_ASCII_DIGIT(CUR)) ||
-	   (CUR == ':') || (CUR == '-') || (CUR == '_') ||
-           (CUR == '.'))) {
-	if ((CUR >= 'A') && (CUR <= 'Z')) loc[i] = CUR + 0x20;
-        else loc[i] = CUR;
-	i++;
-
-	NEXT;
-    }
-
-    return(xmlDictLookup(ctxt->dict, loc, i));
-}
-
-
-/**
- * htmlParseHTMLName_nonInvasive:
- * @ctxt:  an HTML parser context
- *
- * parse an HTML tag or attribute name, note that we convert it to lowercase
- * since HTML names are not case-sensitive, this doesn't consume the data
- * from the stream, it's a look-ahead
- *
- * Returns the Tag Name parsed or NULL
- */
-
-static const xmlChar *
-htmlParseHTMLName_nonInvasive(htmlParserCtxtPtr ctxt) {
-    int i = 0;
-    xmlChar loc[HTML_PARSER_BUFFER_SIZE];
-
-    if (!IS_ASCII_LETTER(NXT(1)) && (NXT(1) != '_') &&
-        (NXT(1) != ':')) return(NULL);
-
-    while ((i < HTML_PARSER_BUFFER_SIZE) &&
-           ((IS_ASCII_LETTER(NXT(1+i))) || (IS_ASCII_DIGIT(NXT(1+i))) ||
-	   (NXT(1+i) == ':') || (NXT(1+i) == '-') || (NXT(1+i) == '_'))) {
-	if ((NXT(1+i) >= 'A') && (NXT(1+i) <= 'Z')) loc[i] = NXT(1+i) + 0x20;
-        else loc[i] = NXT(1+i);
-	i++;
-    }
-
-    return(xmlDictLookup(ctxt->dict, loc, i));
-}
-
-
-/**
- * htmlParseName:
- * @ctxt:  an HTML parser context
- *
- * parse an HTML name, this routine is case sensitive.
- *
- * Returns the Name parsed or NULL
- */
-
-static const xmlChar *
-htmlParseName(htmlParserCtxtPtr ctxt) {
-    const xmlChar *in;
-    const xmlChar *ret;
-    int count = 0;
-
-    GROW;
-
-    /*
-     * Accelerator for simple ASCII names
-     */
-    in = ctxt->input->cur;
-    if (((*in >= 0x61) && (*in <= 0x7A)) ||
-	((*in >= 0x41) && (*in <= 0x5A)) ||
-	(*in == '_') || (*in == ':')) {
-	in++;
-	while (((*in >= 0x61) && (*in <= 0x7A)) ||
-	       ((*in >= 0x41) && (*in <= 0x5A)) ||
-	       ((*in >= 0x30) && (*in <= 0x39)) ||
-	       (*in == '_') || (*in == '-') ||
-	       (*in == ':') || (*in == '.'))
-	    in++;
-
-	if (in == ctxt->input->end)
-	    return(NULL);
-
-	if ((*in > 0) && (*in < 0x80)) {
-	    count = in - ctxt->input->cur;
-	    ret = xmlDictLookup(ctxt->dict, ctxt->input->cur, count);
-	    ctxt->input->cur = in;
-	    ctxt->nbChars += count;
-	    ctxt->input->col += count;
-	    return(ret);
-	}
-    }
-    return(htmlParseNameComplex(ctxt));
-}
-
-static const xmlChar *
-htmlParseNameComplex(xmlParserCtxtPtr ctxt) {
-    int len = 0, l;
-    int c;
-    int count = 0;
-    const xmlChar *base = ctxt->input->base;
-
-    /*
-     * Handler for more complex cases
-     */
-    GROW;
-    c = CUR_CHAR(l);
-    if ((c == ' ') || (c == '>') || (c == '/') || /* accelerators */
-	(!IS_LETTER(c) && (c != '_') &&
-         (c != ':'))) {
-	return(NULL);
-    }
-
-    while ((c != ' ') && (c != '>') && (c != '/') && /* test bigname.xml */
-	   ((IS_LETTER(c)) || (IS_DIGIT(c)) ||
-            (c == '.') || (c == '-') ||
-	    (c == '_') || (c == ':') ||
-	    (IS_COMBINING(c)) ||
-	    (IS_EXTENDER(c)))) {
-	if (count++ > 100) {
-	    count = 0;
-	    GROW;
-	}
-	len += l;
-	NEXTL(l);
-	c = CUR_CHAR(l);
-	if (ctxt->input->base != base) {
-	    /*
-	     * We changed encoding from an unknown encoding
-	     * Input buffer changed location, so we better start again
-	     */
-	    return(htmlParseNameComplex(ctxt));
-	}
-    }
-
-    if (ctxt->input->base > ctxt->input->cur - len)
-	return(NULL);
-
-    return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len));
-}
-
-
-/**
- * htmlParseHTMLAttribute:
- * @ctxt:  an HTML parser context
- * @stop:  a char stop value
- *
- * parse an HTML attribute value till the stop (quote), if
- * stop is 0 then it stops at the first space
- *
- * Returns the attribute parsed or NULL
- */
-
-static xmlChar *
-htmlParseHTMLAttribute(htmlParserCtxtPtr ctxt, const xmlChar stop) {
-    xmlChar *buffer = NULL;
-    int buffer_size = 0;
-    xmlChar *out = NULL;
-    const xmlChar *name = NULL;
-    const xmlChar *cur = NULL;
-    const htmlEntityDesc * ent;
-
-    /*
-     * allocate a translation buffer.
-     */
-    buffer_size = HTML_PARSER_BUFFER_SIZE;
-    buffer = (xmlChar *) xmlMallocAtomic(buffer_size * sizeof(xmlChar));
-    if (buffer == NULL) {
-	htmlErrMemory(ctxt, "buffer allocation failed\n");
-	return(NULL);
-    }
-    out = buffer;
-
-    /*
-     * Ok loop until we reach one of the ending chars
-     */
-    while ((CUR != 0) && (CUR != stop)) {
-	if ((stop == 0) && (CUR == '>')) break;
-	if ((stop == 0) && (IS_BLANK_CH(CUR))) break;
-        if (CUR == '&') {
-	    if (NXT(1) == '#') {
-		unsigned int c;
-		int bits;
-
-		c = htmlParseCharRef(ctxt);
-		if      (c <    0x80)
-		        { *out++  = c;                bits= -6; }
-		else if (c <   0x800)
-		        { *out++  =((c >>  6) & 0x1F) | 0xC0;  bits=  0; }
-		else if (c < 0x10000)
-		        { *out++  =((c >> 12) & 0x0F) | 0xE0;  bits=  6; }
-		else
-		        { *out++  =((c >> 18) & 0x07) | 0xF0;  bits= 12; }
-
-		for ( ; bits >= 0; bits-= 6) {
-		    *out++  = ((c >> bits) & 0x3F) | 0x80;
-		}
-
-		if (out - buffer > buffer_size - 100) {
-			int indx = out - buffer;
-
-			growBuffer(buffer);
-			out = &buffer[indx];
-		}
-	    } else {
-		ent = htmlParseEntityRef(ctxt, &name);
-		if (name == NULL) {
-		    *out++ = '&';
-		    if (out - buffer > buffer_size - 100) {
-			int indx = out - buffer;
-
-			growBuffer(buffer);
-			out = &buffer[indx];
-		    }
-		} else if (ent == NULL) {
-		    *out++ = '&';
-		    cur = name;
-		    while (*cur != 0) {
-			if (out - buffer > buffer_size - 100) {
-			    int indx = out - buffer;
-
-			    growBuffer(buffer);
-			    out = &buffer[indx];
-			}
-			*out++ = *cur++;
-		    }
-		} else {
-		    unsigned int c;
-		    int bits;
-
-		    if (out - buffer > buffer_size - 100) {
-			int indx = out - buffer;
-
-			growBuffer(buffer);
-			out = &buffer[indx];
-		    }
-		    c = ent->value;
-		    if      (c <    0x80)
-			{ *out++  = c;                bits= -6; }
-		    else if (c <   0x800)
-			{ *out++  =((c >>  6) & 0x1F) | 0xC0;  bits=  0; }
-		    else if (c < 0x10000)
-			{ *out++  =((c >> 12) & 0x0F) | 0xE0;  bits=  6; }
-		    else
-			{ *out++  =((c >> 18) & 0x07) | 0xF0;  bits= 12; }
-
-		    for ( ; bits >= 0; bits-= 6) {
-			*out++  = ((c >> bits) & 0x3F) | 0x80;
-		    }
-		}
-	    }
-	} else {
-	    unsigned int c;
-	    int bits, l;
-
-	    if (out - buffer > buffer_size - 100) {
-		int indx = out - buffer;
-
-		growBuffer(buffer);
-		out = &buffer[indx];
-	    }
-	    c = CUR_CHAR(l);
-	    if      (c <    0x80)
-		    { *out++  = c;                bits= -6; }
-	    else if (c <   0x800)
-		    { *out++  =((c >>  6) & 0x1F) | 0xC0;  bits=  0; }
-	    else if (c < 0x10000)
-		    { *out++  =((c >> 12) & 0x0F) | 0xE0;  bits=  6; }
-	    else
-		    { *out++  =((c >> 18) & 0x07) | 0xF0;  bits= 12; }
-
-	    for ( ; bits >= 0; bits-= 6) {
-		*out++  = ((c >> bits) & 0x3F) | 0x80;
-	    }
-	    NEXT;
-	}
-    }
-    *out = 0;
-    return(buffer);
-}
-
-/**
- * htmlParseEntityRef:
- * @ctxt:  an HTML parser context
- * @str:  location to store the entity name
- *
- * parse an HTML ENTITY references
- *
- * [68] EntityRef ::= '&' Name ';'
- *
- * Returns the associated htmlEntityDescPtr if found, or NULL otherwise,
- *         if non-NULL *str will have to be freed by the caller.
- */
-const htmlEntityDesc *
-htmlParseEntityRef(htmlParserCtxtPtr ctxt, const xmlChar **str) {
-    const xmlChar *name;
-    const htmlEntityDesc * ent = NULL;
-
-    if (str != NULL) *str = NULL;
-    if ((ctxt == NULL) || (ctxt->input == NULL)) return(NULL);
-
-    if (CUR == '&') {
-        NEXT;
-        name = htmlParseName(ctxt);
-	if (name == NULL) {
-	    htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
-	                 "htmlParseEntityRef: no name\n", NULL, NULL);
-	} else {
-	    GROW;
-	    if (CUR == ';') {
-	        if (str != NULL)
-		    *str = name;
-
-		/*
-		 * Lookup the entity in the table.
-		 */
-		ent = htmlEntityLookup(name);
-		if (ent != NULL) /* OK that's ugly !!! */
-		    NEXT;
-	    } else {
-		htmlParseErr(ctxt, XML_ERR_ENTITYREF_SEMICOL_MISSING,
-		             "htmlParseEntityRef: expecting ';'\n",
-			     NULL, NULL);
-	        if (str != NULL)
-		    *str = name;
-	    }
-	}
-    }
-    return(ent);
-}
-
-/**
- * htmlParseAttValue:
- * @ctxt:  an HTML parser context
- *
- * parse a value for an attribute
- * Note: the parser won't do substitution of entities here, this
- * will be handled later in xmlStringGetNodeList, unless it was
- * asked for ctxt->replaceEntities != 0
- *
- * Returns the AttValue parsed or NULL.
- */
-
-static xmlChar *
-htmlParseAttValue(htmlParserCtxtPtr ctxt) {
-    xmlChar *ret = NULL;
-
-    if (CUR == '"') {
-        NEXT;
-	ret = htmlParseHTMLAttribute(ctxt, '"');
-        if (CUR != '"') {
-	    htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED,
-	                 "AttValue: \" expected\n", NULL, NULL);
-	} else
-	    NEXT;
-    } else if (CUR == '\'') {
-        NEXT;
-	ret = htmlParseHTMLAttribute(ctxt, '\'');
-        if (CUR != '\'') {
-	    htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED,
-	                 "AttValue: ' expected\n", NULL, NULL);
-	} else
-	    NEXT;
-    } else {
-        /*
-	 * That's an HTMLism, the attribute value may not be quoted
-	 */
-	ret = htmlParseHTMLAttribute(ctxt, 0);
-	if (ret == NULL) {
-	    htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_WITHOUT_VALUE,
-	                 "AttValue: no value found\n", NULL, NULL);
-	}
-    }
-    return(ret);
-}
-
-/**
- * htmlParseSystemLiteral:
- * @ctxt:  an HTML parser context
- *
- * parse an HTML Literal
- *
- * [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'")
- *
- * Returns the SystemLiteral parsed or NULL
- */
-
-static xmlChar *
-htmlParseSystemLiteral(htmlParserCtxtPtr ctxt) {
-    size_t len = 0, startPosition = 0;
-    xmlChar *ret = NULL;
-
-    if (CUR == '"') {
-        NEXT;
-
-        if (CUR_PTR < BASE_PTR)
-            return(ret);
-        startPosition = CUR_PTR - BASE_PTR;
-
-	while ((IS_CHAR_CH(CUR)) && (CUR != '"')) {
-	    NEXT;
-	    len++;
-	}
-	if (!IS_CHAR_CH(CUR)) {
-	    htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
-			 "Unfinished SystemLiteral\n", NULL, NULL);
-	} else {
-	    ret = xmlStrndup((BASE_PTR+startPosition), len);
-	    NEXT;
-        }
-    } else if (CUR == '\'') {
-        NEXT;
-
-        if (CUR_PTR < BASE_PTR)
-            return(ret);
-        startPosition = CUR_PTR - BASE_PTR;
-
-	while ((IS_CHAR_CH(CUR)) && (CUR != '\'')) {
-	    NEXT;
-	    len++;
-	}
-	if (!IS_CHAR_CH(CUR)) {
-	    htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
-			 "Unfinished SystemLiteral\n", NULL, NULL);
-	} else {
-	    ret = xmlStrndup((BASE_PTR+startPosition), len);
-	    NEXT;
-        }
-    } else {
-	htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_STARTED,
-	             " or ' expected\n", NULL, NULL);
-    }
-
-    return(ret);
-}
-
-/**
- * htmlParsePubidLiteral:
- * @ctxt:  an HTML parser context
- *
- * parse an HTML public literal
- *
- * [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"
- *
- * Returns the PubidLiteral parsed or NULL.
- */
-
-static xmlChar *
-htmlParsePubidLiteral(htmlParserCtxtPtr ctxt) {
-    size_t len = 0, startPosition = 0;
-    xmlChar *ret = NULL;
-    /*
-     * Name ::= (Letter | '_') (NameChar)*
-     */
-    if (CUR == '"') {
-        NEXT;
-
-        if (CUR_PTR < BASE_PTR)
-            return(ret);
-        startPosition = CUR_PTR - BASE_PTR;
-
-        while (IS_PUBIDCHAR_CH(CUR)) {
-            len++;
-            NEXT;
-        }
-
-	if (CUR != '"') {
-	    htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
-	                 "Unfinished PubidLiteral\n", NULL, NULL);
-	} else {
-	    ret = xmlStrndup((BASE_PTR + startPosition), len);
-	    NEXT;
-	}
-    } else if (CUR == '\'') {
-        NEXT;
-
-        if (CUR_PTR < BASE_PTR)
-            return(ret);
-        startPosition = CUR_PTR - BASE_PTR;
-
-        while ((IS_PUBIDCHAR_CH(CUR)) && (CUR != '\'')){
-            len++;
-            NEXT;
-        }
-
-	if (CUR != '\'') {
-	    htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
-	                 "Unfinished PubidLiteral\n", NULL, NULL);
-	} else {
-	    ret = xmlStrndup((BASE_PTR + startPosition), len);
-	    NEXT;
-	}
-    } else {
-	htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_STARTED,
-	             "PubidLiteral \" or ' expected\n", NULL, NULL);
-    }
-
-    return(ret);
-}
-
-/**
- * htmlParseScript:
- * @ctxt:  an HTML parser context
- *
- * parse the content of an HTML SCRIPT or STYLE element
- * http://www.w3.org/TR/html4/sgml/dtd.html#Script
- * http://www.w3.org/TR/html4/sgml/dtd.html#StyleSheet
- * http://www.w3.org/TR/html4/types.html#type-script
- * http://www.w3.org/TR/html4/types.html#h-6.15
- * http://www.w3.org/TR/html4/appendix/notes.html#h-B.3.2.1
- *
- * Script data ( %Script; in the DTD) can be the content of the SCRIPT
- * element and the value of intrinsic event attributes. User agents must
- * not evaluate script data as HTML markup but instead must pass it on as
- * data to a script engine.
- * NOTES:
- * - The content is passed like CDATA
- * - the attributes for style and scripting "onXXX" are also described
- *   as CDATA but SGML allows entities references in attributes so their
- *   processing is identical as other attributes
- */
-static void
-htmlParseScript(htmlParserCtxtPtr ctxt) {
-    xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 5];
-    int nbchar = 0;
-    int cur,l;
-
-    SHRINK;
-    cur = CUR_CHAR(l);
-    while (IS_CHAR_CH(cur)) {
-	if ((cur == '<') && (NXT(1) == '/')) {
-            /*
-             * One should break here, the specification is clear:
-             * Authors should therefore escape "</" within the content.
-             * Escape mechanisms are specific to each scripting or
-             * style sheet language.
-             *
-             * In recovery mode, only break if end tag match the
-             * current tag, effectively ignoring all tags inside the
-             * script/style block and treating the entire block as
-             * CDATA.
-             */
-            if (ctxt->recovery) {
-                if (xmlStrncasecmp(ctxt->name, ctxt->input->cur+2,
-				   xmlStrlen(ctxt->name)) == 0)
-                {
-                    break; /* while */
-                } else {
-		    htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
-				 "Element %s embeds close tag\n",
-		                 ctxt->name, NULL);
-		}
-            } else {
-                if (((NXT(2) >= 'A') && (NXT(2) <= 'Z')) ||
-                    ((NXT(2) >= 'a') && (NXT(2) <= 'z')))
-                {
-                    break; /* while */
-                }
-            }
-	}
-	COPY_BUF(l,buf,nbchar,cur);
-	if (nbchar >= HTML_PARSER_BIG_BUFFER_SIZE) {
-	    if (ctxt->sax->cdataBlock!= NULL) {
-		/*
-		 * Insert as CDATA, which is the same as HTML_PRESERVE_NODE
-		 */
-		ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar);
-	    } else if (ctxt->sax->characters != NULL) {
-		ctxt->sax->characters(ctxt->userData, buf, nbchar);
-	    }
-	    nbchar = 0;
-	}
-	GROW;
-	NEXTL(l);
-	cur = CUR_CHAR(l);
-    }
-
-    if ((!(IS_CHAR_CH(cur))) && (!((cur == 0) && (ctxt->progressive)))) {
-        htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
-                    "Invalid char in CDATA 0x%X\n", cur);
-        if (ctxt->input->cur < ctxt->input->end) {
-            NEXT;
-        }
-    }
-
-    if ((nbchar != 0) && (ctxt->sax != NULL) && (!ctxt->disableSAX)) {
-	if (ctxt->sax->cdataBlock!= NULL) {
-	    /*
-	     * Insert as CDATA, which is the same as HTML_PRESERVE_NODE
-	     */
-	    ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar);
-	} else if (ctxt->sax->characters != NULL) {
-	    ctxt->sax->characters(ctxt->userData, buf, nbchar);
-	}
-    }
-}
-
-
-/**
- * htmlParseCharDataInternal:
- * @ctxt:  an HTML parser context
- * @readahead: optional read ahead character in ascii range
- *
- * parse a CharData section.
- * if we are within a CDATA section ']]>' marks an end of section.
- *
- * [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
- */
-
-static void
-htmlParseCharDataInternal(htmlParserCtxtPtr ctxt, int readahead) {
-    xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 6];
-    int nbchar = 0;
-    int cur, l;
-    int chunk = 0;
-
-    if (readahead)
-        buf[nbchar++] = readahead;
-
-    SHRINK;
-    cur = CUR_CHAR(l);
-    while (((cur != '<') || (ctxt->token == '<')) &&
-           ((cur != '&') || (ctxt->token == '&')) &&
-	   (cur != 0)) {
-	if (!(IS_CHAR(cur))) {
-	    htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
-	                "Invalid char in CDATA 0x%X\n", cur);
-	} else {
-	    COPY_BUF(l,buf,nbchar,cur);
-	}
-	if (nbchar >= HTML_PARSER_BIG_BUFFER_SIZE) {
-	    /*
-	     * Ok the segment is to be consumed as chars.
-	     */
-	    if ((ctxt->sax != NULL) && (!ctxt->disableSAX)) {
-		if (areBlanks(ctxt, buf, nbchar)) {
-		    if (ctxt->keepBlanks) {
-			if (ctxt->sax->characters != NULL)
-			    ctxt->sax->characters(ctxt->userData, buf, nbchar);
-		    } else {
-			if (ctxt->sax->ignorableWhitespace != NULL)
-			    ctxt->sax->ignorableWhitespace(ctxt->userData,
-			                                   buf, nbchar);
-		    }
-		} else {
-		    htmlCheckParagraph(ctxt);
-		    if (ctxt->sax->characters != NULL)
-			ctxt->sax->characters(ctxt->userData, buf, nbchar);
-		}
-	    }
-	    nbchar = 0;
-	}
-	NEXTL(l);
-        chunk++;
-        if (chunk > HTML_PARSER_BUFFER_SIZE) {
-            chunk = 0;
-            SHRINK;
-            GROW;
-        }
-	cur = CUR_CHAR(l);
-	if (cur == 0) {
-	    SHRINK;
-	    GROW;
-	    cur = CUR_CHAR(l);
-	}
-    }
-    if (nbchar != 0) {
-        buf[nbchar] = 0;
-
-	/*
-	 * Ok the segment is to be consumed as chars.
-	 */
-	if ((ctxt->sax != NULL) && (!ctxt->disableSAX)) {
-	    if (areBlanks(ctxt, buf, nbchar)) {
-		if (ctxt->keepBlanks) {
-		    if (ctxt->sax->characters != NULL)
-			ctxt->sax->characters(ctxt->userData, buf, nbchar);
-		} else {
-		    if (ctxt->sax->ignorableWhitespace != NULL)
-			ctxt->sax->ignorableWhitespace(ctxt->userData,
-			                               buf, nbchar);
-		}
-	    } else {
-		htmlCheckParagraph(ctxt);
-		if (ctxt->sax->characters != NULL)
-		    ctxt->sax->characters(ctxt->userData, buf, nbchar);
-	    }
-	}
-    } else {
-	/*
-	 * Loop detection
-	 */
-	if (cur == 0)
-	    ctxt->instate = XML_PARSER_EOF;
-    }
-}
-
-/**
- * htmlParseCharData:
- * @ctxt:  an HTML parser context
- *
- * parse a CharData section.
- * if we are within a CDATA section ']]>' marks an end of section.
- *
- * [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
- */
-
-static void
-htmlParseCharData(htmlParserCtxtPtr ctxt) {
-    htmlParseCharDataInternal(ctxt, 0);
-}
-
-/**
- * htmlParseExternalID:
- * @ctxt:  an HTML parser context
- * @publicID:  a xmlChar** receiving PubidLiteral
- *
- * Parse an External ID or a Public ID
- *
- * [75] ExternalID ::= 'SYSTEM' S SystemLiteral
- *                   | 'PUBLIC' S PubidLiteral S SystemLiteral
- *
- * [83] PublicID ::= 'PUBLIC' S PubidLiteral
- *
- * Returns the function returns SystemLiteral and in the second
- *                case publicID receives PubidLiteral, is strict is off
- *                it is possible to return NULL and have publicID set.
- */
-
-static xmlChar *
-htmlParseExternalID(htmlParserCtxtPtr ctxt, xmlChar **publicID) {
-    xmlChar *URI = NULL;
-
-    if ((UPPER == 'S') && (UPP(1) == 'Y') &&
-         (UPP(2) == 'S') && (UPP(3) == 'T') &&
-	 (UPP(4) == 'E') && (UPP(5) == 'M')) {
-        SKIP(6);
-	if (!IS_BLANK_CH(CUR)) {
-	    htmlParseErr(ctxt, XML_ERR_SPACE_REQUIRED,
-	                 "Space required after 'SYSTEM'\n", NULL, NULL);
-	}
-        SKIP_BLANKS;
-	URI = htmlParseSystemLiteral(ctxt);
-	if (URI == NULL) {
-	    htmlParseErr(ctxt, XML_ERR_URI_REQUIRED,
-	                 "htmlParseExternalID: SYSTEM, no URI\n", NULL, NULL);
-        }
-    } else if ((UPPER == 'P') && (UPP(1) == 'U') &&
-	       (UPP(2) == 'B') && (UPP(3) == 'L') &&
-	       (UPP(4) == 'I') && (UPP(5) == 'C')) {
-        SKIP(6);
-	if (!IS_BLANK_CH(CUR)) {
-	    htmlParseErr(ctxt, XML_ERR_SPACE_REQUIRED,
-	                 "Space required after 'PUBLIC'\n", NULL, NULL);
-	}
-        SKIP_BLANKS;
-	*publicID = htmlParsePubidLiteral(ctxt);
-	if (*publicID == NULL) {
-	    htmlParseErr(ctxt, XML_ERR_PUBID_REQUIRED,
-	                 "htmlParseExternalID: PUBLIC, no Public Identifier\n",
-			 NULL, NULL);
-	}
-        SKIP_BLANKS;
-        if ((CUR == '"') || (CUR == '\'')) {
-	    URI = htmlParseSystemLiteral(ctxt);
-	}
-    }
-    return(URI);
-}
-
-/**
- * xmlParsePI:
- * @ctxt:  an XML parser context
- *
- * parse an XML Processing Instruction.
- *
- * [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
- */
-static void
-htmlParsePI(htmlParserCtxtPtr ctxt) {
-    xmlChar *buf = NULL;
-    int len = 0;
-    int size = HTML_PARSER_BUFFER_SIZE;
-    int cur, l;
-    const xmlChar *target;
-    xmlParserInputState state;
-    int count = 0;
-
-    if ((RAW == '<') && (NXT(1) == '?')) {
-	state = ctxt->instate;
-        ctxt->instate = XML_PARSER_PI;
-	/*
-	 * this is a Processing Instruction.
-	 */
-	SKIP(2);
-	SHRINK;
-
-	/*
-	 * Parse the target name and check for special support like
-	 * namespace.
-	 */
-        target = htmlParseName(ctxt);
-	if (target != NULL) {
-	    if (RAW == '>') {
-		SKIP(1);
-
-		/*
-		 * SAX: PI detected.
-		 */
-		if ((ctxt->sax) && (!ctxt->disableSAX) &&
-		    (ctxt->sax->processingInstruction != NULL))
-		    ctxt->sax->processingInstruction(ctxt->userData,
-		                                     target, NULL);
-		ctxt->instate = state;
-		return;
-	    }
-	    buf = (xmlChar *) xmlMallocAtomic(size * sizeof(xmlChar));
-	    if (buf == NULL) {
-		htmlErrMemory(ctxt, NULL);
-		ctxt->instate = state;
-		return;
-	    }
-	    cur = CUR;
-	    if (!IS_BLANK(cur)) {
-		htmlParseErr(ctxt, XML_ERR_SPACE_REQUIRED,
-			  "ParsePI: PI %s space expected\n", target, NULL);
-	    }
-            SKIP_BLANKS;
-	    cur = CUR_CHAR(l);
-	    while (IS_CHAR(cur) && (cur != '>')) {
-		if (len + 5 >= size) {
-		    xmlChar *tmp;
-
-		    size *= 2;
-		    tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar));
-		    if (tmp == NULL) {
-			htmlErrMemory(ctxt, NULL);
-			xmlFree(buf);
-			ctxt->instate = state;
-			return;
-		    }
-		    buf = tmp;
-		}
-		count++;
-		if (count > 50) {
-		    GROW;
-		    count = 0;
-		}
-		COPY_BUF(l,buf,len,cur);
-		NEXTL(l);
-		cur = CUR_CHAR(l);
-		if (cur == 0) {
-		    SHRINK;
-		    GROW;
-		    cur = CUR_CHAR(l);
-		}
-	    }
-	    buf[len] = 0;
-	    if (cur != '>') {
-		htmlParseErr(ctxt, XML_ERR_PI_NOT_FINISHED,
-		      "ParsePI: PI %s never end ...\n", target, NULL);
-	    } else {
-		SKIP(1);
-
-		/*
-		 * SAX: PI detected.
-		 */
-		if ((ctxt->sax) && (!ctxt->disableSAX) &&
-		    (ctxt->sax->processingInstruction != NULL))
-		    ctxt->sax->processingInstruction(ctxt->userData,
-		                                     target, buf);
-	    }
-	    xmlFree(buf);
-	} else {
-	    htmlParseErr(ctxt, XML_ERR_PI_NOT_STARTED,
-                         "PI is not started correctly", NULL, NULL);
-	}
-	ctxt->instate = state;
-    }
-}
-
-/**
- * htmlParseComment:
- * @ctxt:  an HTML parser context
- *
- * Parse an XML (SGML) comment <!-- .... -->
- *
- * [15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
- */
-static void
-htmlParseComment(htmlParserCtxtPtr ctxt) {
-    xmlChar *buf = NULL;
-    int len;
-    int size = HTML_PARSER_BUFFER_SIZE;
-    int q, ql;
-    int r, rl;
-    int cur, l;
-    xmlParserInputState state;
-
-    /*
-     * Check that there is a comment right here.
-     */
-    if ((RAW != '<') || (NXT(1) != '!') ||
-        (NXT(2) != '-') || (NXT(3) != '-')) return;
-
-    state = ctxt->instate;
-    ctxt->instate = XML_PARSER_COMMENT;
-    SHRINK;
-    SKIP(4);
-    buf = (xmlChar *) xmlMallocAtomic(size * sizeof(xmlChar));
-    if (buf == NULL) {
-        htmlErrMemory(ctxt, "buffer allocation failed\n");
-	ctxt->instate = state;
-	return;
-    }
-    len = 0;
-    buf[len] = 0;
-    q = CUR_CHAR(ql);
-    if (!IS_CHAR(q))
-        goto unfinished;
-    NEXTL(ql);
-    r = CUR_CHAR(rl);
-    if (!IS_CHAR(r))
-        goto unfinished;
-    NEXTL(rl);
-    cur = CUR_CHAR(l);
-    while (IS_CHAR(cur) &&
-           ((cur != '>') ||
-	    (r != '-') || (q != '-'))) {
-	if (len + 5 >= size) {
-	    xmlChar *tmp;
-
-	    size *= 2;
-	    tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar));
-	    if (tmp == NULL) {
-	        xmlFree(buf);
-	        htmlErrMemory(ctxt, "growing buffer failed\n");
-		ctxt->instate = state;
-		return;
-	    }
-	    buf = tmp;
-	}
-	COPY_BUF(ql,buf,len,q);
-	q = r;
-	ql = rl;
-	r = cur;
-	rl = l;
-	NEXTL(l);
-	cur = CUR_CHAR(l);
-	if (cur == 0) {
-	    SHRINK;
-	    GROW;
-	    cur = CUR_CHAR(l);
-	}
-    }
-    buf[len] = 0;
-    if (IS_CHAR(cur)) {
-        NEXT;
-	if ((ctxt->sax != NULL) && (ctxt->sax->comment != NULL) &&
-	    (!ctxt->disableSAX))
-	    ctxt->sax->comment(ctxt->userData, buf);
-	xmlFree(buf);
-	ctxt->instate = state;
-	return;
-    }
-
-unfinished:
-    htmlParseErr(ctxt, XML_ERR_COMMENT_NOT_FINISHED,
-		 "Comment not terminated \n<!--%.50s\n", buf, NULL);
-    xmlFree(buf);
-}
-
-/**
- * htmlParseCharRef:
- * @ctxt:  an HTML parser context
- *
- * parse Reference declarations
- *
- * [66] CharRef ::= '&#' [0-9]+ ';' |
- *                  '&#x' [0-9a-fA-F]+ ';'
- *
- * Returns the value parsed (as an int)
- */
-int
-htmlParseCharRef(htmlParserCtxtPtr ctxt) {
-    int val = 0;
-
-    if ((ctxt == NULL) || (ctxt->input == NULL)) {
-	htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-		     "htmlParseCharRef: context error\n",
-		     NULL, NULL);
-        return(0);
-    }
-    if ((CUR == '&') && (NXT(1) == '#') &&
-        ((NXT(2) == 'x') || NXT(2) == 'X')) {
-	SKIP(3);
-	while (CUR != ';') {
-	    if ((CUR >= '0') && (CUR <= '9'))
-	        val = val * 16 + (CUR - '0');
-	    else if ((CUR >= 'a') && (CUR <= 'f'))
-	        val = val * 16 + (CUR - 'a') + 10;
-	    else if ((CUR >= 'A') && (CUR <= 'F'))
-	        val = val * 16 + (CUR - 'A') + 10;
-	    else {
-	        htmlParseErr(ctxt, XML_ERR_INVALID_HEX_CHARREF,
-		             "htmlParseCharRef: missing semicolon\n",
-			     NULL, NULL);
-		break;
-	    }
-	    NEXT;
-	}
-	if (CUR == ';')
-	    NEXT;
-    } else if  ((CUR == '&') && (NXT(1) == '#')) {
-	SKIP(2);
-	while (CUR != ';') {
-	    if ((CUR >= '0') && (CUR <= '9'))
-	        val = val * 10 + (CUR - '0');
-	    else {
-	        htmlParseErr(ctxt, XML_ERR_INVALID_DEC_CHARREF,
-		             "htmlParseCharRef: missing semicolon\n",
-			     NULL, NULL);
-		break;
-	    }
-	    NEXT;
-	}
-	if (CUR == ';')
-	    NEXT;
-    } else {
-	htmlParseErr(ctxt, XML_ERR_INVALID_CHARREF,
-	             "htmlParseCharRef: invalid value\n", NULL, NULL);
-    }
-    /*
-     * Check the value IS_CHAR ...
-     */
-    if (IS_CHAR(val)) {
-        return(val);
-    } else {
-	htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
-			"htmlParseCharRef: invalid xmlChar value %d\n",
-			val);
-    }
-    return(0);
-}
-
-
-/**
- * htmlParseDocTypeDecl:
- * @ctxt:  an HTML parser context
- *
- * parse a DOCTYPE declaration
- *
- * [28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S?
- *                      ('[' (markupdecl | PEReference | S)* ']' S?)? '>'
- */
-
-static void
-htmlParseDocTypeDecl(htmlParserCtxtPtr ctxt) {
-    const xmlChar *name;
-    xmlChar *ExternalID = NULL;
-    xmlChar *URI = NULL;
-
-    /*
-     * We know that '<!DOCTYPE' has been detected.
-     */
-    SKIP(9);
-
-    SKIP_BLANKS;
-
-    /*
-     * Parse the DOCTYPE name.
-     */
-    name = htmlParseName(ctxt);
-    if (name == NULL) {
-	htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
-	             "htmlParseDocTypeDecl : no DOCTYPE name !\n",
-		     NULL, NULL);
-    }
-    /*
-     * Check that upper(name) == "HTML" !!!!!!!!!!!!!
-     */
-
-    SKIP_BLANKS;
-
-    /*
-     * Check for SystemID and ExternalID
-     */
-    URI = htmlParseExternalID(ctxt, &ExternalID);
-    SKIP_BLANKS;
-
-    /*
-     * We should be at the end of the DOCTYPE declaration.
-     */
-    if (CUR != '>') {
-	htmlParseErr(ctxt, XML_ERR_DOCTYPE_NOT_FINISHED,
-	             "DOCTYPE improperly terminated\n", NULL, NULL);
-        /* We shouldn't try to resynchronize ... */
-    }
-    NEXT;
-
-    /*
-     * Create or update the document accordingly to the DOCTYPE
-     */
-    if ((ctxt->sax != NULL) && (ctxt->sax->internalSubset != NULL) &&
-	(!ctxt->disableSAX))
-	ctxt->sax->internalSubset(ctxt->userData, name, ExternalID, URI);
-
-    /*
-     * Cleanup, since we don't use all those identifiers
-     */
-    if (URI != NULL) xmlFree(URI);
-    if (ExternalID != NULL) xmlFree(ExternalID);
-}
-
-/**
- * htmlParseAttribute:
- * @ctxt:  an HTML parser context
- * @value:  a xmlChar ** used to store the value of the attribute
- *
- * parse an attribute
- *
- * [41] Attribute ::= Name Eq AttValue
- *
- * [25] Eq ::= S? '=' S?
- *
- * With namespace:
- *
- * [NS 11] Attribute ::= QName Eq AttValue
- *
- * Also the case QName == xmlns:??? is handled independently as a namespace
- * definition.
- *
- * Returns the attribute name, and the value in *value.
- */
-
-static const xmlChar *
-htmlParseAttribute(htmlParserCtxtPtr ctxt, xmlChar **value) {
-    const xmlChar *name;
-    xmlChar *val = NULL;
-
-    *value = NULL;
-    name = htmlParseHTMLName(ctxt);
-    if (name == NULL) {
-	htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
-	             "error parsing attribute name\n", NULL, NULL);
-        return(NULL);
-    }
-
-    /*
-     * read the value
-     */
-    SKIP_BLANKS;
-    if (CUR == '=') {
-        NEXT;
-	SKIP_BLANKS;
-	val = htmlParseAttValue(ctxt);
-    }
-
-    *value = val;
-    return(name);
-}
-
-/**
- * htmlCheckEncodingDirect:
- * @ctxt:  an HTML parser context
- * @attvalue: the attribute value
- *
- * Checks an attribute value to detect
- * the encoding
- * If a new encoding is detected the parser is switched to decode
- * it and pass UTF8
- */
-static void
-htmlCheckEncodingDirect(htmlParserCtxtPtr ctxt, const xmlChar *encoding) {
-
-    if ((ctxt == NULL) || (encoding == NULL) ||
-        (ctxt->options & HTML_PARSE_IGNORE_ENC))
-	return;
-
-    /* do not change encoding */
-    if (ctxt->input->encoding != NULL)
-        return;
-
-    if (encoding != NULL) {
-	xmlCharEncoding enc;
-	xmlCharEncodingHandlerPtr handler;
-
-	while ((*encoding == ' ') || (*encoding == '\t')) encoding++;
-
-	if (ctxt->input->encoding != NULL)
-	    xmlFree((xmlChar *) ctxt->input->encoding);
-	ctxt->input->encoding = xmlStrdup(encoding);
-
-	enc = xmlParseCharEncoding((const char *) encoding);
-	/*
-	 * registered set of known encodings
-	 */
-	if (enc != XML_CHAR_ENCODING_ERROR) {
-	    if (((enc == XML_CHAR_ENCODING_UTF16LE) ||
-	         (enc == XML_CHAR_ENCODING_UTF16BE) ||
-		 (enc == XML_CHAR_ENCODING_UCS4LE) ||
-		 (enc == XML_CHAR_ENCODING_UCS4BE)) &&
-		(ctxt->input->buf != NULL) &&
-		(ctxt->input->buf->encoder == NULL)) {
-		htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
-		             "htmlCheckEncoding: wrong encoding meta\n",
-			     NULL, NULL);
-	    } else {
-		xmlSwitchEncoding(ctxt, enc);
-	    }
-	    ctxt->charset = XML_CHAR_ENCODING_UTF8;
-	} else {
-	    /*
-	     * fallback for unknown encodings
-	     */
-	    handler = xmlFindCharEncodingHandler((const char *) encoding);
-	    if (handler != NULL) {
-		xmlSwitchToEncoding(ctxt, handler);
-		ctxt->charset = XML_CHAR_ENCODING_UTF8;
-	    } else {
-		htmlParseErr(ctxt, XML_ERR_UNSUPPORTED_ENCODING,
-		             "htmlCheckEncoding: unknown encoding %s\n",
-			     encoding, NULL);
-	    }
-	}
-
-	if ((ctxt->input->buf != NULL) &&
-	    (ctxt->input->buf->encoder != NULL) &&
-	    (ctxt->input->buf->raw != NULL) &&
-	    (ctxt->input->buf->buffer != NULL)) {
-	    int nbchars;
-	    int processed;
-
-	    /*
-	     * convert as much as possible to the parser reading buffer.
-	     */
-	    processed = ctxt->input->cur - ctxt->input->base;
-	    xmlBufShrink(ctxt->input->buf->buffer, processed);
-	    nbchars = xmlCharEncInput(ctxt->input->buf, 1);
-	    if (nbchars < 0) {
-		htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
-		             "htmlCheckEncoding: encoder error\n",
-			     NULL, NULL);
-	    }
-            xmlBufResetInput(ctxt->input->buf->buffer, ctxt->input);
-	}
-    }
-}
-
-/**
- * htmlCheckEncoding:
- * @ctxt:  an HTML parser context
- * @attvalue: the attribute value
- *
- * Checks an http-equiv attribute from a Meta tag to detect
- * the encoding
- * If a new encoding is detected the parser is switched to decode
- * it and pass UTF8
- */
-static void
-htmlCheckEncoding(htmlParserCtxtPtr ctxt, const xmlChar *attvalue) {
-    const xmlChar *encoding;
-
-    if (!attvalue)
-	return;
-
-    encoding = xmlStrcasestr(attvalue, BAD_CAST"charset");
-    if (encoding != NULL) {
-	encoding += 7;
-    }
-    /*
-     * skip blank
-     */
-    if (encoding && IS_BLANK_CH(*encoding))
-	encoding = xmlStrcasestr(attvalue, BAD_CAST"=");
-    if (encoding && *encoding == '=') {
-	encoding ++;
-	htmlCheckEncodingDirect(ctxt, encoding);
-    }
-}
-
-/**
- * htmlCheckMeta:
- * @ctxt:  an HTML parser context
- * @atts:  the attributes values
- *
- * Checks an attributes from a Meta tag
- */
-static void
-htmlCheckMeta(htmlParserCtxtPtr ctxt, const xmlChar **atts) {
-    int i;
-    const xmlChar *att, *value;
-    int http = 0;
-    const xmlChar *content = NULL;
-
-    if ((ctxt == NULL) || (atts == NULL))
-	return;
-
-    i = 0;
-    att = atts[i++];
-    while (att != NULL) {
-	value = atts[i++];
-	if ((value != NULL) && (!xmlStrcasecmp(att, BAD_CAST"http-equiv"))
-	 && (!xmlStrcasecmp(value, BAD_CAST"Content-Type")))
-	    http = 1;
-	else if ((value != NULL) && (!xmlStrcasecmp(att, BAD_CAST"charset")))
-	    htmlCheckEncodingDirect(ctxt, value);
-	else if ((value != NULL) && (!xmlStrcasecmp(att, BAD_CAST"content")))
-	    content = value;
-	att = atts[i++];
-    }
-    if ((http) && (content != NULL))
-	htmlCheckEncoding(ctxt, content);
-
-}
-
-/**
- * htmlParseStartTag:
- * @ctxt:  an HTML parser context
- *
- * parse a start of tag either for rule element or
- * EmptyElement. In both case we don't parse the tag closing chars.
- *
- * [40] STag ::= '<' Name (S Attribute)* S? '>'
- *
- * [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
- *
- * With namespace:
- *
- * [NS 8] STag ::= '<' QName (S Attribute)* S? '>'
- *
- * [NS 10] EmptyElement ::= '<' QName (S Attribute)* S? '/>'
- *
- * Returns 0 in case of success, -1 in case of error and 1 if discarded
- */
-
-static int
-htmlParseStartTag(htmlParserCtxtPtr ctxt) {
-    const xmlChar *name;
-    const xmlChar *attname;
-    xmlChar *attvalue;
-    const xmlChar **atts;
-    int nbatts = 0;
-    int maxatts;
-    int meta = 0;
-    int i;
-    int discardtag = 0;
-
-    if ((ctxt == NULL) || (ctxt->input == NULL)) {
-	htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-		     "htmlParseStartTag: context error\n", NULL, NULL);
-	return -1;
-    }
-    if (ctxt->instate == XML_PARSER_EOF)
-        return(-1);
-    if (CUR != '<') return -1;
-    NEXT;
-
-    atts = ctxt->atts;
-    maxatts = ctxt->maxatts;
-
-    GROW;
-    name = htmlParseHTMLName(ctxt);
-    if (name == NULL) {
-	htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
-	             "htmlParseStartTag: invalid element name\n",
-		     NULL, NULL);
-	/* if recover preserve text on classic misconstructs */
-	if ((ctxt->recovery) && ((IS_BLANK_CH(CUR)) || (CUR == '<') ||
-	    (CUR == '=') || (CUR == '>') || (((CUR >= '0') && (CUR <= '9'))))) {
-	    htmlParseCharDataInternal(ctxt, '<');
-	    return(-1);
-	}
-
-
-	/* Dump the bogus tag like browsers do */
-	while ((IS_CHAR_CH(CUR)) && (CUR != '>') &&
-               (ctxt->instate != XML_PARSER_EOF))
-	    NEXT;
-        return -1;
-    }
-    if (xmlStrEqual(name, BAD_CAST"meta"))
-	meta = 1;
-
-    /*
-     * Check for auto-closure of HTML elements.
-     */
-    htmlAutoClose(ctxt, name);
-
-    /*
-     * Check for implied HTML elements.
-     */
-    htmlCheckImplied(ctxt, name);
-
-    /*
-     * Avoid html at any level > 0, head at any level != 1
-     * or any attempt to recurse body
-     */
-    if ((ctxt->nameNr > 0) && (xmlStrEqual(name, BAD_CAST"html"))) {
-	htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
-	             "htmlParseStartTag: misplaced <html> tag\n",
-		     name, NULL);
-	discardtag = 1;
-	ctxt->depth++;
-    }
-    if ((ctxt->nameNr != 1) &&
-	(xmlStrEqual(name, BAD_CAST"head"))) {
-	htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
-	             "htmlParseStartTag: misplaced <head> tag\n",
-		     name, NULL);
-	discardtag = 1;
-	ctxt->depth++;
-    }
-    if (xmlStrEqual(name, BAD_CAST"body")) {
-	int indx;
-	for (indx = 0;indx < ctxt->nameNr;indx++) {
-	    if (xmlStrEqual(ctxt->nameTab[indx], BAD_CAST"body")) {
-		htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
-		             "htmlParseStartTag: misplaced <body> tag\n",
-			     name, NULL);
-		discardtag = 1;
-		ctxt->depth++;
-	    }
-	}
-    }
-
-    /*
-     * Now parse the attributes, it ends up with the ending
-     *
-     * (S Attribute)* S?
-     */
-    SKIP_BLANKS;
-    while ((IS_CHAR_CH(CUR)) &&
-           (CUR != '>') &&
-	   ((CUR != '/') || (NXT(1) != '>'))) {
-	long cons = ctxt->nbChars;
-
-	GROW;
-	attname = htmlParseAttribute(ctxt, &attvalue);
-        if (attname != NULL) {
-
-	    /*
-	     * Well formedness requires at most one declaration of an attribute
-	     */
-	    for (i = 0; i < nbatts;i += 2) {
-	        if (xmlStrEqual(atts[i], attname)) {
-		    htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_REDEFINED,
-		                 "Attribute %s redefined\n", attname, NULL);
-		    if (attvalue != NULL)
-			xmlFree(attvalue);
-		    goto failed;
-		}
-	    }
-
-	    /*
-	     * Add the pair to atts
-	     */
-	    if (atts == NULL) {
-	        maxatts = 22; /* allow for 10 attrs by default */
-	        atts = (const xmlChar **)
-		       xmlMalloc(maxatts * sizeof(xmlChar *));
-		if (atts == NULL) {
-		    htmlErrMemory(ctxt, NULL);
-		    if (attvalue != NULL)
-			xmlFree(attvalue);
-		    goto failed;
-		}
-		ctxt->atts = atts;
-		ctxt->maxatts = maxatts;
-	    } else if (nbatts + 4 > maxatts) {
-	        const xmlChar **n;
-
-	        maxatts *= 2;
-	        n = (const xmlChar **) xmlRealloc((void *) atts,
-					     maxatts * sizeof(const xmlChar *));
-		if (n == NULL) {
-		    htmlErrMemory(ctxt, NULL);
-		    if (attvalue != NULL)
-			xmlFree(attvalue);
-		    goto failed;
-		}
-		atts = n;
-		ctxt->atts = atts;
-		ctxt->maxatts = maxatts;
-	    }
-	    atts[nbatts++] = attname;
-	    atts[nbatts++] = attvalue;
-	    atts[nbatts] = NULL;
-	    atts[nbatts + 1] = NULL;
-	}
-	else {
-	    if (attvalue != NULL)
-	        xmlFree(attvalue);
-	    /* Dump the bogus attribute string up to the next blank or
-	     * the end of the tag. */
-	    while ((IS_CHAR_CH(CUR)) &&
-	           !(IS_BLANK_CH(CUR)) && (CUR != '>') &&
-		   ((CUR != '/') || (NXT(1) != '>')))
-		NEXT;
-	}
-
-failed:
-	SKIP_BLANKS;
-        if (cons == ctxt->nbChars) {
-	    htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-	                 "htmlParseStartTag: problem parsing attributes\n",
-			 NULL, NULL);
-	    break;
-	}
-    }
-
-    /*
-     * Handle specific association to the META tag
-     */
-    if (meta && (nbatts != 0))
-	htmlCheckMeta(ctxt, atts);
-
-    /*
-     * SAX: Start of Element !
-     */
-    if (!discardtag) {
-	htmlnamePush(ctxt, name);
-	if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL)) {
-	    if (nbatts != 0)
-		ctxt->sax->startElement(ctxt->userData, name, atts);
-	    else
-		ctxt->sax->startElement(ctxt->userData, name, NULL);
-	}
-    }
-
-    if (atts != NULL) {
-        for (i = 1;i < nbatts;i += 2) {
-	    if (atts[i] != NULL)
-		xmlFree((xmlChar *) atts[i]);
-	}
-    }
-
-    return(discardtag);
-}
-
-/**
- * htmlParseEndTag:
- * @ctxt:  an HTML parser context
- *
- * parse an end of tag
- *
- * [42] ETag ::= '</' Name S? '>'
- *
- * With namespace
- *
- * [NS 9] ETag ::= '</' QName S? '>'
- *
- * Returns 1 if the current level should be closed.
- */
-
-static int
-htmlParseEndTag(htmlParserCtxtPtr ctxt)
-{
-    const xmlChar *name;
-    const xmlChar *oldname;
-    int i, ret;
-
-    if ((CUR != '<') || (NXT(1) != '/')) {
-        htmlParseErr(ctxt, XML_ERR_LTSLASH_REQUIRED,
-	             "htmlParseEndTag: '</' not found\n", NULL, NULL);
-        return (0);
-    }
-    SKIP(2);
-
-    name = htmlParseHTMLName(ctxt);
-    if (name == NULL)
-        return (0);
-    /*
-     * We should definitely be at the ending "S? '>'" part
-     */
-    SKIP_BLANKS;
-    if ((!IS_CHAR_CH(CUR)) || (CUR != '>')) {
-        htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
-	             "End tag : expected '>'\n", NULL, NULL);
-	if (ctxt->recovery) {
-	    /*
-	     * We're not at the ending > !!
-	     * Error, unless in recover mode where we search forwards
-	     * until we find a >
-	     */
-	    while (CUR != '\0' && CUR != '>') NEXT;
-	    NEXT;
-	}
-    } else
-        NEXT;
-
-    /*
-     * if we ignored misplaced tags in htmlParseStartTag don't pop them
-     * out now.
-     */
-    if ((ctxt->depth > 0) &&
-        (xmlStrEqual(name, BAD_CAST "html") ||
-         xmlStrEqual(name, BAD_CAST "body") ||
-	 xmlStrEqual(name, BAD_CAST "head"))) {
-	ctxt->depth--;
-	return (0);
-    }
-
-    /*
-     * If the name read is not one of the element in the parsing stack
-     * then return, it's just an error.
-     */
-    for (i = (ctxt->nameNr - 1); i >= 0; i--) {
-        if (xmlStrEqual(name, ctxt->nameTab[i]))
-            break;
-    }
-    if (i < 0) {
-        htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
-	             "Unexpected end tag : %s\n", name, NULL);
-        return (0);
-    }
-
-
-    /*
-     * Check for auto-closure of HTML elements.
-     */
-
-    htmlAutoCloseOnClose(ctxt, name);
-
-    /*
-     * Well formedness constraints, opening and closing must match.
-     * With the exception that the autoclose may have popped stuff out
-     * of the stack.
-     */
-    if (!xmlStrEqual(name, ctxt->name)) {
-        if ((ctxt->name != NULL) && (!xmlStrEqual(ctxt->name, name))) {
-            htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
-	                 "Opening and ending tag mismatch: %s and %s\n",
-			 name, ctxt->name);
-        }
-    }
-
-    /*
-     * SAX: End of Tag
-     */
-    oldname = ctxt->name;
-    if ((oldname != NULL) && (xmlStrEqual(oldname, name))) {
-        if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
-            ctxt->sax->endElement(ctxt->userData, name);
-	htmlNodeInfoPop(ctxt);
-        htmlnamePop(ctxt);
-        ret = 1;
-    } else {
-        ret = 0;
-    }
-
-    return (ret);
-}
-
-
-/**
- * htmlParseReference:
- * @ctxt:  an HTML parser context
- *
- * parse and handle entity references in content,
- * this will end-up in a call to character() since this is either a
- * CharRef, or a predefined entity.
- */
-static void
-htmlParseReference(htmlParserCtxtPtr ctxt) {
-    const htmlEntityDesc * ent;
-    xmlChar out[6];
-    const xmlChar *name;
-    if (CUR != '&') return;
-
-    if (NXT(1) == '#') {
-	unsigned int c;
-	int bits, i = 0;
-
-	c = htmlParseCharRef(ctxt);
-	if (c == 0)
-	    return;
-
-        if      (c <    0x80) { out[i++]= c;                bits= -6; }
-        else if (c <   0x800) { out[i++]=((c >>  6) & 0x1F) | 0xC0;  bits=  0; }
-        else if (c < 0x10000) { out[i++]=((c >> 12) & 0x0F) | 0xE0;  bits=  6; }
-        else                  { out[i++]=((c >> 18) & 0x07) | 0xF0;  bits= 12; }
-
-        for ( ; bits >= 0; bits-= 6) {
-            out[i++]= ((c >> bits) & 0x3F) | 0x80;
-        }
-	out[i] = 0;
-
-	htmlCheckParagraph(ctxt);
-	if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
-	    ctxt->sax->characters(ctxt->userData, out, i);
-    } else {
-	ent = htmlParseEntityRef(ctxt, &name);
-	if (name == NULL) {
-	    htmlCheckParagraph(ctxt);
-	    if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
-	        ctxt->sax->characters(ctxt->userData, BAD_CAST "&", 1);
-	    return;
-	}
-	if ((ent == NULL) || !(ent->value > 0)) {
-	    htmlCheckParagraph(ctxt);
-	    if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL)) {
-		ctxt->sax->characters(ctxt->userData, BAD_CAST "&", 1);
-		ctxt->sax->characters(ctxt->userData, name, xmlStrlen(name));
-		/* ctxt->sax->characters(ctxt->userData, BAD_CAST ";", 1); */
-	    }
-	} else {
-	    unsigned int c;
-	    int bits, i = 0;
-
-	    c = ent->value;
-	    if      (c <    0x80)
-	            { out[i++]= c;                bits= -6; }
-	    else if (c <   0x800)
-	            { out[i++]=((c >>  6) & 0x1F) | 0xC0;  bits=  0; }
-	    else if (c < 0x10000)
-	            { out[i++]=((c >> 12) & 0x0F) | 0xE0;  bits=  6; }
-	    else
-	            { out[i++]=((c >> 18) & 0x07) | 0xF0;  bits= 12; }
-
-	    for ( ; bits >= 0; bits-= 6) {
-		out[i++]= ((c >> bits) & 0x3F) | 0x80;
-	    }
-	    out[i] = 0;
-
-	    htmlCheckParagraph(ctxt);
-	    if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
-		ctxt->sax->characters(ctxt->userData, out, i);
-	}
-    }
-}
-
-/**
- * htmlParseContent:
- * @ctxt:  an HTML parser context
- *
- * Parse a content: comment, sub-element, reference or text.
- * Kept for compatibility with old code
- */
-
-static void
-htmlParseContent(htmlParserCtxtPtr ctxt) {
-    xmlChar *currentNode;
-    int depth;
-    const xmlChar *name;
-
-    currentNode = xmlStrdup(ctxt->name);
-    depth = ctxt->nameNr;
-    while (1) {
-	long cons = ctxt->nbChars;
-
-        GROW;
-
-        if (ctxt->instate == XML_PARSER_EOF)
-            break;
-
-	/*
-	 * Our tag or one of it's parent or children is ending.
-	 */
-        if ((CUR == '<') && (NXT(1) == '/')) {
-	    if (htmlParseEndTag(ctxt) &&
-		((currentNode != NULL) || (ctxt->nameNr == 0))) {
-		if (currentNode != NULL)
-		    xmlFree(currentNode);
-		return;
-	    }
-	    continue; /* while */
-        }
-
-	else if ((CUR == '<') &&
-	         ((IS_ASCII_LETTER(NXT(1))) ||
-		  (NXT(1) == '_') || (NXT(1) == ':'))) {
-	    name = htmlParseHTMLName_nonInvasive(ctxt);
-	    if (name == NULL) {
-	        htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
-			 "htmlParseStartTag: invalid element name\n",
-			 NULL, NULL);
-	        /* Dump the bogus tag like browsers do */
-        while ((IS_CHAR_CH(CUR)) && (CUR != '>'))
-	            NEXT;
-
-	        if (currentNode != NULL)
-	            xmlFree(currentNode);
-	        return;
-	    }
-
-	    if (ctxt->name != NULL) {
-	        if (htmlCheckAutoClose(name, ctxt->name) == 1) {
-	            htmlAutoClose(ctxt, name);
-	            continue;
-	        }
-	    }
-	}
-
-	/*
-	 * Has this node been popped out during parsing of
-	 * the next element
-	 */
-        if ((ctxt->nameNr > 0) && (depth >= ctxt->nameNr) &&
-	    (!xmlStrEqual(currentNode, ctxt->name)))
-	     {
-	    if (currentNode != NULL) xmlFree(currentNode);
-	    return;
-	}
-
-	if ((CUR != 0) && ((xmlStrEqual(currentNode, BAD_CAST"script")) ||
-	    (xmlStrEqual(currentNode, BAD_CAST"style")))) {
-	    /*
-	     * Handle SCRIPT/STYLE separately
-	     */
-	    htmlParseScript(ctxt);
-	} else {
-	    /*
-	     * Sometimes DOCTYPE arrives in the middle of the document
-	     */
-	    if ((CUR == '<') && (NXT(1) == '!') &&
-		(UPP(2) == 'D') && (UPP(3) == 'O') &&
-		(UPP(4) == 'C') && (UPP(5) == 'T') &&
-		(UPP(6) == 'Y') && (UPP(7) == 'P') &&
-		(UPP(8) == 'E')) {
-		htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
-		             "Misplaced DOCTYPE declaration\n",
-			     BAD_CAST "DOCTYPE" , NULL);
-		htmlParseDocTypeDecl(ctxt);
-	    }
-
-	    /*
-	     * First case :  a comment
-	     */
-	    if ((CUR == '<') && (NXT(1) == '!') &&
-		(NXT(2) == '-') && (NXT(3) == '-')) {
-		htmlParseComment(ctxt);
-	    }
-
-	    /*
-	     * Second case : a Processing Instruction.
-	     */
-	    else if ((CUR == '<') && (NXT(1) == '?')) {
-		htmlParsePI(ctxt);
-	    }
-
-	    /*
-	     * Third case :  a sub-element.
-	     */
-	    else if (CUR == '<') {
-		htmlParseElement(ctxt);
-	    }
-
-	    /*
-	     * Fourth case : a reference. If if has not been resolved,
-	     *    parsing returns it's Name, create the node
-	     */
-	    else if (CUR == '&') {
-		htmlParseReference(ctxt);
-	    }
-
-	    /*
-	     * Fifth case : end of the resource
-	     */
-	    else if (CUR == 0) {
-		htmlAutoCloseOnEnd(ctxt);
-		break;
-	    }
-
-	    /*
-	     * Last case, text. Note that References are handled directly.
-	     */
-	    else {
-		htmlParseCharData(ctxt);
-	    }
-
-	    if (cons == ctxt->nbChars) {
-		if (ctxt->node != NULL) {
-		    htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-		                 "detected an error in element content\n",
-				 NULL, NULL);
-		}
-		break;
-	    }
-	}
-        GROW;
-    }
-    if (currentNode != NULL) xmlFree(currentNode);
-}
-
-/**
- * htmlParseElement:
- * @ctxt:  an HTML parser context
- *
- * parse an HTML element, this is highly recursive
- * this is kept for compatibility with previous code versions
- *
- * [39] element ::= EmptyElemTag | STag content ETag
- *
- * [41] Attribute ::= Name Eq AttValue
- */
-
-void
-htmlParseElement(htmlParserCtxtPtr ctxt) {
-    const xmlChar *name;
-    xmlChar *currentNode = NULL;
-    const htmlElemDesc * info;
-    htmlParserNodeInfo node_info;
-    int failed;
-    int depth;
-    const xmlChar *oldptr;
-
-    if ((ctxt == NULL) || (ctxt->input == NULL)) {
-	htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-		     "htmlParseElement: context error\n", NULL, NULL);
-	return;
-    }
-
-    if (ctxt->instate == XML_PARSER_EOF)
-        return;
-
-    /* Capture start position */
-    if (ctxt->record_info) {
-        node_info.begin_pos = ctxt->input->consumed +
-                          (CUR_PTR - ctxt->input->base);
-	node_info.begin_line = ctxt->input->line;
-    }
-
-    failed = htmlParseStartTag(ctxt);
-    name = ctxt->name;
-    if ((failed == -1) || (name == NULL)) {
-	if (CUR == '>')
-	    NEXT;
-        return;
-    }
-
-    /*
-     * Lookup the info for that element.
-     */
-    info = htmlTagLookup(name);
-    if (info == NULL) {
-	htmlParseErr(ctxt, XML_HTML_UNKNOWN_TAG,
-	             "Tag %s invalid\n", name, NULL);
-    }
-
-    /*
-     * Check for an Empty Element labeled the XML/SGML way
-     */
-    if ((CUR == '/') && (NXT(1) == '>')) {
-        SKIP(2);
-	if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
-	    ctxt->sax->endElement(ctxt->userData, name);
-	htmlnamePop(ctxt);
-	return;
-    }
-
-    if (CUR == '>') {
-        NEXT;
-    } else {
-	htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
-	             "Couldn't find end of Start Tag %s\n", name, NULL);
-
-	/*
-	 * end of parsing of this node.
-	 */
-	if (xmlStrEqual(name, ctxt->name)) {
-	    nodePop(ctxt);
-	    htmlnamePop(ctxt);
-	}
-
-	/*
-	 * Capture end position and add node
-	 */
-	if (ctxt->record_info) {
-	   node_info.end_pos = ctxt->input->consumed +
-			      (CUR_PTR - ctxt->input->base);
-	   node_info.end_line = ctxt->input->line;
-	   node_info.node = ctxt->node;
-	   xmlParserAddNodeInfo(ctxt, &node_info);
-	}
-	return;
-    }
-
-    /*
-     * Check for an Empty Element from DTD definition
-     */
-    if ((info != NULL) && (info->empty)) {
-	if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
-	    ctxt->sax->endElement(ctxt->userData, name);
-	htmlnamePop(ctxt);
-	return;
-    }
-
-    /*
-     * Parse the content of the element:
-     */
-    currentNode = xmlStrdup(ctxt->name);
-    depth = ctxt->nameNr;
-    while (IS_CHAR_CH(CUR)) {
-	oldptr = ctxt->input->cur;
-	htmlParseContent(ctxt);
-	if (oldptr==ctxt->input->cur) break;
-	if (ctxt->nameNr < depth) break;
-    }
-
-    /*
-     * Capture end position and add node
-     */
-    if ( currentNode != NULL && ctxt->record_info ) {
-       node_info.end_pos = ctxt->input->consumed +
-                          (CUR_PTR - ctxt->input->base);
-       node_info.end_line = ctxt->input->line;
-       node_info.node = ctxt->node;
-       xmlParserAddNodeInfo(ctxt, &node_info);
-    }
-    if (!IS_CHAR_CH(CUR)) {
-	htmlAutoCloseOnEnd(ctxt);
-    }
-
-    if (currentNode != NULL)
-	xmlFree(currentNode);
-}
-
-static void
-htmlParserFinishElementParsing(htmlParserCtxtPtr ctxt) {
-    /*
-     * Capture end position and add node
-     */
-    if ( ctxt->node != NULL && ctxt->record_info ) {
-       ctxt->nodeInfo->end_pos = ctxt->input->consumed +
-                                (CUR_PTR - ctxt->input->base);
-       ctxt->nodeInfo->end_line = ctxt->input->line;
-       ctxt->nodeInfo->node = ctxt->node;
-       xmlParserAddNodeInfo(ctxt, ctxt->nodeInfo);
-       htmlNodeInfoPop(ctxt);
-    }
-    if (!IS_CHAR_CH(CUR)) {
-       htmlAutoCloseOnEnd(ctxt);
-    }
-}
-
-/**
- * htmlParseElementInternal:
- * @ctxt:  an HTML parser context
- *
- * parse an HTML element, new version, non recursive
- *
- * [39] element ::= EmptyElemTag | STag content ETag
- *
- * [41] Attribute ::= Name Eq AttValue
- */
-
-static void
-htmlParseElementInternal(htmlParserCtxtPtr ctxt) {
-    const xmlChar *name;
-    const htmlElemDesc * info;
-    htmlParserNodeInfo node_info = { 0, };
-    int failed;
-
-    if ((ctxt == NULL) || (ctxt->input == NULL)) {
-	htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-		     "htmlParseElementInternal: context error\n", NULL, NULL);
-	return;
-    }
-
-    if (ctxt->instate == XML_PARSER_EOF)
-        return;
-
-    /* Capture start position */
-    if (ctxt->record_info) {
-        node_info.begin_pos = ctxt->input->consumed +
-                          (CUR_PTR - ctxt->input->base);
-	node_info.begin_line = ctxt->input->line;
-    }
-
-    failed = htmlParseStartTag(ctxt);
-    name = ctxt->name;
-    if ((failed == -1) || (name == NULL)) {
-	if (CUR == '>')
-	    NEXT;
-        return;
-    }
-
-    /*
-     * Lookup the info for that element.
-     */
-    info = htmlTagLookup(name);
-    if (info == NULL) {
-	htmlParseErr(ctxt, XML_HTML_UNKNOWN_TAG,
-	             "Tag %s invalid\n", name, NULL);
-    }
-
-    /*
-     * Check for an Empty Element labeled the XML/SGML way
-     */
-    if ((CUR == '/') && (NXT(1) == '>')) {
-        SKIP(2);
-	if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
-	    ctxt->sax->endElement(ctxt->userData, name);
-	htmlnamePop(ctxt);
-	return;
-    }
-
-    if (CUR == '>') {
-        NEXT;
-    } else {
-	htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
-	             "Couldn't find end of Start Tag %s\n", name, NULL);
-
-	/*
-	 * end of parsing of this node.
-	 */
-	if (xmlStrEqual(name, ctxt->name)) {
-	    nodePop(ctxt);
-	    htmlnamePop(ctxt);
-	}
-
-        if (ctxt->record_info)
-            htmlNodeInfoPush(ctxt, &node_info);
-        htmlParserFinishElementParsing(ctxt);
-	return;
-    }
-
-    /*
-     * Check for an Empty Element from DTD definition
-     */
-    if ((info != NULL) && (info->empty)) {
-	if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
-	    ctxt->sax->endElement(ctxt->userData, name);
-	htmlnamePop(ctxt);
-	return;
-    }
-
-    if (ctxt->record_info)
-        htmlNodeInfoPush(ctxt, &node_info);
-}
-
-/**
- * htmlParseContentInternal:
- * @ctxt:  an HTML parser context
- *
- * Parse a content: comment, sub-element, reference or text.
- * New version for non recursive htmlParseElementInternal
- */
-
-static void
-htmlParseContentInternal(htmlParserCtxtPtr ctxt) {
-    xmlChar *currentNode;
-    int depth;
-    const xmlChar *name;
-
-    currentNode = xmlStrdup(ctxt->name);
-    depth = ctxt->nameNr;
-    while (1) {
-	long cons = ctxt->nbChars;
-
-        GROW;
-
-        if (ctxt->instate == XML_PARSER_EOF)
-            break;
-
-	/*
-	 * Our tag or one of it's parent or children is ending.
-	 */
-        if ((CUR == '<') && (NXT(1) == '/')) {
-	    if (htmlParseEndTag(ctxt) &&
-		((currentNode != NULL) || (ctxt->nameNr == 0))) {
-		if (currentNode != NULL)
-		    xmlFree(currentNode);
-
-	        currentNode = xmlStrdup(ctxt->name);
-	        depth = ctxt->nameNr;
-	    }
-	    continue; /* while */
-        }
-
-	else if ((CUR == '<') &&
-	         ((IS_ASCII_LETTER(NXT(1))) ||
-		  (NXT(1) == '_') || (NXT(1) == ':'))) {
-	    name = htmlParseHTMLName_nonInvasive(ctxt);
-	    if (name == NULL) {
-	        htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
-			 "htmlParseStartTag: invalid element name\n",
-			 NULL, NULL);
-	        /* Dump the bogus tag like browsers do */
-	        while ((IS_CHAR_CH(CUR)) && (CUR != '>'))
-	            NEXT;
-
-	        htmlParserFinishElementParsing(ctxt);
-	        if (currentNode != NULL)
-	            xmlFree(currentNode);
-
-	        currentNode = xmlStrdup(ctxt->name);
-	        depth = ctxt->nameNr;
-	        continue;
-	    }
-
-	    if (ctxt->name != NULL) {
-	        if (htmlCheckAutoClose(name, ctxt->name) == 1) {
-	            htmlAutoClose(ctxt, name);
-	            continue;
-	        }
-	    }
-	}
-
-	/*
-	 * Has this node been popped out during parsing of
-	 * the next element
-	 */
-        if ((ctxt->nameNr > 0) && (depth >= ctxt->nameNr) &&
-	    (!xmlStrEqual(currentNode, ctxt->name)))
-	     {
-	    htmlParserFinishElementParsing(ctxt);
-	    if (currentNode != NULL) xmlFree(currentNode);
-
-	    currentNode = xmlStrdup(ctxt->name);
-	    depth = ctxt->nameNr;
-	    continue;
-	}
-
-	if ((CUR != 0) && ((xmlStrEqual(currentNode, BAD_CAST"script")) ||
-	    (xmlStrEqual(currentNode, BAD_CAST"style")))) {
-	    /*
-	     * Handle SCRIPT/STYLE separately
-	     */
-	    htmlParseScript(ctxt);
-	} else {
-	    /*
-	     * Sometimes DOCTYPE arrives in the middle of the document
-	     */
-	    if ((CUR == '<') && (NXT(1) == '!') &&
-		(UPP(2) == 'D') && (UPP(3) == 'O') &&
-		(UPP(4) == 'C') && (UPP(5) == 'T') &&
-		(UPP(6) == 'Y') && (UPP(7) == 'P') &&
-		(UPP(8) == 'E')) {
-		htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
-		             "Misplaced DOCTYPE declaration\n",
-			     BAD_CAST "DOCTYPE" , NULL);
-		htmlParseDocTypeDecl(ctxt);
-	    }
-
-	    /*
-	     * First case :  a comment
-	     */
-	    if ((CUR == '<') && (NXT(1) == '!') &&
-		(NXT(2) == '-') && (NXT(3) == '-')) {
-		htmlParseComment(ctxt);
-	    }
-
-	    /*
-	     * Second case : a Processing Instruction.
-	     */
-	    else if ((CUR == '<') && (NXT(1) == '?')) {
-		htmlParsePI(ctxt);
-	    }
-
-	    /*
-	     * Third case :  a sub-element.
-	     */
-	    else if (CUR == '<') {
-		htmlParseElementInternal(ctxt);
-		if (currentNode != NULL) xmlFree(currentNode);
-
-		currentNode = xmlStrdup(ctxt->name);
-		depth = ctxt->nameNr;
-	    }
-
-	    /*
-	     * Fourth case : a reference. If if has not been resolved,
-	     *    parsing returns it's Name, create the node
-	     */
-	    else if (CUR == '&') {
-		htmlParseReference(ctxt);
-	    }
-
-	    /*
-	     * Fifth case : end of the resource
-	     */
-	    else if (CUR == 0) {
-		htmlAutoCloseOnEnd(ctxt);
-		break;
-	    }
-
-	    /*
-	     * Last case, text. Note that References are handled directly.
-	     */
-	    else {
-		htmlParseCharData(ctxt);
-	    }
-
-	    if (cons == ctxt->nbChars) {
-		if (ctxt->node != NULL) {
-		    htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-		                 "detected an error in element content\n",
-				 NULL, NULL);
-		}
-		break;
-	    }
-	}
-        GROW;
-    }
-    if (currentNode != NULL) xmlFree(currentNode);
-}
-
-/**
- * htmlParseContent:
- * @ctxt:  an HTML parser context
- *
- * Parse a content: comment, sub-element, reference or text.
- * This is the entry point when called from parser.c
- */
-
-void
-__htmlParseContent(void *ctxt) {
-    if (ctxt != NULL)
-	htmlParseContentInternal((htmlParserCtxtPtr) ctxt);
-}
-
-/**
- * htmlParseDocument:
- * @ctxt:  an HTML parser context
- *
- * parse an HTML document (and build a tree if using the standard SAX
- * interface).
- *
- * Returns 0, -1 in case of error. the parser context is augmented
- *                as a result of the parsing.
- */
-
-int
-htmlParseDocument(htmlParserCtxtPtr ctxt) {
-    xmlChar start[4];
-    xmlCharEncoding enc;
-    xmlDtdPtr dtd;
-
-    xmlInitParser();
-
-    htmlDefaultSAXHandlerInit();
-
-    if ((ctxt == NULL) || (ctxt->input == NULL)) {
-	htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-		     "htmlParseDocument: context error\n", NULL, NULL);
-	return(XML_ERR_INTERNAL_ERROR);
-    }
-    ctxt->html = 1;
-    ctxt->linenumbers = 1;
-    GROW;
-    /*
-     * SAX: beginning of the document processing.
-     */
-    if ((ctxt->sax) && (ctxt->sax->setDocumentLocator))
-        ctxt->sax->setDocumentLocator(ctxt->userData, &xmlDefaultSAXLocator);
-
-    if ((ctxt->encoding == (const xmlChar *)XML_CHAR_ENCODING_NONE) &&
-        ((ctxt->input->end - ctxt->input->cur) >= 4)) {
-	/*
-	 * Get the 4 first bytes and decode the charset
-	 * if enc != XML_CHAR_ENCODING_NONE
-	 * plug some encoding conversion routines.
-	 */
-	start[0] = RAW;
-	start[1] = NXT(1);
-	start[2] = NXT(2);
-	start[3] = NXT(3);
-	enc = xmlDetectCharEncoding(&start[0], 4);
-	if (enc != XML_CHAR_ENCODING_NONE) {
-	    xmlSwitchEncoding(ctxt, enc);
-	}
-    }
-
-    /*
-     * Wipe out everything which is before the first '<'
-     */
-    SKIP_BLANKS;
-    if (CUR == 0) {
-	htmlParseErr(ctxt, XML_ERR_DOCUMENT_EMPTY,
-	             "Document is empty\n", NULL, NULL);
-    }
-
-    if ((ctxt->sax) && (ctxt->sax->startDocument) && (!ctxt->disableSAX))
-	ctxt->sax->startDocument(ctxt->userData);
-
-
-    /*
-     * Parse possible comments and PIs before any content
-     */
-    while (((CUR == '<') && (NXT(1) == '!') &&
-            (NXT(2) == '-') && (NXT(3) == '-')) ||
-	   ((CUR == '<') && (NXT(1) == '?'))) {
-        htmlParseComment(ctxt);
-        htmlParsePI(ctxt);
-	SKIP_BLANKS;
-    }
-
-
-    /*
-     * Then possibly doc type declaration(s) and more Misc
-     * (doctypedecl Misc*)?
-     */
-    if ((CUR == '<') && (NXT(1) == '!') &&
-	(UPP(2) == 'D') && (UPP(3) == 'O') &&
-	(UPP(4) == 'C') && (UPP(5) == 'T') &&
-	(UPP(6) == 'Y') && (UPP(7) == 'P') &&
-	(UPP(8) == 'E')) {
-	htmlParseDocTypeDecl(ctxt);
-    }
-    SKIP_BLANKS;
-
-    /*
-     * Parse possible comments and PIs before any content
-     */
-    while (((CUR == '<') && (NXT(1) == '!') &&
-            (NXT(2) == '-') && (NXT(3) == '-')) ||
-	   ((CUR == '<') && (NXT(1) == '?'))) {
-        htmlParseComment(ctxt);
-        htmlParsePI(ctxt);
-	SKIP_BLANKS;
-    }
-
-    /*
-     * Time to start parsing the tree itself
-     */
-    htmlParseContentInternal(ctxt);
-
-    /*
-     * autoclose
-     */
-    if (CUR == 0)
-	htmlAutoCloseOnEnd(ctxt);
-
-
-    /*
-     * SAX: end of the document processing.
-     */
-    if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
-        ctxt->sax->endDocument(ctxt->userData);
-
-    if ((!(ctxt->options & HTML_PARSE_NODEFDTD)) && (ctxt->myDoc != NULL)) {
-	dtd = xmlGetIntSubset(ctxt->myDoc);
-	if (dtd == NULL)
-	    ctxt->myDoc->intSubset =
-		xmlCreateIntSubset(ctxt->myDoc, BAD_CAST "html",
-		    BAD_CAST "-//W3C//DTD HTML 4.0 Transitional//EN",
-		    BAD_CAST "http://www.w3.org/TR/REC-html40/loose.dtd");
-    }
-    if (! ctxt->wellFormed) return(-1);
-    return(0);
-}
-
-
-/************************************************************************
- *									*
- *			Parser contexts handling			*
- *									*
- ************************************************************************/
-
-/**
- * htmlInitParserCtxt:
- * @ctxt:  an HTML parser context
- *
- * Initialize a parser context
- *
- * Returns 0 in case of success and -1 in case of error
- */
-
-static int
-htmlInitParserCtxt(htmlParserCtxtPtr ctxt)
-{
-    htmlSAXHandler *sax;
-
-    if (ctxt == NULL) return(-1);
-    memset(ctxt, 0, sizeof(htmlParserCtxt));
-
-    ctxt->dict = xmlDictCreate();
-    if (ctxt->dict == NULL) {
-        htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
-	return(-1);
-    }
-    sax = (htmlSAXHandler *) xmlMalloc(sizeof(htmlSAXHandler));
-    if (sax == NULL) {
-        htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
-	return(-1);
-    }
-    else
-        memset(sax, 0, sizeof(htmlSAXHandler));
-
-    /* Allocate the Input stack */
-    ctxt->inputTab = (htmlParserInputPtr *)
-                      xmlMalloc(5 * sizeof(htmlParserInputPtr));
-    if (ctxt->inputTab == NULL) {
-        htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
-	ctxt->inputNr = 0;
-	ctxt->inputMax = 0;
-	ctxt->input = NULL;
-	return(-1);
-    }
-    ctxt->inputNr = 0;
-    ctxt->inputMax = 5;
-    ctxt->input = NULL;
-    ctxt->version = NULL;
-    ctxt->encoding = NULL;
-    ctxt->standalone = -1;
-    ctxt->instate = XML_PARSER_START;
-
-    /* Allocate the Node stack */
-    ctxt->nodeTab = (htmlNodePtr *) xmlMalloc(10 * sizeof(htmlNodePtr));
-    if (ctxt->nodeTab == NULL) {
-        htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
-	ctxt->nodeNr = 0;
-	ctxt->nodeMax = 0;
-	ctxt->node = NULL;
-	ctxt->inputNr = 0;
-	ctxt->inputMax = 0;
-	ctxt->input = NULL;
-	return(-1);
-    }
-    ctxt->nodeNr = 0;
-    ctxt->nodeMax = 10;
-    ctxt->node = NULL;
-
-    /* Allocate the Name stack */
-    ctxt->nameTab = (const xmlChar **) xmlMalloc(10 * sizeof(xmlChar *));
-    if (ctxt->nameTab == NULL) {
-        htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
-	ctxt->nameNr = 0;
-	ctxt->nameMax = 0;
-	ctxt->name = NULL;
-	ctxt->nodeNr = 0;
-	ctxt->nodeMax = 0;
-	ctxt->node = NULL;
-	ctxt->inputNr = 0;
-	ctxt->inputMax = 0;
-	ctxt->input = NULL;
-	return(-1);
-    }
-    ctxt->nameNr = 0;
-    ctxt->nameMax = 10;
-    ctxt->name = NULL;
-
-    ctxt->nodeInfoTab = NULL;
-    ctxt->nodeInfoNr  = 0;
-    ctxt->nodeInfoMax = 0;
-
-    if (sax == NULL) ctxt->sax = (xmlSAXHandlerPtr) &htmlDefaultSAXHandler;
-    else {
-        ctxt->sax = sax;
-	memcpy(sax, &htmlDefaultSAXHandler, sizeof(xmlSAXHandlerV1));
-    }
-    ctxt->userData = ctxt;
-    ctxt->myDoc = NULL;
-    ctxt->wellFormed = 1;
-    ctxt->replaceEntities = 0;
-    ctxt->linenumbers = xmlLineNumbersDefaultValue;
-    ctxt->html = 1;
-    ctxt->vctxt.finishDtd = XML_CTXT_FINISH_DTD_0;
-    ctxt->vctxt.userData = ctxt;
-    ctxt->vctxt.error = xmlParserValidityError;
-    ctxt->vctxt.warning = xmlParserValidityWarning;
-    ctxt->record_info = 0;
-    ctxt->validate = 0;
-    ctxt->nbChars = 0;
-    ctxt->checkIndex = 0;
-    ctxt->catalogs = NULL;
-    xmlInitNodeInfoSeq(&ctxt->node_seq);
-    return(0);
-}
-
-/**
- * htmlFreeParserCtxt:
- * @ctxt:  an HTML parser context
- *
- * Free all the memory used by a parser context. However the parsed
- * document in ctxt->myDoc is not freed.
- */
-
-void
-htmlFreeParserCtxt(htmlParserCtxtPtr ctxt)
-{
-    xmlFreeParserCtxt(ctxt);
-}
-
-/**
- * htmlNewParserCtxt:
- *
- * Allocate and initialize a new parser context.
- *
- * Returns the htmlParserCtxtPtr or NULL in case of allocation error
- */
-
-htmlParserCtxtPtr
-htmlNewParserCtxt(void)
-{
-    xmlParserCtxtPtr ctxt;
-
-    ctxt = (xmlParserCtxtPtr) xmlMalloc(sizeof(xmlParserCtxt));
-    if (ctxt == NULL) {
-        htmlErrMemory(NULL, "NewParserCtxt: out of memory\n");
-	return(NULL);
-    }
-    memset(ctxt, 0, sizeof(xmlParserCtxt));
-    if (htmlInitParserCtxt(ctxt) < 0) {
-        htmlFreeParserCtxt(ctxt);
-	return(NULL);
-    }
-    return(ctxt);
-}
-
-/**
- * htmlCreateMemoryParserCtxt:
- * @buffer:  a pointer to a char array
- * @size:  the size of the array
- *
- * Create a parser context for an HTML in-memory document.
- *
- * Returns the new parser context or NULL
- */
-htmlParserCtxtPtr
-htmlCreateMemoryParserCtxt(const char *buffer, int size) {
-    xmlParserCtxtPtr ctxt;
-    xmlParserInputPtr input;
-    xmlParserInputBufferPtr buf;
-
-    if (buffer == NULL)
-	return(NULL);
-    if (size <= 0)
-	return(NULL);
-
-    ctxt = htmlNewParserCtxt();
-    if (ctxt == NULL)
-	return(NULL);
-
-    buf = xmlParserInputBufferCreateMem(buffer, size, XML_CHAR_ENCODING_NONE);
-    if (buf == NULL) return(NULL);
-
-    input = xmlNewInputStream(ctxt);
-    if (input == NULL) {
-	xmlFreeParserCtxt(ctxt);
-	return(NULL);
-    }
-
-    input->filename = NULL;
-    input->buf = buf;
-    xmlBufResetInput(buf->buffer, input);
-
-    inputPush(ctxt, input);
-    return(ctxt);
-}
-
-/**
- * htmlCreateDocParserCtxt:
- * @cur:  a pointer to an array of xmlChar
- * @encoding:  a free form C string describing the HTML document encoding, or NULL
- *
- * Create a parser context for an HTML document.
- *
- * TODO: check the need to add encoding handling there
- *
- * Returns the new parser context or NULL
- */
-static htmlParserCtxtPtr
-htmlCreateDocParserCtxt(const xmlChar *cur, const char *encoding) {
-    int len;
-    htmlParserCtxtPtr ctxt;
-
-    if (cur == NULL)
-	return(NULL);
-    len = xmlStrlen(cur);
-    ctxt = htmlCreateMemoryParserCtxt((char *)cur, len);
-    if (ctxt == NULL)
-	return(NULL);
-
-    if (encoding != NULL) {
-	xmlCharEncoding enc;
-	xmlCharEncodingHandlerPtr handler;
-
-	if (ctxt->input->encoding != NULL)
-	    xmlFree((xmlChar *) ctxt->input->encoding);
-	ctxt->input->encoding = xmlStrdup((const xmlChar *) encoding);
-
-	enc = xmlParseCharEncoding(encoding);
-	/*
-	 * registered set of known encodings
-	 */
-	if (enc != XML_CHAR_ENCODING_ERROR) {
-	    xmlSwitchEncoding(ctxt, enc);
-	    if (ctxt->errNo == XML_ERR_UNSUPPORTED_ENCODING) {
-		htmlParseErr(ctxt, XML_ERR_UNSUPPORTED_ENCODING,
-		             "Unsupported encoding %s\n",
-			     (const xmlChar *) encoding, NULL);
-	    }
-	} else {
-	    /*
-	     * fallback for unknown encodings
-	     */
-	    handler = xmlFindCharEncodingHandler((const char *) encoding);
-	    if (handler != NULL) {
-		xmlSwitchToEncoding(ctxt, handler);
-	    } else {
-		htmlParseErr(ctxt, XML_ERR_UNSUPPORTED_ENCODING,
-		             "Unsupported encoding %s\n",
-			     (const xmlChar *) encoding, NULL);
-	    }
-	}
-    }
-    return(ctxt);
-}
-
-#ifdef LIBXML_PUSH_ENABLED
-/************************************************************************
- *									*
- *	Progressive parsing interfaces				*
- *									*
- ************************************************************************/
-
-/**
- * htmlParseLookupSequence:
- * @ctxt:  an HTML parser context
- * @first:  the first char to lookup
- * @next:  the next char to lookup or zero
- * @third:  the next char to lookup or zero
- * @comment: flag to force checking inside comments
- *
- * Try to find if a sequence (first, next, third) or  just (first next) or
- * (first) is available in the input stream.
- * This function has a side effect of (possibly) incrementing ctxt->checkIndex
- * to avoid rescanning sequences of bytes, it DOES change the state of the
- * parser, do not use liberally.
- * This is basically similar to xmlParseLookupSequence()
- *
- * Returns the index to the current parsing point if the full sequence
- *      is available, -1 otherwise.
- */
-static int
-htmlParseLookupSequence(htmlParserCtxtPtr ctxt, xmlChar first,
-                        xmlChar next, xmlChar third, int iscomment,
-                        int ignoreattrval)
-{
-    int base, len;
-    htmlParserInputPtr in;
-    const xmlChar *buf;
-    int incomment = 0;
-    int invalue = 0;
-    char valdellim = 0x0;
-
-    in = ctxt->input;
-    if (in == NULL)
-        return (-1);
-
-    base = in->cur - in->base;
-    if (base < 0)
-        return (-1);
-
-    if (ctxt->checkIndex > base)
-        base = ctxt->checkIndex;
-
-    if (in->buf == NULL) {
-        buf = in->base;
-        len = in->length;
-    } else {
-        buf = xmlBufContent(in->buf->buffer);
-        len = xmlBufUse(in->buf->buffer);
-    }
-
-    /* take into account the sequence length */
-    if (third)
-        len -= 2;
-    else if (next)
-        len--;
-    for (; base < len; base++) {
-        if ((!incomment) && (base + 4 < len) && (!iscomment)) {
-            if ((buf[base] == '<') && (buf[base + 1] == '!') &&
-                (buf[base + 2] == '-') && (buf[base + 3] == '-')) {
-                incomment = 1;
-                /* do not increment past <! - some people use <!--> */
-                base += 2;
-            }
-        }
-        if (ignoreattrval) {
-            if (buf[base] == '"' || buf[base] == '\'') {
-                if (invalue) {
-                    if (buf[base] == valdellim) {
-                        invalue = 0;
-                        continue;
-                    }
-                } else {
-                    valdellim = buf[base];
-                    invalue = 1;
-                    continue;
-                }
-            } else if (invalue) {
-                continue;
-            }
-        }
-        if (incomment) {
-            if (base + 3 > len)
-                return (-1);
-            if ((buf[base] == '-') && (buf[base + 1] == '-') &&
-                (buf[base + 2] == '>')) {
-                incomment = 0;
-                base += 2;
-            }
-            continue;
-        }
-        if (buf[base] == first) {
-            if (third != 0) {
-                if ((buf[base + 1] != next) || (buf[base + 2] != third))
-                    continue;
-            } else if (next != 0) {
-                if (buf[base + 1] != next)
-                    continue;
-            }
-            ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-            if (next == 0)
-                xmlGenericError(xmlGenericErrorContext,
-                                "HPP: lookup '%c' found at %d\n",
-                                first, base);
-            else if (third == 0)
-                xmlGenericError(xmlGenericErrorContext,
-                                "HPP: lookup '%c%c' found at %d\n",
-                                first, next, base);
-            else
-                xmlGenericError(xmlGenericErrorContext,
-                                "HPP: lookup '%c%c%c' found at %d\n",
-                                first, next, third, base);
-#endif
-            return (base - (in->cur - in->base));
-        }
-    }
-    if ((!incomment) && (!invalue))
-        ctxt->checkIndex = base;
-#ifdef DEBUG_PUSH
-    if (next == 0)
-        xmlGenericError(xmlGenericErrorContext,
-                        "HPP: lookup '%c' failed\n", first);
-    else if (third == 0)
-        xmlGenericError(xmlGenericErrorContext,
-                        "HPP: lookup '%c%c' failed\n", first, next);
-    else
-        xmlGenericError(xmlGenericErrorContext,
-                        "HPP: lookup '%c%c%c' failed\n", first, next,
-                        third);
-#endif
-    return (-1);
-}
-
-/**
- * htmlParseLookupChars:
- * @ctxt: an HTML parser context
- * @stop: Array of chars, which stop the lookup.
- * @stopLen: Length of stop-Array
- *
- * Try to find if any char of the stop-Array is available in the input
- * stream.
- * This function has a side effect of (possibly) incrementing ctxt->checkIndex
- * to avoid rescanning sequences of bytes, it DOES change the state of the
- * parser, do not use liberally.
- *
- * Returns the index to the current parsing point if a stopChar
- *      is available, -1 otherwise.
- */
-static int
-htmlParseLookupChars(htmlParserCtxtPtr ctxt, const xmlChar * stop,
-                     int stopLen)
-{
-    int base, len;
-    htmlParserInputPtr in;
-    const xmlChar *buf;
-    int incomment = 0;
-    int i;
-
-    in = ctxt->input;
-    if (in == NULL)
-        return (-1);
-
-    base = in->cur - in->base;
-    if (base < 0)
-        return (-1);
-
-    if (ctxt->checkIndex > base)
-        base = ctxt->checkIndex;
-
-    if (in->buf == NULL) {
-        buf = in->base;
-        len = in->length;
-    } else {
-        buf = xmlBufContent(in->buf->buffer);
-        len = xmlBufUse(in->buf->buffer);
-    }
-
-    for (; base < len; base++) {
-        if (!incomment && (base + 4 < len)) {
-            if ((buf[base] == '<') && (buf[base + 1] == '!') &&
-                (buf[base + 2] == '-') && (buf[base + 3] == '-')) {
-                incomment = 1;
-                /* do not increment past <! - some people use <!--> */
-                base += 2;
-            }
-        }
-        if (incomment) {
-            if (base + 3 > len)
-                return (-1);
-            if ((buf[base] == '-') && (buf[base + 1] == '-') &&
-                (buf[base + 2] == '>')) {
-                incomment = 0;
-                base += 2;
-            }
-            continue;
-        }
-        for (i = 0; i < stopLen; ++i) {
-            if (buf[base] == stop[i]) {
-                ctxt->checkIndex = 0;
-                return (base - (in->cur - in->base));
-            }
-        }
-    }
-    ctxt->checkIndex = base;
-    return (-1);
-}
-
-/**
- * htmlParseTryOrFinish:
- * @ctxt:  an HTML parser context
- * @terminate:  last chunk indicator
- *
- * Try to progress on parsing
- *
- * Returns zero if no parsing was possible
- */
-static int
-htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
-    int ret = 0;
-    htmlParserInputPtr in;
-    int avail = 0;
-    xmlChar cur, next;
-
-    htmlParserNodeInfo node_info;
-
-#ifdef DEBUG_PUSH
-    switch (ctxt->instate) {
-	case XML_PARSER_EOF:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try EOF\n"); break;
-	case XML_PARSER_START:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try START\n"); break;
-	case XML_PARSER_MISC:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try MISC\n");break;
-	case XML_PARSER_COMMENT:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try COMMENT\n");break;
-	case XML_PARSER_PROLOG:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try PROLOG\n");break;
-	case XML_PARSER_START_TAG:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try START_TAG\n");break;
-	case XML_PARSER_CONTENT:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try CONTENT\n");break;
-	case XML_PARSER_CDATA_SECTION:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try CDATA_SECTION\n");break;
-	case XML_PARSER_END_TAG:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try END_TAG\n");break;
-	case XML_PARSER_ENTITY_DECL:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try ENTITY_DECL\n");break;
-	case XML_PARSER_ENTITY_VALUE:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try ENTITY_VALUE\n");break;
-	case XML_PARSER_ATTRIBUTE_VALUE:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try ATTRIBUTE_VALUE\n");break;
-	case XML_PARSER_DTD:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try DTD\n");break;
-	case XML_PARSER_EPILOG:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try EPILOG\n");break;
-	case XML_PARSER_PI:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try PI\n");break;
-	case XML_PARSER_SYSTEM_LITERAL:
-	    xmlGenericError(xmlGenericErrorContext,
-		    "HPP: try SYSTEM_LITERAL\n");break;
-    }
-#endif
-
-    while (1) {
-
-	in = ctxt->input;
-	if (in == NULL) break;
-	if (in->buf == NULL)
-	    avail = in->length - (in->cur - in->base);
-	else
-	    avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
-	if ((avail == 0) && (terminate)) {
-	    htmlAutoCloseOnEnd(ctxt);
-	    if ((ctxt->nameNr == 0) && (ctxt->instate != XML_PARSER_EOF)) {
-		/*
-		 * SAX: end of the document processing.
-		 */
-		ctxt->instate = XML_PARSER_EOF;
-		if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
-		    ctxt->sax->endDocument(ctxt->userData);
-	    }
-	}
-        if (avail < 1)
-	    goto done;
-	cur = in->cur[0];
-	if (cur == 0) {
-	    SKIP(1);
-	    continue;
-	}
-
-        switch (ctxt->instate) {
-            case XML_PARSER_EOF:
-	        /*
-		 * Document parsing is done !
-		 */
-	        goto done;
-            case XML_PARSER_START:
-	        /*
-		 * Very first chars read from the document flow.
-		 */
-		cur = in->cur[0];
-		if (IS_BLANK_CH(cur)) {
-		    SKIP_BLANKS;
-		    if (in->buf == NULL)
-			avail = in->length - (in->cur - in->base);
-		    else
-			avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
-		}
-		if ((ctxt->sax) && (ctxt->sax->setDocumentLocator))
-		    ctxt->sax->setDocumentLocator(ctxt->userData,
-						  &xmlDefaultSAXLocator);
-		if ((ctxt->sax) && (ctxt->sax->startDocument) &&
-	            (!ctxt->disableSAX))
-		    ctxt->sax->startDocument(ctxt->userData);
-
-		cur = in->cur[0];
-		next = in->cur[1];
-		if ((cur == '<') && (next == '!') &&
-		    (UPP(2) == 'D') && (UPP(3) == 'O') &&
-		    (UPP(4) == 'C') && (UPP(5) == 'T') &&
-		    (UPP(6) == 'Y') && (UPP(7) == 'P') &&
-		    (UPP(8) == 'E')) {
-		    if ((!terminate) &&
-		        (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
-			goto done;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: Parsing internal subset\n");
-#endif
-		    htmlParseDocTypeDecl(ctxt);
-		    ctxt->instate = XML_PARSER_PROLOG;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: entering PROLOG\n");
-#endif
-                } else {
-		    ctxt->instate = XML_PARSER_MISC;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: entering MISC\n");
-#endif
-		}
-		break;
-            case XML_PARSER_MISC:
-		SKIP_BLANKS;
-		if (in->buf == NULL)
-		    avail = in->length - (in->cur - in->base);
-		else
-		    avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
-		/*
-		 * no chars in buffer
-		 */
-		if (avail < 1)
-		    goto done;
-		/*
-		 * not enouth chars in buffer
-		 */
-		if (avail < 2) {
-		    if (!terminate)
-			goto done;
-		    else
-			next = ' ';
-		} else {
-		    next = in->cur[1];
-		}
-		cur = in->cur[0];
-	        if ((cur == '<') && (next == '!') &&
-		    (in->cur[2] == '-') && (in->cur[3] == '-')) {
-		    if ((!terminate) &&
-		        (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
-			goto done;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: Parsing Comment\n");
-#endif
-		    htmlParseComment(ctxt);
-		    ctxt->instate = XML_PARSER_MISC;
-	        } else if ((cur == '<') && (next == '?')) {
-		    if ((!terminate) &&
-		        (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
-			goto done;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: Parsing PI\n");
-#endif
-		    htmlParsePI(ctxt);
-		    ctxt->instate = XML_PARSER_MISC;
-		} else if ((cur == '<') && (next == '!') &&
-		    (UPP(2) == 'D') && (UPP(3) == 'O') &&
-		    (UPP(4) == 'C') && (UPP(5) == 'T') &&
-		    (UPP(6) == 'Y') && (UPP(7) == 'P') &&
-		    (UPP(8) == 'E')) {
-		    if ((!terminate) &&
-		        (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
-			goto done;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: Parsing internal subset\n");
-#endif
-		    htmlParseDocTypeDecl(ctxt);
-		    ctxt->instate = XML_PARSER_PROLOG;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: entering PROLOG\n");
-#endif
-		} else if ((cur == '<') && (next == '!') &&
-		           (avail < 9)) {
-		    goto done;
-		} else {
-		    ctxt->instate = XML_PARSER_START_TAG;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: entering START_TAG\n");
-#endif
-		}
-		break;
-            case XML_PARSER_PROLOG:
-		SKIP_BLANKS;
-		if (in->buf == NULL)
-		    avail = in->length - (in->cur - in->base);
-		else
-		    avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
-		if (avail < 2)
-		    goto done;
-		cur = in->cur[0];
-		next = in->cur[1];
-		if ((cur == '<') && (next == '!') &&
-		    (in->cur[2] == '-') && (in->cur[3] == '-')) {
-		    if ((!terminate) &&
-		        (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
-			goto done;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: Parsing Comment\n");
-#endif
-		    htmlParseComment(ctxt);
-		    ctxt->instate = XML_PARSER_PROLOG;
-	        } else if ((cur == '<') && (next == '?')) {
-		    if ((!terminate) &&
-		        (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
-			goto done;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: Parsing PI\n");
-#endif
-		    htmlParsePI(ctxt);
-		    ctxt->instate = XML_PARSER_PROLOG;
-		} else if ((cur == '<') && (next == '!') &&
-		           (avail < 4)) {
-		    goto done;
-		} else {
-		    ctxt->instate = XML_PARSER_START_TAG;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: entering START_TAG\n");
-#endif
-		}
-		break;
-            case XML_PARSER_EPILOG:
-		if (in->buf == NULL)
-		    avail = in->length - (in->cur - in->base);
-		else
-		    avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
-		if (avail < 1)
-		    goto done;
-		cur = in->cur[0];
-		if (IS_BLANK_CH(cur)) {
-		    htmlParseCharData(ctxt);
-		    goto done;
-		}
-		if (avail < 2)
-		    goto done;
-		next = in->cur[1];
-	        if ((cur == '<') && (next == '!') &&
-		    (in->cur[2] == '-') && (in->cur[3] == '-')) {
-		    if ((!terminate) &&
-		        (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
-			goto done;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: Parsing Comment\n");
-#endif
-		    htmlParseComment(ctxt);
-		    ctxt->instate = XML_PARSER_EPILOG;
-	        } else if ((cur == '<') && (next == '?')) {
-		    if ((!terminate) &&
-		        (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
-			goto done;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: Parsing PI\n");
-#endif
-		    htmlParsePI(ctxt);
-		    ctxt->instate = XML_PARSER_EPILOG;
-		} else if ((cur == '<') && (next == '!') &&
-		           (avail < 4)) {
-		    goto done;
-		} else {
-		    ctxt->errNo = XML_ERR_DOCUMENT_END;
-		    ctxt->wellFormed = 0;
-		    ctxt->instate = XML_PARSER_EOF;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: entering EOF\n");
-#endif
-		    if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
-			ctxt->sax->endDocument(ctxt->userData);
-		    goto done;
-		}
-		break;
-            case XML_PARSER_START_TAG: {
-	        const xmlChar *name;
-		int failed;
-		const htmlElemDesc * info;
-
-		/*
-		 * no chars in buffer
-		 */
-		if (avail < 1)
-		    goto done;
-		/*
-		 * not enouth chars in buffer
-		 */
-		if (avail < 2) {
-		    if (!terminate)
-			goto done;
-		    else
-			next = ' ';
-		} else {
-		    next = in->cur[1];
-		}
-		cur = in->cur[0];
-	        if (cur != '<') {
-		    ctxt->instate = XML_PARSER_CONTENT;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: entering CONTENT\n");
-#endif
-		    break;
-		}
-		if (next == '/') {
-		    ctxt->instate = XML_PARSER_END_TAG;
-		    ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: entering END_TAG\n");
-#endif
-		    break;
-		}
-		if ((!terminate) &&
-		    (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
-		    goto done;
-
-                /* Capture start position */
-	        if (ctxt->record_info) {
-	             node_info.begin_pos = ctxt->input->consumed +
-	                                (CUR_PTR - ctxt->input->base);
-	             node_info.begin_line = ctxt->input->line;
-	        }
-
-
-		failed = htmlParseStartTag(ctxt);
-		name = ctxt->name;
-		if ((failed == -1) ||
-		    (name == NULL)) {
-		    if (CUR == '>')
-			NEXT;
-		    break;
-		}
-
-		/*
-		 * Lookup the info for that element.
-		 */
-		info = htmlTagLookup(name);
-		if (info == NULL) {
-		    htmlParseErr(ctxt, XML_HTML_UNKNOWN_TAG,
-		                 "Tag %s invalid\n", name, NULL);
-		}
-
-		/*
-		 * Check for an Empty Element labeled the XML/SGML way
-		 */
-		if ((CUR == '/') && (NXT(1) == '>')) {
-		    SKIP(2);
-		    if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
-			ctxt->sax->endElement(ctxt->userData, name);
-		    htmlnamePop(ctxt);
-		    ctxt->instate = XML_PARSER_CONTENT;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: entering CONTENT\n");
-#endif
-		    break;
-		}
-
-		if (CUR == '>') {
-		    NEXT;
-		} else {
-		    htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
-		                 "Couldn't find end of Start Tag %s\n",
-				 name, NULL);
-
-		    /*
-		     * end of parsing of this node.
-		     */
-		    if (xmlStrEqual(name, ctxt->name)) {
-			nodePop(ctxt);
-			htmlnamePop(ctxt);
-		    }
-
-		    if (ctxt->record_info)
-		        htmlNodeInfoPush(ctxt, &node_info);
-
-		    ctxt->instate = XML_PARSER_CONTENT;
-#ifdef DEBUG_PUSH
-		    xmlGenericError(xmlGenericErrorContext,
-			    "HPP: entering CONTENT\n");
-#endif
-		    break;
-		}
-
-		/*
-		 * Check for an Empty Element from DTD definition
-		 */
-		if ((info != NULL) && (info->empty)) {
-		    if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
-			ctxt->sax->endElement(ctxt->userData, name);
-		    htmlnamePop(ctxt);
-		}
-
-                if (ctxt->record_info)
-	            htmlNodeInfoPush(ctxt, &node_info);
-
-		ctxt->instate = XML_PARSER_CONTENT;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering CONTENT\n");
-#endif
-                break;
-	    }
-            case XML_PARSER_CONTENT: {
-		long cons;
-                /*
-		 * Handle preparsed entities and charRef
-		 */
-		if (ctxt->token != 0) {
-		    xmlChar chr[2] = { 0 , 0 } ;
-
-		    chr[0] = (xmlChar) ctxt->token;
-		    htmlCheckParagraph(ctxt);
-		    if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
-			ctxt->sax->characters(ctxt->userData, chr, 1);
-		    ctxt->token = 0;
-		    ctxt->checkIndex = 0;
-		}
-		if ((avail == 1) && (terminate)) {
-		    cur = in->cur[0];
-		    if ((cur != '<') && (cur != '&')) {
-			if (ctxt->sax != NULL) {
-			    if (IS_BLANK_CH(cur)) {
-				if (ctxt->keepBlanks) {
-				    if (ctxt->sax->characters != NULL)
-					ctxt->sax->characters(
-						ctxt->userData, &in->cur[0], 1);
-				} else {
-				    if (ctxt->sax->ignorableWhitespace != NULL)
-					ctxt->sax->ignorableWhitespace(
-						ctxt->userData, &in->cur[0], 1);
-				}
-			    } else {
-				htmlCheckParagraph(ctxt);
-				if (ctxt->sax->characters != NULL)
-				    ctxt->sax->characters(
-					    ctxt->userData, &in->cur[0], 1);
-			    }
-			}
-			ctxt->token = 0;
-			ctxt->checkIndex = 0;
-			in->cur++;
-			break;
-		    }
-		}
-		if (avail < 2)
-		    goto done;
-		cur = in->cur[0];
-		next = in->cur[1];
-		cons = ctxt->nbChars;
-		if ((xmlStrEqual(ctxt->name, BAD_CAST"script")) ||
-		    (xmlStrEqual(ctxt->name, BAD_CAST"style"))) {
-		    /*
-		     * Handle SCRIPT/STYLE separately
-		     */
-		    if (!terminate) {
-		        int idx;
-			xmlChar val;
-
-			idx = htmlParseLookupSequence(ctxt, '<', '/', 0, 0, 0);
-			if (idx < 0)
-			    goto done;
-		        val = in->cur[idx + 2];
-			if (val == 0) /* bad cut of input */
-			    goto done;
-		    }
-		    htmlParseScript(ctxt);
-		    if ((cur == '<') && (next == '/')) {
-			ctxt->instate = XML_PARSER_END_TAG;
-			ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-			xmlGenericError(xmlGenericErrorContext,
-				"HPP: entering END_TAG\n");
-#endif
-			break;
-		    }
-		} else {
-		    /*
-		     * Sometimes DOCTYPE arrives in the middle of the document
-		     */
-		    if ((cur == '<') && (next == '!') &&
-			(UPP(2) == 'D') && (UPP(3) == 'O') &&
-			(UPP(4) == 'C') && (UPP(5) == 'T') &&
-			(UPP(6) == 'Y') && (UPP(7) == 'P') &&
-			(UPP(8) == 'E')) {
-			if ((!terminate) &&
-			    (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
-			    goto done;
-			htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
-			             "Misplaced DOCTYPE declaration\n",
-				     BAD_CAST "DOCTYPE" , NULL);
-			htmlParseDocTypeDecl(ctxt);
-		    } else if ((cur == '<') && (next == '!') &&
-			(in->cur[2] == '-') && (in->cur[3] == '-')) {
-			if ((!terminate) &&
-			    (htmlParseLookupSequence(
-				ctxt, '-', '-', '>', 1, 1) < 0))
-			    goto done;
-#ifdef DEBUG_PUSH
-			xmlGenericError(xmlGenericErrorContext,
-				"HPP: Parsing Comment\n");
-#endif
-			htmlParseComment(ctxt);
-			ctxt->instate = XML_PARSER_CONTENT;
-		    } else if ((cur == '<') && (next == '?')) {
-			if ((!terminate) &&
-			    (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
-			    goto done;
-#ifdef DEBUG_PUSH
-			xmlGenericError(xmlGenericErrorContext,
-				"HPP: Parsing PI\n");
-#endif
-			htmlParsePI(ctxt);
-			ctxt->instate = XML_PARSER_CONTENT;
-		    } else if ((cur == '<') && (next == '!') && (avail < 4)) {
-			goto done;
-		    } else if ((cur == '<') && (next == '/')) {
-			ctxt->instate = XML_PARSER_END_TAG;
-			ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-			xmlGenericError(xmlGenericErrorContext,
-				"HPP: entering END_TAG\n");
-#endif
-			break;
-		    } else if (cur == '<') {
-			ctxt->instate = XML_PARSER_START_TAG;
-			ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-			xmlGenericError(xmlGenericErrorContext,
-				"HPP: entering START_TAG\n");
-#endif
-			break;
-		    } else if (cur == '&') {
-			if ((!terminate) &&
-			    (htmlParseLookupChars(ctxt,
-                                                  BAD_CAST "; >/", 4) < 0))
-			    goto done;
-#ifdef DEBUG_PUSH
-			xmlGenericError(xmlGenericErrorContext,
-				"HPP: Parsing Reference\n");
-#endif
-			/* TODO: check generation of subtrees if noent !!! */
-			htmlParseReference(ctxt);
-		    } else {
-		        /*
-			 * check that the text sequence is complete
-			 * before handing out the data to the parser
-			 * to avoid problems with erroneous end of
-			 * data detection.
-			 */
-			if ((!terminate) &&
-                            (htmlParseLookupChars(ctxt, BAD_CAST "<&", 2) < 0))
-			    goto done;
-			ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-			xmlGenericError(xmlGenericErrorContext,
-				"HPP: Parsing char data\n");
-#endif
-			htmlParseCharData(ctxt);
-		    }
-		}
-		if (cons == ctxt->nbChars) {
-		    if (ctxt->node != NULL) {
-			htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-			             "detected an error in element content\n",
-				     NULL, NULL);
-		    }
-		    NEXT;
-		    break;
-		}
-
-		break;
-	    }
-            case XML_PARSER_END_TAG:
-		if (avail < 2)
-		    goto done;
-		if ((!terminate) &&
-		    (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
-		    goto done;
-		htmlParseEndTag(ctxt);
-		if (ctxt->nameNr == 0) {
-		    ctxt->instate = XML_PARSER_EPILOG;
-		} else {
-		    ctxt->instate = XML_PARSER_CONTENT;
-		}
-		ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering CONTENT\n");
-#endif
-	        break;
-            case XML_PARSER_CDATA_SECTION:
-		htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-			"HPP: internal error, state == CDATA\n",
-			     NULL, NULL);
-		ctxt->instate = XML_PARSER_CONTENT;
-		ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering CONTENT\n");
-#endif
-		break;
-            case XML_PARSER_DTD:
-		htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-			"HPP: internal error, state == DTD\n",
-			     NULL, NULL);
-		ctxt->instate = XML_PARSER_CONTENT;
-		ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering CONTENT\n");
-#endif
-		break;
-            case XML_PARSER_COMMENT:
-		htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-			"HPP: internal error, state == COMMENT\n",
-			     NULL, NULL);
-		ctxt->instate = XML_PARSER_CONTENT;
-		ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering CONTENT\n");
-#endif
-		break;
-            case XML_PARSER_PI:
-		htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-			"HPP: internal error, state == PI\n",
-			     NULL, NULL);
-		ctxt->instate = XML_PARSER_CONTENT;
-		ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering CONTENT\n");
-#endif
-		break;
-            case XML_PARSER_ENTITY_DECL:
-		htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-			"HPP: internal error, state == ENTITY_DECL\n",
-			     NULL, NULL);
-		ctxt->instate = XML_PARSER_CONTENT;
-		ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering CONTENT\n");
-#endif
-		break;
-            case XML_PARSER_ENTITY_VALUE:
-		htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-			"HPP: internal error, state == ENTITY_VALUE\n",
-			     NULL, NULL);
-		ctxt->instate = XML_PARSER_CONTENT;
-		ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering DTD\n");
-#endif
-		break;
-            case XML_PARSER_ATTRIBUTE_VALUE:
-		htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-			"HPP: internal error, state == ATTRIBUTE_VALUE\n",
-			     NULL, NULL);
-		ctxt->instate = XML_PARSER_START_TAG;
-		ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering START_TAG\n");
-#endif
-		break;
-	    case XML_PARSER_SYSTEM_LITERAL:
-		htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-		    "HPP: internal error, state == XML_PARSER_SYSTEM_LITERAL\n",
-			     NULL, NULL);
-		ctxt->instate = XML_PARSER_CONTENT;
-		ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering CONTENT\n");
-#endif
-		break;
-	    case XML_PARSER_IGNORE:
-		htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-			"HPP: internal error, state == XML_PARSER_IGNORE\n",
-			     NULL, NULL);
-		ctxt->instate = XML_PARSER_CONTENT;
-		ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering CONTENT\n");
-#endif
-		break;
-	    case XML_PARSER_PUBLIC_LITERAL:
-		htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-			"HPP: internal error, state == XML_PARSER_LITERAL\n",
-			     NULL, NULL);
-		ctxt->instate = XML_PARSER_CONTENT;
-		ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
-		xmlGenericError(xmlGenericErrorContext,
-			"HPP: entering CONTENT\n");
-#endif
-		break;
-
-	}
-    }
-done:
-    if ((avail == 0) && (terminate)) {
-	htmlAutoCloseOnEnd(ctxt);
-	if ((ctxt->nameNr == 0) && (ctxt->instate != XML_PARSER_EOF)) {
-	    /*
-	     * SAX: end of the document processing.
-	     */
-	    ctxt->instate = XML_PARSER_EOF;
-	    if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
-		ctxt->sax->endDocument(ctxt->userData);
-	}
-    }
-    if ((!(ctxt->options & HTML_PARSE_NODEFDTD)) && (ctxt->myDoc != NULL) &&
-	((terminate) || (ctxt->instate == XML_PARSER_EOF) ||
-	 (ctxt->instate == XML_PARSER_EPILOG))) {
-	xmlDtdPtr dtd;
-	dtd = xmlGetIntSubset(ctxt->myDoc);
-	if (dtd == NULL)
-	    ctxt->myDoc->intSubset =
-		xmlCreateIntSubset(ctxt->myDoc, BAD_CAST "html",
-		    BAD_CAST "-//W3C//DTD HTML 4.0 Transitional//EN",
-		    BAD_CAST "http://www.w3.org/TR/REC-html40/loose.dtd");
-    }
-#ifdef DEBUG_PUSH
-    xmlGenericError(xmlGenericErrorContext, "HPP: done %d\n", ret);
-#endif
-    return(ret);
-}
-
-/**
- * htmlParseChunk:
- * @ctxt:  an HTML parser context
- * @chunk:  an char array
- * @size:  the size in byte of the chunk
- * @terminate:  last chunk indicator
- *
- * Parse a Chunk of memory
- *
- * Returns zero if no error, the xmlParserErrors otherwise.
- */
-int
-htmlParseChunk(htmlParserCtxtPtr ctxt, const char *chunk, int size,
-              int terminate) {
-    if ((ctxt == NULL) || (ctxt->input == NULL)) {
-	htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
-		     "htmlParseChunk: context error\n", NULL, NULL);
-	return(XML_ERR_INTERNAL_ERROR);
-    }
-    if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) &&
-        (ctxt->input->buf != NULL) && (ctxt->instate != XML_PARSER_EOF))  {
-	size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, ctxt->input);
-	size_t cur = ctxt->input->cur - ctxt->input->base;
-	int res;
-
-	res = xmlParserInputBufferPush(ctxt->input->buf, size, chunk);
-	if (res < 0) {
-	    ctxt->errNo = XML_PARSER_EOF;
-	    ctxt->disableSAX = 1;
-	    return (XML_PARSER_EOF);
-	}
-        xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, base, cur);
-#ifdef DEBUG_PUSH
-	xmlGenericError(xmlGenericErrorContext, "HPP: pushed %d\n", size);
-#endif
-
-#if 0
-	if ((terminate) || (ctxt->input->buf->buffer->use > 80))
-	    htmlParseTryOrFinish(ctxt, terminate);
-#endif
-    } else if (ctxt->instate != XML_PARSER_EOF) {
-	if ((ctxt->input != NULL) && ctxt->input->buf != NULL) {
-	    xmlParserInputBufferPtr in = ctxt->input->buf;
-	    if ((in->encoder != NULL) && (in->buffer != NULL) &&
-		    (in->raw != NULL)) {
-		int nbchars;
-		size_t base = xmlBufGetInputBase(in->buffer, ctxt->input);
-		size_t current = ctxt->input->cur - ctxt->input->base;
-
-		nbchars = xmlCharEncInput(in, terminate);
-		if (nbchars < 0) {
-		    htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
-			         "encoder error\n", NULL, NULL);
-		    return(XML_ERR_INVALID_ENCODING);
-		}
-		xmlBufSetInputBaseCur(in->buffer, ctxt->input, base, current);
-	    }
-	}
-    }
-    htmlParseTryOrFinish(ctxt, terminate);
-    if (terminate) {
-	if ((ctxt->instate != XML_PARSER_EOF) &&
-	    (ctxt->instate != XML_PARSER_EPILOG) &&
-	    (ctxt->instate != XML_PARSER_MISC)) {
-	    ctxt->errNo = XML_ERR_DOCUMENT_END;
-	    ctxt->wellFormed = 0;
-	}
-	if (ctxt->instate != XML_PARSER_EOF) {
-	    if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
-		ctxt->sax->endDocument(ctxt->userData);
-	}
-	ctxt->instate = XML_PARSER_EOF;
-    }
-    return((xmlParserErrors) ctxt->errNo);
-}
-
-/************************************************************************
- *									*
- *			User entry points				*
- *									*
- ************************************************************************/
-
-/**
- * htmlCreatePushParserCtxt:
- * @sax:  a SAX handler
- * @user_data:  The user data returned on SAX callbacks
- * @chunk:  a pointer to an array of chars
- * @size:  number of chars in the array
- * @filename:  an optional file name or URI
- * @enc:  an optional encoding
- *
- * Create a parser context for using the HTML parser in push mode
- * The value of @filename is used for fetching external entities
- * and error/warning reports.
- *
- * Returns the new parser context or NULL
- */
-htmlParserCtxtPtr
-htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax, void *user_data,
-                         const char *chunk, int size, const char *filename,
-			 xmlCharEncoding enc) {
-    htmlParserCtxtPtr ctxt;
-    htmlParserInputPtr inputStream;
-    xmlParserInputBufferPtr buf;
-
-    xmlInitParser();
-
-    buf = xmlAllocParserInputBuffer(enc);
-    if (buf == NULL) return(NULL);
-
-    ctxt = htmlNewParserCtxt();
-    if (ctxt == NULL) {
-	xmlFreeParserInputBuffer(buf);
-	return(NULL);
-    }
-    if(enc==XML_CHAR_ENCODING_UTF8 || buf->encoder)
-	ctxt->charset=XML_CHAR_ENCODING_UTF8;
-    if (sax != NULL) {
-	if (ctxt->sax != (xmlSAXHandlerPtr) &htmlDefaultSAXHandler)
-	    xmlFree(ctxt->sax);
-	ctxt->sax = (htmlSAXHandlerPtr) xmlMalloc(sizeof(htmlSAXHandler));
-	if (ctxt->sax == NULL) {
-	    xmlFree(buf);
-	    xmlFree(ctxt);
-	    return(NULL);
-	}
-	memcpy(ctxt->sax, sax, sizeof(htmlSAXHandler));
-	if (user_data != NULL)
-	    ctxt->userData = user_data;
-    }
-    if (filename == NULL) {
-	ctxt->directory = NULL;
-    } else {
-        ctxt->directory = xmlParserGetDirectory(filename);
-    }
-
-    inputStream = htmlNewInputStream(ctxt);
-    if (inputStream == NULL) {
-	xmlFreeParserCtxt(ctxt);
-	xmlFree(buf);
-	return(NULL);
-    }
-
-    if (filename == NULL)
-	inputStream->filename = NULL;
-    else
-	inputStream->filename = (char *)
-	    xmlCanonicPath((const xmlChar *) filename);
-    inputStream->buf = buf;
-    xmlBufResetInput(buf->buffer, inputStream);
-
-    inputPush(ctxt, inputStream);
-
-    if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) &&
-        (ctxt->input->buf != NULL))  {
-	size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, ctxt->input);
-	size_t cur = ctxt->input->cur - ctxt->input->base;
-
-	xmlParserInputBufferPush(ctxt->input->buf, size, chunk);
-
-        xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, base, cur);
-#ifdef DEBUG_PUSH
-	xmlGenericError(xmlGenericErrorContext, "HPP: pushed %d\n", size);
-#endif
-    }
-    ctxt->progressive = 1;
-
-    return(ctxt);
-}
-#endif /* LIBXML_PUSH_ENABLED */
-
-/**
- * htmlSAXParseDoc:
- * @cur:  a pointer to an array of xmlChar
- * @encoding:  a free form C string describing the HTML document encoding, or NULL
- * @sax:  the SAX handler block
- * @userData: if using SAX, this pointer will be provided on callbacks.
- *
- * Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks
- * to handle parse events. If sax is NULL, fallback to the default DOM
- * behavior and return a tree.
- *
- * Returns the resulting document tree unless SAX is NULL or the document is
- *     not well formed.
- */
-
-htmlDocPtr
-htmlSAXParseDoc(xmlChar *cur, const char *encoding, htmlSAXHandlerPtr sax, void *userData) {
-    htmlDocPtr ret;
-    htmlParserCtxtPtr ctxt;
-
-    xmlInitParser();
-
-    if (cur == NULL) return(NULL);
-
-
-    ctxt = htmlCreateDocParserCtxt(cur, encoding);
-    if (ctxt == NULL) return(NULL);
-    if (sax != NULL) {
-        if (ctxt->sax != NULL) xmlFree (ctxt->sax);
-        ctxt->sax = sax;
-        ctxt->userData = userData;
-    }
-
-    htmlParseDocument(ctxt);
-    ret = ctxt->myDoc;
-    if (sax != NULL) {
-	ctxt->sax = NULL;
-	ctxt->userData = NULL;
-    }
-    htmlFreeParserCtxt(ctxt);
-
-    return(ret);
-}
-
-/**
- * htmlParseDoc:
- * @cur:  a pointer to an array of xmlChar
- * @encoding:  a free form C string describing the HTML document encoding, or NULL
- *
- * parse an HTML in-memory document and build a tree.
- *
- * Returns the resulting document tree
- */
-
-htmlDocPtr
-htmlParseDoc(xmlChar *cur, const char *encoding) {
-    return(htmlSAXParseDoc(cur, encoding, NULL, NULL));
-}
-
-
-/**
- * htmlCreateFileParserCtxt:
- * @filename:  the filename
- * @encoding:  a free form C string describing the HTML document encoding, or NULL
- *
- * Create a parser context for a file content.
- * Automatic support for ZLIB/Compress compressed document is provided
- * by default if found at compile-time.
- *
- * Returns the new parser context or NULL
- */
-htmlParserCtxtPtr
-htmlCreateFileParserCtxt(const char *filename, const char *encoding)
-{
-    htmlParserCtxtPtr ctxt;
-    htmlParserInputPtr inputStream;
-    char *canonicFilename;
-    /* htmlCharEncoding enc; */
-    xmlChar *content, *content_line = (xmlChar *) "charset=";
-
-    if (filename == NULL)
-        return(NULL);
-
-    ctxt = htmlNewParserCtxt();
-    if (ctxt == NULL) {
-	return(NULL);
-    }
-    canonicFilename = (char *) xmlCanonicPath((const xmlChar *) filename);
-    if (canonicFilename == NULL) {
-#ifdef LIBXML_SAX1_ENABLED
-	if (xmlDefaultSAXHandler.error != NULL) {
-	    xmlDefaultSAXHandler.error(NULL, "out of memory\n");
-	}
-#endif
-	xmlFreeParserCtxt(ctxt);
-	return(NULL);
-    }
-
-    inputStream = xmlLoadExternalEntity(canonicFilename, NULL, ctxt);
-    xmlFree(canonicFilename);
-    if (inputStream == NULL) {
-	xmlFreeParserCtxt(ctxt);
-	return(NULL);
-    }
-
-    inputPush(ctxt, inputStream);
-
-    /* set encoding */
-    if (encoding) {
-        size_t l = strlen(encoding);
-
-	if (l < 1000) {
-	    content = xmlMallocAtomic (xmlStrlen(content_line) + l + 1);
-	    if (content) {
-		strcpy ((char *)content, (char *)content_line);
-		strcat ((char *)content, (char *)encoding);
-		htmlCheckEncoding (ctxt, content);
-		xmlFree (content);
-	    }
-	}
-    }
-
-    return(ctxt);
-}
-
-/**
- * htmlSAXParseFile:
- * @filename:  the filename
- * @encoding:  a free form C string describing the HTML document encoding, or NULL
- * @sax:  the SAX handler block
- * @userData: if using SAX, this pointer will be provided on callbacks.
- *
- * parse an HTML file and build a tree. Automatic support for ZLIB/Compress
- * compressed document is provided by default if found at compile-time.
- * It use the given SAX function block to handle the parsing callback.
- * If sax is NULL, fallback to the default DOM tree building routines.
- *
- * Returns the resulting document tree unless SAX is NULL or the document is
- *     not well formed.
- */
-
-htmlDocPtr
-htmlSAXParseFile(const char *filename, const char *encoding, htmlSAXHandlerPtr sax,
-                 void *userData) {
-    htmlDocPtr ret;
-    htmlParserCtxtPtr ctxt;
-    htmlSAXHandlerPtr oldsax = NULL;
-
-    xmlInitParser();
-
-    ctxt = htmlCreateFileParserCtxt(filename, encoding);
-    if (ctxt == NULL) return(NULL);
-    if (sax != NULL) {
-	oldsax = ctxt->sax;
-        ctxt->sax = sax;
-        ctxt->userData = userData;
-    }
-
-    htmlParseDocument(ctxt);
-
-    ret = ctxt->myDoc;
-    if (sax != NULL) {
-        ctxt->sax = oldsax;
-        ctxt->userData = NULL;
-    }
-    htmlFreeParserCtxt(ctxt);
-
-    return(ret);
-}
-
-/**
- * htmlParseFile:
- * @filename:  the filename
- * @encoding:  a free form C string describing the HTML document encoding, or NULL
- *
- * parse an HTML file and build a tree. Automatic support for ZLIB/Compress
- * compressed document is provided by default if found at compile-time.
- *
- * Returns the resulting document tree
- */
-
-htmlDocPtr
-htmlParseFile(const char *filename, const char *encoding) {
-    return(htmlSAXParseFile(filename, encoding, NULL, NULL));
-}
-
-/**
- * htmlHandleOmittedElem:
- * @val:  int 0 or 1
- *
- * Set and return the previous value for handling HTML omitted tags.
- *
- * Returns the last value for 0 for no handling, 1 for auto insertion.
- */
-
-int
-htmlHandleOmittedElem(int val) {
-    int old = htmlOmittedDefaultValue;
-
-    htmlOmittedDefaultValue = val;
-    return(old);
-}
-
-/**
- * htmlElementAllowedHere:
- * @parent: HTML parent element
- * @elt: HTML element
- *
- * Checks whether an HTML element may be a direct child of a parent element.
- * Note - doesn't check for deprecated elements
- *
- * Returns 1 if allowed; 0 otherwise.
- */
-int
-htmlElementAllowedHere(const htmlElemDesc* parent, const xmlChar* elt) {
-  const char** p ;
-
-  if ( ! elt || ! parent || ! parent->subelts )
-	return 0 ;
-
-  for ( p = parent->subelts; *p; ++p )
-    if ( !xmlStrcmp((const xmlChar *)*p, elt) )
-      return 1 ;
-
-  return 0 ;
-}
-/**
- * htmlElementStatusHere:
- * @parent: HTML parent element
- * @elt: HTML element
- *
- * Checks whether an HTML element may be a direct child of a parent element.
- * and if so whether it is valid or deprecated.
- *
- * Returns one of HTML_VALID, HTML_DEPRECATED, HTML_INVALID
- */
-htmlStatus
-htmlElementStatusHere(const htmlElemDesc* parent, const htmlElemDesc* elt) {
-  if ( ! parent || ! elt )
-    return HTML_INVALID ;
-  if ( ! htmlElementAllowedHere(parent, (const xmlChar*) elt->name ) )
-    return HTML_INVALID ;
-
-  return ( elt->dtd == 0 ) ? HTML_VALID : HTML_DEPRECATED ;
-}
-/**
- * htmlAttrAllowed:
- * @elt: HTML element
- * @attr: HTML attribute
- * @legacy: whether to allow deprecated attributes
- *
- * Checks whether an attribute is valid for an element
- * Has full knowledge of Required and Deprecated attributes
- *
- * Returns one of HTML_REQUIRED, HTML_VALID, HTML_DEPRECATED, HTML_INVALID
- */
-htmlStatus
-htmlAttrAllowed(const htmlElemDesc* elt, const xmlChar* attr, int legacy) {
-  const char** p ;
-
-  if ( !elt || ! attr )
-	return HTML_INVALID ;
-
-  if ( elt->attrs_req )
-    for ( p = elt->attrs_req; *p; ++p)
-      if ( !xmlStrcmp((const xmlChar*)*p, attr) )
-        return HTML_REQUIRED ;
-
-  if ( elt->attrs_opt )
-    for ( p = elt->attrs_opt; *p; ++p)
-      if ( !xmlStrcmp((const xmlChar*)*p, attr) )
-        return HTML_VALID ;
-
-  if ( legacy && elt->attrs_depr )
-    for ( p = elt->attrs_depr; *p; ++p)
-      if ( !xmlStrcmp((const xmlChar*)*p, attr) )
-        return HTML_DEPRECATED ;
-
-  return HTML_INVALID ;
-}
-/**
- * htmlNodeStatus:
- * @node: an htmlNodePtr in a tree
- * @legacy: whether to allow deprecated elements (YES is faster here
- *	for Element nodes)
- *
- * Checks whether the tree node is valid.  Experimental (the author
- *     only uses the HTML enhancements in a SAX parser)
- *
- * Return: for Element nodes, a return from htmlElementAllowedHere (if
- *	legacy allowed) or htmlElementStatusHere (otherwise).
- *	for Attribute nodes, a return from htmlAttrAllowed
- *	for other nodes, HTML_NA (no checks performed)
- */
-htmlStatus
-htmlNodeStatus(const htmlNodePtr node, int legacy) {
-  if ( ! node )
-    return HTML_INVALID ;
-
-  switch ( node->type ) {
-    case XML_ELEMENT_NODE:
-      return legacy
-	? ( htmlElementAllowedHere (
-		htmlTagLookup(node->parent->name) , node->name
-		) ? HTML_VALID : HTML_INVALID )
-	: htmlElementStatusHere(
-		htmlTagLookup(node->parent->name) ,
-		htmlTagLookup(node->name) )
-	;
-    case XML_ATTRIBUTE_NODE:
-      return htmlAttrAllowed(
-	htmlTagLookup(node->parent->name) , node->name, legacy) ;
-    default: return HTML_NA ;
-  }
-}
-/************************************************************************
- *									*
- *	New set (2.6.0) of simpler and more flexible APIs		*
- *									*
- ************************************************************************/
-/**
- * DICT_FREE:
- * @str:  a string
- *
- * Free a string if it is not owned by the "dict" dictionary in the
- * current scope
- */
-#define DICT_FREE(str)						\
-	if ((str) && ((!dict) ||				\
-	    (xmlDictOwns(dict, (const xmlChar *)(str)) == 0)))	\
-	    xmlFree((char *)(str));
-
-/**
- * htmlCtxtReset:
- * @ctxt: an HTML parser context
- *
- * Reset a parser context
- */
-void
-htmlCtxtReset(htmlParserCtxtPtr ctxt)
-{
-    xmlParserInputPtr input;
-    xmlDictPtr dict;
-
-    if (ctxt == NULL)
-        return;
-
-    xmlInitParser();
-    dict = ctxt->dict;
-
-    while ((input = inputPop(ctxt)) != NULL) { /* Non consuming */
-        xmlFreeInputStream(input);
-    }
-    ctxt->inputNr = 0;
-    ctxt->input = NULL;
-
-    ctxt->spaceNr = 0;
-    if (ctxt->spaceTab != NULL) {
-	ctxt->spaceTab[0] = -1;
-	ctxt->space = &ctxt->spaceTab[0];
-    } else {
-	ctxt->space = NULL;
-    }
-
-
-    ctxt->nodeNr = 0;
-    ctxt->node = NULL;
-
-    ctxt->nameNr = 0;
-    ctxt->name = NULL;
-
-    DICT_FREE(ctxt->version);
-    ctxt->version = NULL;
-    DICT_FREE(ctxt->encoding);
-    ctxt->encoding = NULL;
-    DICT_FREE(ctxt->directory);
-    ctxt->directory = NULL;
-    DICT_FREE(ctxt->extSubURI);
-    ctxt->extSubURI = NULL;
-    DICT_FREE(ctxt->extSubSystem);
-    ctxt->extSubSystem = NULL;
-    if (ctxt->myDoc != NULL)
-        xmlFreeDoc(ctxt->myDoc);
-    ctxt->myDoc = NULL;
-
-    ctxt->standalone = -1;
-    ctxt->hasExternalSubset = 0;
-    ctxt->hasPErefs = 0;
-    ctxt->html = 1;
-    ctxt->external = 0;
-    ctxt->instate = XML_PARSER_START;
-    ctxt->token = 0;
-
-    ctxt->wellFormed = 1;
-    ctxt->nsWellFormed = 1;
-    ctxt->disableSAX = 0;
-    ctxt->valid = 1;
-    ctxt->vctxt.userData = ctxt;
-    ctxt->vctxt.error = xmlParserValidityError;
-    ctxt->vctxt.warning = xmlParserValidityWarning;
-    ctxt->record_info = 0;
-    ctxt->nbChars = 0;
-    ctxt->checkIndex = 0;
-    ctxt->inSubset = 0;
-    ctxt->errNo = XML_ERR_OK;
-    ctxt->depth = 0;
-    ctxt->charset = XML_CHAR_ENCODING_NONE;
-    ctxt->catalogs = NULL;
-    xmlInitNodeInfoSeq(&ctxt->node_seq);
-
-    if (ctxt->attsDefault != NULL) {
-        xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
-        ctxt->attsDefault = NULL;
-    }
-    if (ctxt->attsSpecial != NULL) {
-        xmlHashFree(ctxt->attsSpecial, NULL);
-        ctxt->attsSpecial = NULL;
-    }
-}
-
-/**
- * htmlCtxtUseOptions:
- * @ctxt: an HTML parser context
- * @options:  a combination of htmlParserOption(s)
- *
- * Applies the options to the parser context
- *
- * Returns 0 in case of success, the set of unknown or unimplemented options
- *         in case of error.
- */
-int
-htmlCtxtUseOptions(htmlParserCtxtPtr ctxt, int options)
-{
-    if (ctxt == NULL)
-        return(-1);
-
-    if (options & HTML_PARSE_NOWARNING) {
-        ctxt->sax->warning = NULL;
-        ctxt->vctxt.warning = NULL;
-        options -= XML_PARSE_NOWARNING;
-	ctxt->options |= XML_PARSE_NOWARNING;
-    }
-    if (options & HTML_PARSE_NOERROR) {
-        ctxt->sax->error = NULL;
-        ctxt->vctxt.error = NULL;
-        ctxt->sax->fatalError = NULL;
-        options -= XML_PARSE_NOERROR;
-	ctxt->options |= XML_PARSE_NOERROR;
-    }
-    if (options & HTML_PARSE_PEDANTIC) {
-        ctxt->pedantic = 1;
-        options -= XML_PARSE_PEDANTIC;
-	ctxt->options |= XML_PARSE_PEDANTIC;
-    } else
-        ctxt->pedantic = 0;
-    if (options & XML_PARSE_NOBLANKS) {
-        ctxt->keepBlanks = 0;
-        ctxt->sax->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
-        options -= XML_PARSE_NOBLANKS;
-	ctxt->options |= XML_PARSE_NOBLANKS;
-    } else
-        ctxt->keepBlanks = 1;
-    if (options & HTML_PARSE_RECOVER) {
-        ctxt->recovery = 1;
-	options -= HTML_PARSE_RECOVER;
-    } else
-        ctxt->recovery = 0;
-    if (options & HTML_PARSE_COMPACT) {
-	ctxt->options |= HTML_PARSE_COMPACT;
-        options -= HTML_PARSE_COMPACT;
-    }
-    if (options & XML_PARSE_HUGE) {
-	ctxt->options |= XML_PARSE_HUGE;
-        options -= XML_PARSE_HUGE;
-    }
-    if (options & HTML_PARSE_NODEFDTD) {
-	ctxt->options |= HTML_PARSE_NODEFDTD;
-        options -= HTML_PARSE_NODEFDTD;
-    }
-    if (options & HTML_PARSE_IGNORE_ENC) {
-	ctxt->options |= HTML_PARSE_IGNORE_ENC;
-        options -= HTML_PARSE_IGNORE_ENC;
-    }
-    if (options & HTML_PARSE_NOIMPLIED) {
-        ctxt->options |= HTML_PARSE_NOIMPLIED;
-        options -= HTML_PARSE_NOIMPLIED;
-    }
-    ctxt->dictNames = 0;
-    return (options);
-}
-
-/**
- * htmlDoRead:
- * @ctxt:  an HTML parser context
- * @URL:  the base URL to use for the document
- * @encoding:  the document encoding, or NULL
- * @options:  a combination of htmlParserOption(s)
- * @reuse:  keep the context for reuse
- *
- * Common front-end for the htmlRead functions
- *
- * Returns the resulting document tree or NULL
- */
-static htmlDocPtr
-htmlDoRead(htmlParserCtxtPtr ctxt, const char *URL, const char *encoding,
-          int options, int reuse)
-{
-    htmlDocPtr ret;
-
-    htmlCtxtUseOptions(ctxt, options);
-    ctxt->html = 1;
-    if (encoding != NULL) {
-        xmlCharEncodingHandlerPtr hdlr;
-
-	hdlr = xmlFindCharEncodingHandler(encoding);
-	if (hdlr != NULL) {
-	    xmlSwitchToEncoding(ctxt, hdlr);
-	    if (ctxt->input->encoding != NULL)
-	      xmlFree((xmlChar *) ctxt->input->encoding);
-            ctxt->input->encoding = xmlStrdup((xmlChar *)encoding);
-        }
-    }
-    if ((URL != NULL) && (ctxt->input != NULL) &&
-        (ctxt->input->filename == NULL))
-        ctxt->input->filename = (char *) xmlStrdup((const xmlChar *) URL);
-    htmlParseDocument(ctxt);
-    ret = ctxt->myDoc;
-    ctxt->myDoc = NULL;
-    if (!reuse) {
-        if ((ctxt->dictNames) &&
-	    (ret != NULL) &&
-	    (ret->dict == ctxt->dict))
-	    ctxt->dict = NULL;
-	xmlFreeParserCtxt(ctxt);
-    }
-    return (ret);
-}
-
-/**
- * htmlReadDoc:
- * @cur:  a pointer to a zero terminated string
- * @URL:  the base URL to use for the document
- * @encoding:  the document encoding, or NULL
- * @options:  a combination of htmlParserOption(s)
- *
- * parse an XML in-memory document and build a tree.
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlReadDoc(const xmlChar * cur, const char *URL, const char *encoding, int options)
-{
-    htmlParserCtxtPtr ctxt;
-
-    if (cur == NULL)
-        return (NULL);
-
-    xmlInitParser();
-    ctxt = htmlCreateDocParserCtxt(cur, NULL);
-    if (ctxt == NULL)
-        return (NULL);
-    return (htmlDoRead(ctxt, URL, encoding, options, 0));
-}
-
-/**
- * htmlReadFile:
- * @filename:  a file or URL
- * @encoding:  the document encoding, or NULL
- * @options:  a combination of htmlParserOption(s)
- *
- * parse an XML file from the filesystem or the network.
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlReadFile(const char *filename, const char *encoding, int options)
-{
-    htmlParserCtxtPtr ctxt;
-
-    xmlInitParser();
-    ctxt = htmlCreateFileParserCtxt(filename, encoding);
-    if (ctxt == NULL)
-        return (NULL);
-    return (htmlDoRead(ctxt, NULL, NULL, options, 0));
-}
-
-/**
- * htmlReadMemory:
- * @buffer:  a pointer to a char array
- * @size:  the size of the array
- * @URL:  the base URL to use for the document
- * @encoding:  the document encoding, or NULL
- * @options:  a combination of htmlParserOption(s)
- *
- * parse an XML in-memory document and build a tree.
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlReadMemory(const char *buffer, int size, const char *URL, const char *encoding, int options)
-{
-    htmlParserCtxtPtr ctxt;
-
-    xmlInitParser();
-    ctxt = xmlCreateMemoryParserCtxt(buffer, size);
-    if (ctxt == NULL)
-        return (NULL);
-    htmlDefaultSAXHandlerInit();
-    if (ctxt->sax != NULL)
-        memcpy(ctxt->sax, &htmlDefaultSAXHandler, sizeof(xmlSAXHandlerV1));
-    return (htmlDoRead(ctxt, URL, encoding, options, 0));
-}
-
-/**
- * htmlReadFd:
- * @fd:  an open file descriptor
- * @URL:  the base URL to use for the document
- * @encoding:  the document encoding, or NULL
- * @options:  a combination of htmlParserOption(s)
- *
- * parse an XML from a file descriptor and build a tree.
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlReadFd(int fd, const char *URL, const char *encoding, int options)
-{
-    htmlParserCtxtPtr ctxt;
-    xmlParserInputBufferPtr input;
-    xmlParserInputPtr stream;
-
-    if (fd < 0)
-        return (NULL);
-    xmlInitParser();
-
-    xmlInitParser();
-    input = xmlParserInputBufferCreateFd(fd, XML_CHAR_ENCODING_NONE);
-    if (input == NULL)
-        return (NULL);
-    ctxt = xmlNewParserCtxt();
-    if (ctxt == NULL) {
-        xmlFreeParserInputBuffer(input);
-        return (NULL);
-    }
-    stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
-    if (stream == NULL) {
-        xmlFreeParserInputBuffer(input);
-	xmlFreeParserCtxt(ctxt);
-        return (NULL);
-    }
-    inputPush(ctxt, stream);
-    return (htmlDoRead(ctxt, URL, encoding, options, 0));
-}
-
-/**
- * htmlReadIO:
- * @ioread:  an I/O read function
- * @ioclose:  an I/O close function
- * @ioctx:  an I/O handler
- * @URL:  the base URL to use for the document
- * @encoding:  the document encoding, or NULL
- * @options:  a combination of htmlParserOption(s)
- *
- * parse an HTML document from I/O functions and source and build a tree.
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlReadIO(xmlInputReadCallback ioread, xmlInputCloseCallback ioclose,
-          void *ioctx, const char *URL, const char *encoding, int options)
-{
-    htmlParserCtxtPtr ctxt;
-    xmlParserInputBufferPtr input;
-    xmlParserInputPtr stream;
-
-    if (ioread == NULL)
-        return (NULL);
-    xmlInitParser();
-
-    input = xmlParserInputBufferCreateIO(ioread, ioclose, ioctx,
-                                         XML_CHAR_ENCODING_NONE);
-    if (input == NULL) {
-        if (ioclose != NULL)
-            ioclose(ioctx);
-        return (NULL);
-    }
-    ctxt = htmlNewParserCtxt();
-    if (ctxt == NULL) {
-        xmlFreeParserInputBuffer(input);
-        return (NULL);
-    }
-    stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
-    if (stream == NULL) {
-        xmlFreeParserInputBuffer(input);
-	xmlFreeParserCtxt(ctxt);
-        return (NULL);
-    }
-    inputPush(ctxt, stream);
-    return (htmlDoRead(ctxt, URL, encoding, options, 0));
-}
-
-/**
- * htmlCtxtReadDoc:
- * @ctxt:  an HTML parser context
- * @cur:  a pointer to a zero terminated string
- * @URL:  the base URL to use for the document
- * @encoding:  the document encoding, or NULL
- * @options:  a combination of htmlParserOption(s)
- *
- * parse an XML in-memory document and build a tree.
- * This reuses the existing @ctxt parser context
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlCtxtReadDoc(htmlParserCtxtPtr ctxt, const xmlChar * cur,
-               const char *URL, const char *encoding, int options)
-{
-    xmlParserInputPtr stream;
-
-    if (cur == NULL)
-        return (NULL);
-    if (ctxt == NULL)
-        return (NULL);
-    xmlInitParser();
-
-    htmlCtxtReset(ctxt);
-
-    stream = xmlNewStringInputStream(ctxt, cur);
-    if (stream == NULL) {
-        return (NULL);
-    }
-    inputPush(ctxt, stream);
-    return (htmlDoRead(ctxt, URL, encoding, options, 1));
-}
-
-/**
- * htmlCtxtReadFile:
- * @ctxt:  an HTML parser context
- * @filename:  a file or URL
- * @encoding:  the document encoding, or NULL
- * @options:  a combination of htmlParserOption(s)
- *
- * parse an XML file from the filesystem or the network.
- * This reuses the existing @ctxt parser context
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlCtxtReadFile(htmlParserCtxtPtr ctxt, const char *filename,
-                const char *encoding, int options)
-{
-    xmlParserInputPtr stream;
-
-    if (filename == NULL)
-        return (NULL);
-    if (ctxt == NULL)
-        return (NULL);
-    xmlInitParser();
-
-    htmlCtxtReset(ctxt);
-
-    stream = xmlLoadExternalEntity(filename, NULL, ctxt);
-    if (stream == NULL) {
-        return (NULL);
-    }
-    inputPush(ctxt, stream);
-    return (htmlDoRead(ctxt, NULL, encoding, options, 1));
-}
-
-/**
- * htmlCtxtReadMemory:
- * @ctxt:  an HTML parser context
- * @buffer:  a pointer to a char array
- * @size:  the size of the array
- * @URL:  the base URL to use for the document
- * @encoding:  the document encoding, or NULL
- * @options:  a combination of htmlParserOption(s)
- *
- * parse an XML in-memory document and build a tree.
- * This reuses the existing @ctxt parser context
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlCtxtReadMemory(htmlParserCtxtPtr ctxt, const char *buffer, int size,
-                  const char *URL, const char *encoding, int options)
-{
-    xmlParserInputBufferPtr input;
-    xmlParserInputPtr stream;
-
-    if (ctxt == NULL)
-        return (NULL);
-    if (buffer == NULL)
-        return (NULL);
-    xmlInitParser();
-
-    htmlCtxtReset(ctxt);
-
-    input = xmlParserInputBufferCreateMem(buffer, size, XML_CHAR_ENCODING_NONE);
-    if (input == NULL) {
-	return(NULL);
-    }
-
-    stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
-    if (stream == NULL) {
-	xmlFreeParserInputBuffer(input);
-	return(NULL);
-    }
-
-    inputPush(ctxt, stream);
-    return (htmlDoRead(ctxt, URL, encoding, options, 1));
-}
-
-/**
- * htmlCtxtReadFd:
- * @ctxt:  an HTML parser context
- * @fd:  an open file descriptor
- * @URL:  the base URL to use for the document
- * @encoding:  the document encoding, or NULL
- * @options:  a combination of htmlParserOption(s)
- *
- * parse an XML from a file descriptor and build a tree.
- * This reuses the existing @ctxt parser context
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlCtxtReadFd(htmlParserCtxtPtr ctxt, int fd,
-              const char *URL, const char *encoding, int options)
-{
-    xmlParserInputBufferPtr input;
-    xmlParserInputPtr stream;
-
-    if (fd < 0)
-        return (NULL);
-    if (ctxt == NULL)
-        return (NULL);
-    xmlInitParser();
-
-    htmlCtxtReset(ctxt);
-
-
-    input = xmlParserInputBufferCreateFd(fd, XML_CHAR_ENCODING_NONE);
-    if (input == NULL)
-        return (NULL);
-    stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
-    if (stream == NULL) {
-        xmlFreeParserInputBuffer(input);
-        return (NULL);
-    }
-    inputPush(ctxt, stream);
-    return (htmlDoRead(ctxt, URL, encoding, options, 1));
-}
-
-/**
- * htmlCtxtReadIO:
- * @ctxt:  an HTML parser context
- * @ioread:  an I/O read function
- * @ioclose:  an I/O close function
- * @ioctx:  an I/O handler
- * @URL:  the base URL to use for the document
- * @encoding:  the document encoding, or NULL
- * @options:  a combination of htmlParserOption(s)
- *
- * parse an HTML document from I/O functions and source and build a tree.
- * This reuses the existing @ctxt parser context
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlCtxtReadIO(htmlParserCtxtPtr ctxt, xmlInputReadCallback ioread,
-              xmlInputCloseCallback ioclose, void *ioctx,
-	      const char *URL,
-              const char *encoding, int options)
-{
-    xmlParserInputBufferPtr input;
-    xmlParserInputPtr stream;
-
-    if (ioread == NULL)
-        return (NULL);
-    if (ctxt == NULL)
-        return (NULL);
-    xmlInitParser();
-
-    htmlCtxtReset(ctxt);
-
-    input = xmlParserInputBufferCreateIO(ioread, ioclose, ioctx,
-                                         XML_CHAR_ENCODING_NONE);
-    if (input == NULL) {
-        if (ioclose != NULL)
-            ioclose(ioctx);
-        return (NULL);
-    }
-    stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
-    if (stream == NULL) {
-        xmlFreeParserInputBuffer(input);
-        return (NULL);
-    }
-    inputPush(ctxt, stream);
-    return (htmlDoRead(ctxt, URL, encoding, options, 1));
-}
-
-#define bottom_HTMLparser
-#include "elfgcchack.h"
-#endif /* LIBXML_HTML_ENABLED */
diff --git a/HTMLtree.c b/HTMLtree.c
deleted file mode 100644
index 2fd0c9c..0000000
--- a/HTMLtree.c
+++ /dev/null
@@ -1,1281 +0,0 @@
-/*
- * HTMLtree.c : implementation of access function for an HTML tree.
- *
- * See Copyright for the status of this software.
- *
- * daniel@veillard.com
- */
-
-
-#define IN_LIBXML
-#include "libxml.h"
-#ifdef LIBXML_HTML_ENABLED
-
-#include <string.h> /* for memset() only ! */
-
-#ifdef HAVE_CTYPE_H
-#include <ctype.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#include <libxml/xmlmemory.h>
-#include <libxml/HTMLparser.h>
-#include <libxml/HTMLtree.h>
-#include <libxml/entities.h>
-#include <libxml/valid.h>
-#include <libxml/xmlerror.h>
-#include <libxml/parserInternals.h>
-#include <libxml/globals.h>
-#include <libxml/uri.h>
-
-#include "buf.h"
-
-/************************************************************************
- *									*
- *		Getting/Setting encoding meta tags			*
- *									*
- ************************************************************************/
-
-/**
- * htmlGetMetaEncoding:
- * @doc:  the document
- *
- * Encoding definition lookup in the Meta tags
- *
- * Returns the current encoding as flagged in the HTML source
- */
-const xmlChar *
-htmlGetMetaEncoding(htmlDocPtr doc) {
-    htmlNodePtr cur;
-    const xmlChar *content;
-    const xmlChar *encoding;
-
-    if (doc == NULL)
-	return(NULL);
-    cur = doc->children;
-
-    /*
-     * Search the html
-     */
-    while (cur != NULL) {
-	if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
-	    if (xmlStrEqual(cur->name, BAD_CAST"html"))
-		break;
-	    if (xmlStrEqual(cur->name, BAD_CAST"head"))
-		goto found_head;
-	    if (xmlStrEqual(cur->name, BAD_CAST"meta"))
-		goto found_meta;
-	}
-	cur = cur->next;
-    }
-    if (cur == NULL)
-	return(NULL);
-    cur = cur->children;
-
-    /*
-     * Search the head
-     */
-    while (cur != NULL) {
-	if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
-	    if (xmlStrEqual(cur->name, BAD_CAST"head"))
-		break;
-	    if (xmlStrEqual(cur->name, BAD_CAST"meta"))
-		goto found_meta;
-	}
-	cur = cur->next;
-    }
-    if (cur == NULL)
-	return(NULL);
-found_head:
-    cur = cur->children;
-
-    /*
-     * Search the meta elements
-     */
-found_meta:
-    while (cur != NULL) {
-	if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
-	    if (xmlStrEqual(cur->name, BAD_CAST"meta")) {
-		xmlAttrPtr attr = cur->properties;
-		int http;
-		const xmlChar *value;
-
-		content = NULL;
-		http = 0;
-		while (attr != NULL) {
-		    if ((attr->children != NULL) &&
-		        (attr->children->type == XML_TEXT_NODE) &&
-		        (attr->children->next == NULL)) {
-			value = attr->children->content;
-			if ((!xmlStrcasecmp(attr->name, BAD_CAST"http-equiv"))
-			 && (!xmlStrcasecmp(value, BAD_CAST"Content-Type")))
-			    http = 1;
-			else if ((value != NULL)
-			 && (!xmlStrcasecmp(attr->name, BAD_CAST"content")))
-			    content = value;
-			if ((http != 0) && (content != NULL))
-			    goto found_content;
-		    }
-		    attr = attr->next;
-		}
-	    }
-	}
-	cur = cur->next;
-    }
-    return(NULL);
-
-found_content:
-    encoding = xmlStrstr(content, BAD_CAST"charset=");
-    if (encoding == NULL)
-	encoding = xmlStrstr(content, BAD_CAST"Charset=");
-    if (encoding == NULL)
-	encoding = xmlStrstr(content, BAD_CAST"CHARSET=");
-    if (encoding != NULL) {
-	encoding += 8;
-    } else {
-	encoding = xmlStrstr(content, BAD_CAST"charset =");
-	if (encoding == NULL)
-	    encoding = xmlStrstr(content, BAD_CAST"Charset =");
-	if (encoding == NULL)
-	    encoding = xmlStrstr(content, BAD_CAST"CHARSET =");
-	if (encoding != NULL)
-	    encoding += 9;
-    }
-    if (encoding != NULL) {
-	while ((*encoding == ' ') || (*encoding == '\t')) encoding++;
-    }
-    return(encoding);
-}
-
-/**
- * htmlSetMetaEncoding:
- * @doc:  the document
- * @encoding:  the encoding string
- *
- * Sets the current encoding in the Meta tags
- * NOTE: this will not change the document content encoding, just
- * the META flag associated.
- *
- * Returns 0 in case of success and -1 in case of error
- */
-int
-htmlSetMetaEncoding(htmlDocPtr doc, const xmlChar *encoding) {
-    htmlNodePtr cur, meta = NULL, head = NULL;
-    const xmlChar *content = NULL;
-    char newcontent[100];
-
-    newcontent[0] = 0;
-
-    if (doc == NULL)
-	return(-1);
-
-    /* html isn't a real encoding it's just libxml2 way to get entities */
-    if (!xmlStrcasecmp(encoding, BAD_CAST "html"))
-        return(-1);
-
-    if (encoding != NULL) {
-	snprintf(newcontent, sizeof(newcontent), "text/html; charset=%s",
-                (char *)encoding);
-	newcontent[sizeof(newcontent) - 1] = 0;
-    }
-
-    cur = doc->children;
-
-    /*
-     * Search the html
-     */
-    while (cur != NULL) {
-	if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
-	    if (xmlStrcasecmp(cur->name, BAD_CAST"html") == 0)
-		break;
-	    if (xmlStrcasecmp(cur->name, BAD_CAST"head") == 0)
-		goto found_head;
-	    if (xmlStrcasecmp(cur->name, BAD_CAST"meta") == 0)
-		goto found_meta;
-	}
-	cur = cur->next;
-    }
-    if (cur == NULL)
-	return(-1);
-    cur = cur->children;
-
-    /*
-     * Search the head
-     */
-    while (cur != NULL) {
-	if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
-	    if (xmlStrcasecmp(cur->name, BAD_CAST"head") == 0)
-		break;
-	    if (xmlStrcasecmp(cur->name, BAD_CAST"meta") == 0) {
-                head = cur->parent;
-		goto found_meta;
-            }
-	}
-	cur = cur->next;
-    }
-    if (cur == NULL)
-	return(-1);
-found_head:
-    head = cur;
-    if (cur->children == NULL)
-        goto create;
-    cur = cur->children;
-
-found_meta:
-    /*
-     * Search and update all the remaining the meta elements carrying
-     * encoding informations
-     */
-    while (cur != NULL) {
-	if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
-	    if (xmlStrcasecmp(cur->name, BAD_CAST"meta") == 0) {
-		xmlAttrPtr attr = cur->properties;
-		int http;
-		const xmlChar *value;
-
-		content = NULL;
-		http = 0;
-		while (attr != NULL) {
-		    if ((attr->children != NULL) &&
-		        (attr->children->type == XML_TEXT_NODE) &&
-		        (attr->children->next == NULL)) {
-			value = attr->children->content;
-			if ((!xmlStrcasecmp(attr->name, BAD_CAST"http-equiv"))
-			 && (!xmlStrcasecmp(value, BAD_CAST"Content-Type")))
-			    http = 1;
-			else
-                        {
-                           if ((value != NULL) &&
-                               (!xmlStrcasecmp(attr->name, BAD_CAST"content")))
-			       content = value;
-                        }
-		        if ((http != 0) && (content != NULL))
-			    break;
-		    }
-		    attr = attr->next;
-		}
-		if ((http != 0) && (content != NULL)) {
-		    meta = cur;
-		    break;
-		}
-
-	    }
-	}
-	cur = cur->next;
-    }
-create:
-    if (meta == NULL) {
-        if ((encoding != NULL) && (head != NULL)) {
-            /*
-             * Create a new Meta element with the right attributes
-             */
-
-            meta = xmlNewDocNode(doc, NULL, BAD_CAST"meta", NULL);
-            if (head->children == NULL)
-                xmlAddChild(head, meta);
-            else
-                xmlAddPrevSibling(head->children, meta);
-            xmlNewProp(meta, BAD_CAST"http-equiv", BAD_CAST"Content-Type");
-            xmlNewProp(meta, BAD_CAST"content", BAD_CAST newcontent);
-        }
-    } else {
-        /* remove the meta tag if NULL is passed */
-        if (encoding == NULL) {
-            xmlUnlinkNode(meta);
-            xmlFreeNode(meta);
-        }
-        /* change the document only if there is a real encoding change */
-        else if (xmlStrcasestr(content, encoding) == NULL) {
-            xmlSetProp(meta, BAD_CAST"content", BAD_CAST newcontent);
-        }
-    }
-
-
-    return(0);
-}
-
-/**
- * booleanHTMLAttrs:
- *
- * These are the HTML attributes which will be output
- * in minimized form, i.e. <option selected="selected"> will be
- * output as <option selected>, as per XSLT 1.0 16.2 "HTML Output Method"
- *
- */
-static const char* htmlBooleanAttrs[] = {
-  "checked", "compact", "declare", "defer", "disabled", "ismap",
-  "multiple", "nohref", "noresize", "noshade", "nowrap", "readonly",
-  "selected", NULL
-};
-
-
-/**
- * htmlIsBooleanAttr:
- * @name:  the name of the attribute to check
- *
- * Determine if a given attribute is a boolean attribute.
- *
- * returns: false if the attribute is not boolean, true otherwise.
- */
-int
-htmlIsBooleanAttr(const xmlChar *name)
-{
-    int i = 0;
-
-    while (htmlBooleanAttrs[i] != NULL) {
-        if (xmlStrcasecmp((const xmlChar *)htmlBooleanAttrs[i], name) == 0)
-            return 1;
-        i++;
-    }
-    return 0;
-}
-
-#ifdef LIBXML_OUTPUT_ENABLED
-/*
- * private routine exported from xmlIO.c
- */
-xmlOutputBufferPtr
-xmlAllocOutputBufferInternal(xmlCharEncodingHandlerPtr encoder);
-/************************************************************************
- *									*
- *			Output error handlers				*
- *									*
- ************************************************************************/
-/**
- * htmlSaveErrMemory:
- * @extra:  extra informations
- *
- * Handle an out of memory condition
- */
-static void
-htmlSaveErrMemory(const char *extra)
-{
-    __xmlSimpleError(XML_FROM_OUTPUT, XML_ERR_NO_MEMORY, NULL, NULL, extra);
-}
-
-/**
- * htmlSaveErr:
- * @code:  the error number
- * @node:  the location of the error.
- * @extra:  extra informations
- *
- * Handle an out of memory condition
- */
-static void
-htmlSaveErr(int code, xmlNodePtr node, const char *extra)
-{
-    const char *msg = NULL;
-
-    switch(code) {
-        case XML_SAVE_NOT_UTF8:
-	    msg = "string is not in UTF-8\n";
-	    break;
-	case XML_SAVE_CHAR_INVALID:
-	    msg = "invalid character value\n";
-	    break;
-	case XML_SAVE_UNKNOWN_ENCODING:
-	    msg = "unknown encoding %s\n";
-	    break;
-	case XML_SAVE_NO_DOCTYPE:
-	    msg = "HTML has no DOCTYPE\n";
-	    break;
-	default:
-	    msg = "unexpected error number\n";
-    }
-    __xmlSimpleError(XML_FROM_OUTPUT, code, node, msg, extra);
-}
-
-/************************************************************************
- *									*
- *		Dumping HTML tree content to a simple buffer		*
- *									*
- ************************************************************************/
-
-/**
- * htmlBufNodeDumpFormat:
- * @buf:  the xmlBufPtr output
- * @doc:  the document
- * @cur:  the current node
- * @format:  should formatting spaces been added
- *
- * Dump an HTML node, recursive behaviour,children are printed too.
- *
- * Returns the number of byte written or -1 in case of error
- */
-static size_t
-htmlBufNodeDumpFormat(xmlBufPtr buf, xmlDocPtr doc, xmlNodePtr cur,
-	           int format) {
-    size_t use;
-    int ret;
-    xmlOutputBufferPtr outbuf;
-
-    if (cur == NULL) {
-	return (-1);
-    }
-    if (buf == NULL) {
-	return (-1);
-    }
-    outbuf = (xmlOutputBufferPtr) xmlMalloc(sizeof(xmlOutputBuffer));
-    if (outbuf == NULL) {
-        htmlSaveErrMemory("allocating HTML output buffer");
-	return (-1);
-    }
-    memset(outbuf, 0, (size_t) sizeof(xmlOutputBuffer));
-    outbuf->buffer = buf;
-    outbuf->encoder = NULL;
-    outbuf->writecallback = NULL;
-    outbuf->closecallback = NULL;
-    outbuf->context = NULL;
-    outbuf->written = 0;
-
-    use = xmlBufUse(buf);
-    htmlNodeDumpFormatOutput(outbuf, doc, cur, NULL, format);
-    xmlFree(outbuf);
-    ret = xmlBufUse(buf) - use;
-    return (ret);
-}
-
-/**
- * htmlNodeDump:
- * @buf:  the HTML buffer output
- * @doc:  the document
- * @cur:  the current node
- *
- * Dump an HTML node, recursive behaviour,children are printed too,
- * and formatting returns are added.
- *
- * Returns the number of byte written or -1 in case of error
- */
-int
-htmlNodeDump(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur) {
-    xmlBufPtr buffer;
-    size_t ret;
-
-    if ((buf == NULL) || (cur == NULL))
-        return(-1);
-
-    xmlInitParser();
-    buffer = xmlBufFromBuffer(buf);
-    if (buffer == NULL)
-        return(-1);
-
-    ret = htmlBufNodeDumpFormat(buffer, doc, cur, 1);
-
-    xmlBufBackToBuffer(buffer);
-
-    if (ret > INT_MAX)
-        return(-1);
-    return((int) ret);
-}
-
-/**
- * htmlNodeDumpFileFormat:
- * @out:  the FILE pointer
- * @doc:  the document
- * @cur:  the current node
- * @encoding: the document encoding
- * @format:  should formatting spaces been added
- *
- * Dump an HTML node, recursive behaviour,children are printed too.
- *
- * TODO: if encoding == NULL try to save in the doc encoding
- *
- * returns: the number of byte written or -1 in case of failure.
- */
-int
-htmlNodeDumpFileFormat(FILE *out, xmlDocPtr doc,
-	               xmlNodePtr cur, const char *encoding, int format) {
-    xmlOutputBufferPtr buf;
-    xmlCharEncodingHandlerPtr handler = NULL;
-    int ret;
-
-    xmlInitParser();
-
-    if (encoding != NULL) {
-	xmlCharEncoding enc;
-
-	enc = xmlParseCharEncoding(encoding);
-	if (enc != XML_CHAR_ENCODING_UTF8) {
-	    handler = xmlFindCharEncodingHandler(encoding);
-	    if (handler == NULL)
-		htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
-	}
-    }
-
-    /*
-     * Fallback to HTML or ASCII when the encoding is unspecified
-     */
-    if (handler == NULL)
-	handler = xmlFindCharEncodingHandler("HTML");
-    if (handler == NULL)
-	handler = xmlFindCharEncodingHandler("ascii");
-
-    /*
-     * save the content to a temp buffer.
-     */
-    buf = xmlOutputBufferCreateFile(out, handler);
-    if (buf == NULL) return(0);
-
-    htmlNodeDumpFormatOutput(buf, doc, cur, encoding, format);
-
-    ret = xmlOutputBufferClose(buf);
-    return(ret);
-}
-
-/**
- * htmlNodeDumpFile:
- * @out:  the FILE pointer
- * @doc:  the document
- * @cur:  the current node
- *
- * Dump an HTML node, recursive behaviour,children are printed too,
- * and formatting returns are added.
- */
-void
-htmlNodeDumpFile(FILE *out, xmlDocPtr doc, xmlNodePtr cur) {
-    htmlNodeDumpFileFormat(out, doc, cur, NULL, 1);
-}
-
-/**
- * htmlDocDumpMemoryFormat:
- * @cur:  the document
- * @mem:  OUT: the memory pointer
- * @size:  OUT: the memory length
- * @format:  should formatting spaces been added
- *
- * Dump an HTML document in memory and return the xmlChar * and it's size.
- * It's up to the caller to free the memory.
- */
-void
-htmlDocDumpMemoryFormat(xmlDocPtr cur, xmlChar**mem, int *size, int format) {
-    xmlOutputBufferPtr buf;
-    xmlCharEncodingHandlerPtr handler = NULL;
-    const char *encoding;
-
-    xmlInitParser();
-
-    if ((mem == NULL) || (size == NULL))
-        return;
-    if (cur == NULL) {
-	*mem = NULL;
-	*size = 0;
-	return;
-    }
-
-    encoding = (const char *) htmlGetMetaEncoding(cur);
-
-    if (encoding != NULL) {
-	xmlCharEncoding enc;
-
-	enc = xmlParseCharEncoding(encoding);
-	if (enc != cur->charset) {
-	    if (cur->charset != XML_CHAR_ENCODING_UTF8) {
-		/*
-		 * Not supported yet
-		 */
-		*mem = NULL;
-		*size = 0;
-		return;
-	    }
-
-	    handler = xmlFindCharEncodingHandler(encoding);
-	    if (handler == NULL)
-                htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
-
-	} else {
-	    handler = xmlFindCharEncodingHandler(encoding);
-	}
-    }
-
-    /*
-     * Fallback to HTML or ASCII when the encoding is unspecified
-     */
-    if (handler == NULL)
-	handler = xmlFindCharEncodingHandler("HTML");
-    if (handler == NULL)
-	handler = xmlFindCharEncodingHandler("ascii");
-
-    buf = xmlAllocOutputBufferInternal(handler);
-    if (buf == NULL) {
-	*mem = NULL;
-	*size = 0;
-	return;
-    }
-
-    htmlDocContentDumpFormatOutput(buf, cur, NULL, format);
-
-    xmlOutputBufferFlush(buf);
-    if (buf->conv != NULL) {
-	*size = xmlBufUse(buf->conv);
-	*mem = xmlStrndup(xmlBufContent(buf->conv), *size);
-    } else {
-	*size = xmlBufUse(buf->buffer);
-	*mem = xmlStrndup(xmlBufContent(buf->buffer), *size);
-    }
-    (void)xmlOutputBufferClose(buf);
-}
-
-/**
- * htmlDocDumpMemory:
- * @cur:  the document
- * @mem:  OUT: the memory pointer
- * @size:  OUT: the memory length
- *
- * Dump an HTML document in memory and return the xmlChar * and it's size.
- * It's up to the caller to free the memory.
- */
-void
-htmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int *size) {
-	htmlDocDumpMemoryFormat(cur, mem, size, 1);
-}
-
-
-/************************************************************************
- *									*
- *		Dumping HTML tree content to an I/O output buffer	*
- *									*
- ************************************************************************/
-
-void xmlNsListDumpOutput(xmlOutputBufferPtr buf, xmlNsPtr cur);
-
-/**
- * htmlDtdDumpOutput:
- * @buf:  the HTML buffer output
- * @doc:  the document
- * @encoding:  the encoding string
- *
- * TODO: check whether encoding is needed
- *
- * Dump the HTML document DTD, if any.
- */
-static void
-htmlDtdDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-	          const char *encoding ATTRIBUTE_UNUSED) {
-    xmlDtdPtr cur = doc->intSubset;
-
-    if (cur == NULL) {
-	htmlSaveErr(XML_SAVE_NO_DOCTYPE, (xmlNodePtr) doc, NULL);
-	return;
-    }
-    xmlOutputBufferWriteString(buf, "<!DOCTYPE ");
-    xmlOutputBufferWriteString(buf, (const char *)cur->name);
-    if (cur->ExternalID != NULL) {
-	xmlOutputBufferWriteString(buf, " PUBLIC ");
-	xmlBufWriteQuotedString(buf->buffer, cur->ExternalID);
-	if (cur->SystemID != NULL) {
-	    xmlOutputBufferWriteString(buf, " ");
-	    xmlBufWriteQuotedString(buf->buffer, cur->SystemID);
-	}
-    } else if (cur->SystemID != NULL &&
-	       xmlStrcmp(cur->SystemID, BAD_CAST "about:legacy-compat")) {
-	xmlOutputBufferWriteString(buf, " SYSTEM ");
-	xmlBufWriteQuotedString(buf->buffer, cur->SystemID);
-    }
-    xmlOutputBufferWriteString(buf, ">\n");
-}
-
-/**
- * htmlAttrDumpOutput:
- * @buf:  the HTML buffer output
- * @doc:  the document
- * @cur:  the attribute pointer
- * @encoding:  the encoding string
- *
- * Dump an HTML attribute
- */
-static void
-htmlAttrDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur,
-	           const char *encoding ATTRIBUTE_UNUSED) {
-    xmlChar *value;
-
-    /*
-     * The html output method should not escape a & character
-     * occurring in an attribute value immediately followed by
-     * a { character (see Section B.7.1 of the HTML 4.0 Recommendation).
-     * This is implemented in xmlEncodeEntitiesReentrant
-     */
-
-    if (cur == NULL) {
-	return;
-    }
-    xmlOutputBufferWriteString(buf, " ");
-    if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
-        xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
-	xmlOutputBufferWriteString(buf, ":");
-    }
-    xmlOutputBufferWriteString(buf, (const char *)cur->name);
-    if ((cur->children != NULL) && (!htmlIsBooleanAttr(cur->name))) {
-	value = xmlNodeListGetString(doc, cur->children, 0);
-	if (value) {
-	    xmlOutputBufferWriteString(buf, "=");
-	    if ((cur->ns == NULL) && (cur->parent != NULL) &&
-		(cur->parent->ns == NULL) &&
-		((!xmlStrcasecmp(cur->name, BAD_CAST "href")) ||
-	         (!xmlStrcasecmp(cur->name, BAD_CAST "action")) ||
-		 (!xmlStrcasecmp(cur->name, BAD_CAST "src")) ||
-		 ((!xmlStrcasecmp(cur->name, BAD_CAST "name")) &&
-		  (!xmlStrcasecmp(cur->parent->name, BAD_CAST "a"))))) {
-		xmlChar *tmp = value;
-		/* xmlURIEscapeStr() escapes '"' so it can be safely used. */
-		xmlBufCCat(buf->buffer, "\"");
-
-		while (IS_BLANK_CH(*tmp)) tmp++;
-
-		/* URI Escape everything, except server side includes. */
-		for ( ; ; ) {
-		    xmlChar *escaped;
-		    xmlChar endChar;
-		    xmlChar *end = NULL;
-		    xmlChar *start = (xmlChar *)xmlStrstr(tmp, BAD_CAST "<!--");
-		    if (start != NULL) {
-			end = (xmlChar *)xmlStrstr(tmp, BAD_CAST "-->");
-			if (end != NULL) {
-			    *start = '\0';
-			}
-		    }
-
-		    /* Escape the whole string, or until start (set to '\0'). */
-		    escaped = xmlURIEscapeStr(tmp, BAD_CAST"@/:=?;#%&,+");
-		    if (escaped != NULL) {
-		        xmlBufCat(buf->buffer, escaped);
-		        xmlFree(escaped);
-		    } else {
-		        xmlBufCat(buf->buffer, tmp);
-		    }
-
-		    if (end == NULL) { /* Everything has been written. */
-			break;
-		    }
-
-		    /* Do not escape anything within server side includes. */
-		    *start = '<'; /* Restore the first character of "<!--". */
-		    end += 3; /* strlen("-->") */
-		    endChar = *end;
-		    *end = '\0';
-		    xmlBufCat(buf->buffer, start);
-		    *end = endChar;
-		    tmp = end;
-		}
-
-		xmlBufCCat(buf->buffer, "\"");
-	    } else {
-		xmlBufWriteQuotedString(buf->buffer, value);
-	    }
-	    xmlFree(value);
-	} else  {
-	    xmlOutputBufferWriteString(buf, "=\"\"");
-	}
-    }
-}
-
-/**
- * htmlAttrListDumpOutput:
- * @buf:  the HTML buffer output
- * @doc:  the document
- * @cur:  the first attribute pointer
- * @encoding:  the encoding string
- *
- * Dump a list of HTML attributes
- */
-static void
-htmlAttrListDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur, const char *encoding) {
-    if (cur == NULL) {
-	return;
-    }
-    while (cur != NULL) {
-        htmlAttrDumpOutput(buf, doc, cur, encoding);
-	cur = cur->next;
-    }
-}
-
-
-
-/**
- * htmlNodeListDumpOutput:
- * @buf:  the HTML buffer output
- * @doc:  the document
- * @cur:  the first node
- * @encoding:  the encoding string
- * @format:  should formatting spaces been added
- *
- * Dump an HTML node list, recursive behaviour,children are printed too.
- */
-static void
-htmlNodeListDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-	               xmlNodePtr cur, const char *encoding, int format) {
-    if (cur == NULL) {
-	return;
-    }
-    while (cur != NULL) {
-        htmlNodeDumpFormatOutput(buf, doc, cur, encoding, format);
-	cur = cur->next;
-    }
-}
-
-/**
- * htmlNodeDumpFormatOutput:
- * @buf:  the HTML buffer output
- * @doc:  the document
- * @cur:  the current node
- * @encoding:  the encoding string
- * @format:  should formatting spaces been added
- *
- * Dump an HTML node, recursive behaviour,children are printed too.
- */
-void
-htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-	                 xmlNodePtr cur, const char *encoding, int format) {
-    const htmlElemDesc * info;
-
-    xmlInitParser();
-
-    if ((cur == NULL) || (buf == NULL)) {
-	return;
-    }
-    /*
-     * Special cases.
-     */
-    if (cur->type == XML_DTD_NODE)
-	return;
-    if ((cur->type == XML_HTML_DOCUMENT_NODE) ||
-        (cur->type == XML_DOCUMENT_NODE)){
-	htmlDocContentDumpOutput(buf, (xmlDocPtr) cur, encoding);
-	return;
-    }
-    if (cur->type == XML_ATTRIBUTE_NODE) {
-        htmlAttrDumpOutput(buf, doc, (xmlAttrPtr) cur, encoding);
-	return;
-    }
-    if (cur->type == HTML_TEXT_NODE) {
-	if (cur->content != NULL) {
-	    if (((cur->name == (const xmlChar *)xmlStringText) ||
-		 (cur->name != (const xmlChar *)xmlStringTextNoenc)) &&
-		((cur->parent == NULL) ||
-		 ((xmlStrcasecmp(cur->parent->name, BAD_CAST "script")) &&
-		  (xmlStrcasecmp(cur->parent->name, BAD_CAST "style"))))) {
-		xmlChar *buffer;
-
-		buffer = xmlEncodeEntitiesReentrant(doc, cur->content);
-		if (buffer != NULL) {
-		    xmlOutputBufferWriteString(buf, (const char *)buffer);
-		    xmlFree(buffer);
-		}
-	    } else {
-		xmlOutputBufferWriteString(buf, (const char *)cur->content);
-	    }
-	}
-	return;
-    }
-    if (cur->type == HTML_COMMENT_NODE) {
-	if (cur->content != NULL) {
-	    xmlOutputBufferWriteString(buf, "<!--");
-	    xmlOutputBufferWriteString(buf, (const char *)cur->content);
-	    xmlOutputBufferWriteString(buf, "-->");
-	}
-	return;
-    }
-    if (cur->type == HTML_PI_NODE) {
-	if (cur->name == NULL)
-	    return;
-	xmlOutputBufferWriteString(buf, "<?");
-	xmlOutputBufferWriteString(buf, (const char *)cur->name);
-	if (cur->content != NULL) {
-	    xmlOutputBufferWriteString(buf, " ");
-	    xmlOutputBufferWriteString(buf, (const char *)cur->content);
-	}
-	xmlOutputBufferWriteString(buf, ">");
-	return;
-    }
-    if (cur->type == HTML_ENTITY_REF_NODE) {
-        xmlOutputBufferWriteString(buf, "&");
-	xmlOutputBufferWriteString(buf, (const char *)cur->name);
-        xmlOutputBufferWriteString(buf, ";");
-	return;
-    }
-    if (cur->type == HTML_PRESERVE_NODE) {
-	if (cur->content != NULL) {
-	    xmlOutputBufferWriteString(buf, (const char *)cur->content);
-	}
-	return;
-    }
-
-    /*
-     * Get specific HTML info for that node.
-     */
-    if (cur->ns == NULL)
-	info = htmlTagLookup(cur->name);
-    else
-	info = NULL;
-
-    xmlOutputBufferWriteString(buf, "<");
-    if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
-        xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
-	xmlOutputBufferWriteString(buf, ":");
-    }
-    xmlOutputBufferWriteString(buf, (const char *)cur->name);
-    if (cur->nsDef)
-	xmlNsListDumpOutput(buf, cur->nsDef);
-    if (cur->properties != NULL)
-        htmlAttrListDumpOutput(buf, doc, cur->properties, encoding);
-
-    if ((info != NULL) && (info->empty)) {
-        xmlOutputBufferWriteString(buf, ">");
-	if ((format) && (!info->isinline) && (cur->next != NULL)) {
-	    if ((cur->next->type != HTML_TEXT_NODE) &&
-		(cur->next->type != HTML_ENTITY_REF_NODE) &&
-		(cur->parent != NULL) &&
-		(cur->parent->name != NULL) &&
-		(cur->parent->name[0] != 'p')) /* p, pre, param */
-		xmlOutputBufferWriteString(buf, "\n");
-	}
-	return;
-    }
-    if (((cur->type == XML_ELEMENT_NODE) || (cur->content == NULL)) &&
-	(cur->children == NULL)) {
-        if ((info != NULL) && (info->saveEndTag != 0) &&
-	    (xmlStrcmp(BAD_CAST info->name, BAD_CAST "html")) &&
-	    (xmlStrcmp(BAD_CAST info->name, BAD_CAST "body"))) {
-	    xmlOutputBufferWriteString(buf, ">");
-	} else {
-	    xmlOutputBufferWriteString(buf, "></");
-            if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
-                xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
-                xmlOutputBufferWriteString(buf, ":");
-            }
-	    xmlOutputBufferWriteString(buf, (const char *)cur->name);
-	    xmlOutputBufferWriteString(buf, ">");
-	}
-	if ((format) && (cur->next != NULL) &&
-            (info != NULL) && (!info->isinline)) {
-	    if ((cur->next->type != HTML_TEXT_NODE) &&
-		(cur->next->type != HTML_ENTITY_REF_NODE) &&
-		(cur->parent != NULL) &&
-		(cur->parent->name != NULL) &&
-		(cur->parent->name[0] != 'p')) /* p, pre, param */
-		xmlOutputBufferWriteString(buf, "\n");
-	}
-	return;
-    }
-    xmlOutputBufferWriteString(buf, ">");
-    if ((cur->type != XML_ELEMENT_NODE) &&
-	(cur->content != NULL)) {
-	    /*
-	     * Uses the OutputBuffer property to automatically convert
-	     * invalids to charrefs
-	     */
-
-            xmlOutputBufferWriteString(buf, (const char *) cur->content);
-    }
-    if (cur->children != NULL) {
-        if ((format) && (info != NULL) && (!info->isinline) &&
-	    (cur->children->type != HTML_TEXT_NODE) &&
-	    (cur->children->type != HTML_ENTITY_REF_NODE) &&
-	    (cur->children != cur->last) &&
-	    (cur->name != NULL) &&
-	    (cur->name[0] != 'p')) /* p, pre, param */
-	    xmlOutputBufferWriteString(buf, "\n");
-	htmlNodeListDumpOutput(buf, doc, cur->children, encoding, format);
-        if ((format) && (info != NULL) && (!info->isinline) &&
-	    (cur->last->type != HTML_TEXT_NODE) &&
-	    (cur->last->type != HTML_ENTITY_REF_NODE) &&
-	    (cur->children != cur->last) &&
-	    (cur->name != NULL) &&
-	    (cur->name[0] != 'p')) /* p, pre, param */
-	    xmlOutputBufferWriteString(buf, "\n");
-    }
-    xmlOutputBufferWriteString(buf, "</");
-    if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
-        xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
-	xmlOutputBufferWriteString(buf, ":");
-    }
-    xmlOutputBufferWriteString(buf, (const char *)cur->name);
-    xmlOutputBufferWriteString(buf, ">");
-    if ((format) && (info != NULL) && (!info->isinline) &&
-	(cur->next != NULL)) {
-        if ((cur->next->type != HTML_TEXT_NODE) &&
-	    (cur->next->type != HTML_ENTITY_REF_NODE) &&
-	    (cur->parent != NULL) &&
-	    (cur->parent->name != NULL) &&
-	    (cur->parent->name[0] != 'p')) /* p, pre, param */
-	    xmlOutputBufferWriteString(buf, "\n");
-    }
-}
-
-/**
- * htmlNodeDumpOutput:
- * @buf:  the HTML buffer output
- * @doc:  the document
- * @cur:  the current node
- * @encoding:  the encoding string
- *
- * Dump an HTML node, recursive behaviour,children are printed too,
- * and formatting returns/spaces are added.
- */
-void
-htmlNodeDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
-	           xmlNodePtr cur, const char *encoding) {
-    htmlNodeDumpFormatOutput(buf, doc, cur, encoding, 1);
-}
-
-/**
- * htmlDocContentDumpFormatOutput:
- * @buf:  the HTML buffer output
- * @cur:  the document
- * @encoding:  the encoding string
- * @format:  should formatting spaces been added
- *
- * Dump an HTML document.
- */
-void
-htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr cur,
-	                       const char *encoding, int format) {
-    int type;
-
-    xmlInitParser();
-
-    if ((buf == NULL) || (cur == NULL))
-        return;
-
-    /*
-     * force to output the stuff as HTML, especially for entities
-     */
-    type = cur->type;
-    cur->type = XML_HTML_DOCUMENT_NODE;
-    if (cur->intSubset != NULL) {
-        htmlDtdDumpOutput(buf, cur, NULL);
-    }
-    if (cur->children != NULL) {
-        htmlNodeListDumpOutput(buf, cur, cur->children, encoding, format);
-    }
-    xmlOutputBufferWriteString(buf, "\n");
-    cur->type = (xmlElementType) type;
-}
-
-/**
- * htmlDocContentDumpOutput:
- * @buf:  the HTML buffer output
- * @cur:  the document
- * @encoding:  the encoding string
- *
- * Dump an HTML document. Formating return/spaces are added.
- */
-void
-htmlDocContentDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr cur,
-	                 const char *encoding) {
-    htmlDocContentDumpFormatOutput(buf, cur, encoding, 1);
-}
-
-/************************************************************************
- *									*
- *		Saving functions front-ends				*
- *									*
- ************************************************************************/
-
-/**
- * htmlDocDump:
- * @f:  the FILE*
- * @cur:  the document
- *
- * Dump an HTML document to an open FILE.
- *
- * returns: the number of byte written or -1 in case of failure.
- */
-int
-htmlDocDump(FILE *f, xmlDocPtr cur) {
-    xmlOutputBufferPtr buf;
-    xmlCharEncodingHandlerPtr handler = NULL;
-    const char *encoding;
-    int ret;
-
-    xmlInitParser();
-
-    if ((cur == NULL) || (f == NULL)) {
-	return(-1);
-    }
-
-    encoding = (const char *) htmlGetMetaEncoding(cur);
-
-    if (encoding != NULL) {
-	xmlCharEncoding enc;
-
-	enc = xmlParseCharEncoding(encoding);
-	if (enc != cur->charset) {
-	    if (cur->charset != XML_CHAR_ENCODING_UTF8) {
-		/*
-		 * Not supported yet
-		 */
-		return(-1);
-	    }
-
-	    handler = xmlFindCharEncodingHandler(encoding);
-	    if (handler == NULL)
-		htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
-	} else {
-	    handler = xmlFindCharEncodingHandler(encoding);
-	}
-    }
-
-    /*
-     * Fallback to HTML or ASCII when the encoding is unspecified
-     */
-    if (handler == NULL)
-	handler = xmlFindCharEncodingHandler("HTML");
-    if (handler == NULL)
-	handler = xmlFindCharEncodingHandler("ascii");
-
-    buf = xmlOutputBufferCreateFile(f, handler);
-    if (buf == NULL) return(-1);
-    htmlDocContentDumpOutput(buf, cur, NULL);
-
-    ret = xmlOutputBufferClose(buf);
-    return(ret);
-}
-
-/**
- * htmlSaveFile:
- * @filename:  the filename (or URL)
- * @cur:  the document
- *
- * Dump an HTML document to a file. If @filename is "-" the stdout file is
- * used.
- * returns: the number of byte written or -1 in case of failure.
- */
-int
-htmlSaveFile(const char *filename, xmlDocPtr cur) {
-    xmlOutputBufferPtr buf;
-    xmlCharEncodingHandlerPtr handler = NULL;
-    const char *encoding;
-    int ret;
-
-    if ((cur == NULL) || (filename == NULL))
-        return(-1);
-
-    xmlInitParser();
-
-    encoding = (const char *) htmlGetMetaEncoding(cur);
-
-    if (encoding != NULL) {
-	xmlCharEncoding enc;
-
-	enc = xmlParseCharEncoding(encoding);
-	if (enc != cur->charset) {
-	    if (cur->charset != XML_CHAR_ENCODING_UTF8) {
-		/*
-		 * Not supported yet
-		 */
-		return(-1);
-	    }
-
-	    handler = xmlFindCharEncodingHandler(encoding);
-	    if (handler == NULL)
-		htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
-	}
-    }
-
-    /*
-     * Fallback to HTML or ASCII when the encoding is unspecified
-     */
-    if (handler == NULL)
-	handler = xmlFindCharEncodingHandler("HTML");
-    if (handler == NULL)
-	handler = xmlFindCharEncodingHandler("ascii");
-
-    /*
-     * save the content to a temp buffer.
-     */
-    buf = xmlOutputBufferCreateFilename(filename, handler, cur->compression);
-    if (buf == NULL) return(0);
-
-    htmlDocContentDumpOutput(buf, cur, NULL);
-
-    ret = xmlOutputBufferClose(buf);
-    return(ret);
-}
-
-/**
- * htmlSaveFileFormat:
- * @filename:  the filename
- * @cur:  the document
- * @format:  should formatting spaces been added
- * @encoding: the document encoding
- *
- * Dump an HTML document to a file using a given encoding.
- *
- * returns: the number of byte written or -1 in case of failure.
- */
-int
-htmlSaveFileFormat(const char *filename, xmlDocPtr cur,
-	           const char *encoding, int format) {
-    xmlOutputBufferPtr buf;
-    xmlCharEncodingHandlerPtr handler = NULL;
-    int ret;
-
-    if ((cur == NULL) || (filename == NULL))
-        return(-1);
-
-    xmlInitParser();
-
-    if (encoding != NULL) {
-	xmlCharEncoding enc;
-
-	enc = xmlParseCharEncoding(encoding);
-	if (enc != cur->charset) {
-	    if (cur->charset != XML_CHAR_ENCODING_UTF8) {
-		/*
-		 * Not supported yet
-		 */
-		return(-1);
-	    }
-
-	    handler = xmlFindCharEncodingHandler(encoding);
-	    if (handler == NULL)
-		htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
-	}
-        htmlSetMetaEncoding(cur, (const xmlChar *) encoding);
-    } else {
-	htmlSetMetaEncoding(cur, (const xmlChar *) "UTF-8");
-    }
-
-    /*
-     * Fallback to HTML or ASCII when the encoding is unspecified
-     */
-    if (handler == NULL)
-	handler = xmlFindCharEncodingHandler("HTML");
-    if (handler == NULL)
-	handler = xmlFindCharEncodingHandler("ascii");
-
-    /*
-     * save the content to a temp buffer.
-     */
-    buf = xmlOutputBufferCreateFilename(filename, handler, 0);
-    if (buf == NULL) return(0);
-
-    htmlDocContentDumpFormatOutput(buf, cur, encoding, format);
-
-    ret = xmlOutputBufferClose(buf);
-    return(ret);
-}
-
-/**
- * htmlSaveFileEnc:
- * @filename:  the filename
- * @cur:  the document
- * @encoding: the document encoding
- *
- * Dump an HTML document to a file using a given encoding
- * and formatting returns/spaces are added.
- *
- * returns: the number of byte written or -1 in case of failure.
- */
-int
-htmlSaveFileEnc(const char *filename, xmlDocPtr cur, const char *encoding) {
-    return(htmlSaveFileFormat(filename, cur, encoding, 1));
-}
-
-#endif /* LIBXML_OUTPUT_ENABLED */
-
-#define bottom_HTMLtree
-#include "elfgcchack.h"
-#endif /* LIBXML_HTML_ENABLED */
diff --git a/Makefile.am b/Makefile.am
index 70720f3..9c630be 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,12 +8,12 @@
 
 AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include
 
-AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS)
+AM_CFLAGS = $(EXTRA_CFLAGS) $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS)
 
-noinst_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
-                testThreads testC14N testAutomata testRegexp \
-                testReader testapi testModule runtest runsuite testchar \
-		testdict runxmlconf testrecurse testlimits
+check_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
+               testThreads testC14N testAutomata testRegexp \
+               testReader testapi testModule runtest runsuite testchar \
+	       testdict runxmlconf testrecurse testlimits
 
 bin_PROGRAMS = xmllint xmlcatalog
 
@@ -202,10 +202,16 @@
 #testOOM_DEPENDENCIES = $(DEPS)
 #testOOM_LDADD= $(LDADDS)
 
-runtests:
+runtests: runtest$(EXEEXT) testrecurse$(EXEEXT) testapi$(EXEEXT) \
+          testchar$(EXEEXT) testdict$(EXEEXT) runxmlconf$(EXEEXT)
 	[ -d test   ] || $(LN_S) $(srcdir)/test   .
 	[ -d result ] || $(LN_S) $(srcdir)/result .
-	$(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
+	$(CHECKER) ./runtest$(EXEEXT) && \
+	    $(CHECKER) ./testrecurse$(EXEEXT) && \
+	    ASAN_OPTIONS="$$ASAN_OPTIONS:detect_leaks=0" $(CHECKER) ./testapi$(EXEEXT) && \
+	    $(CHECKER) ./testchar$(EXEEXT) && \
+	    $(CHECKER) ./testdict$(EXEEXT) && \
+	    $(CHECKER) ./runxmlconf$(EXEEXT)
 	@(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
 	    $(MAKE) tests ; fi)
 
@@ -216,16 +222,20 @@
 	@echo '## Go get a cup of coffee it is gonna take a while ...'
 	$(MAKE) CHECKER='valgrind -q' runtests
 
+asan:
+	@echo '## rebuilding for ASAN'
+	./configure CFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g" CXXFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g" LDFLAGS="-fsanitize=address,undefined" CC="clang" CXX="clang++" --disable-shared ; OptimOff  ; $(MAKE) clean ; $(MAKE)
+
 testall : tests SVGtests SAXtests
 
 tests: XMLtests XMLenttests NStests IDtests Errtests APItests $(READER_TEST) $(TEST_SAX) $(TEST_PUSH) $(TEST_HTML) $(TEST_PHTML) $(TEST_VALID) URItests $(TEST_PATTERN) $(TEST_XPATH) $(TEST_XPTR) $(TEST_XINCLUDE) $(TEST_C14N) $(TEST_DEBUG) $(TEST_CATALOG) $(TEST_REGEXPS) $(TEST_SCHEMAS) $(TEST_SCHEMATRON) $(TEST_THREADS) Timingtests $(TEST_VTIME) $(PYTHON_TESTS) $(TEST_MODULES)
 	@(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
-	    $(MAKE) tests ; fi)
-	@(cd doc/examples ; $(MAKE) tests)
+	    $(MAKE) -s tests ; fi)
+	@(cd doc/examples ; $(MAKE) -s tests)
 
 APItests: testapi$(EXEEXT)
 	@echo "## Running the API regression tests this may take a little while"
-	-@($(CHECKER) $(top_builddir)/testapi -q)
+	-@(ASAN_OPTIONS="$$ASAN_OPTIONS:detect_leaks=0" $(CHECKER) $(top_builddir)/testapi -q)
 
 HTMLtests : testHTML$(EXEEXT)
 	@(echo > .memdump)
@@ -243,7 +253,7 @@
 	      diff -b $(srcdir)/result/HTML/$$name.err error.$$name ; \
 	      $(CHECKER) $(top_builddir)/testHTML result.$$name > result2.$$name 2>error.$$name ; \
 	      diff result.$$name result2.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name result2.$$name error.$$name ; \
 	  fi ; fi ; done)
 
@@ -264,7 +274,7 @@
 	      diff -b errorcut.$$name errorcut2.$$name ; \
 	      $(CHECKER) $(top_builddir)/testHTML --push result.$$name > result2.$$name 2>error.$$name ; \
 	      diff result.$$name result2.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name result2.$$name error.$$name errorcut.$$name errorcut2.$$name ; \
 	  fi ; fi ; done)
 	@echo "## HTML SAX regression tests"
@@ -278,7 +288,7 @@
 	      log=`$(CHECKER) $(top_builddir)/testHTML --sax $$i > result.$$name.sax ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name.sax ; \
 	  fi ; fi ; done)
 	@echo "## Push HTML SAX regression tests"
@@ -292,7 +302,7 @@
 	      log=`$(CHECKER) $(top_builddir)/testHTML --push --sax $$i 2>&1 > result.$$name.sax ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name.sax ; \
 	  fi ; fi ; done)
 
@@ -313,7 +323,7 @@
 	      $(CHECKER) $(top_builddir)/xmllint result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
 	      diff result.$$name result2.$$name` ;\
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name result2.$$name ; \
 	  fi ; fi ; done)
 	@echo "## XML regression tests on memory"
@@ -330,7 +340,7 @@
 	      diff $(srcdir)/result/$$name result.$$name ; \
 	      $(CHECKER) $(top_builddir)/xmllint --memory result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"`; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      diff result.$$name result2.$$name ; \
 	      rm result.$$name result2.$$name ; \
 	  fi ; fi ; done)
@@ -352,7 +362,7 @@
 	      $(CHECKER) $(top_builddir)/xmllint --push result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
 	      diff result.$$name result2.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name result2.$$name ; \
 	  fi ; fi ; done)
 
@@ -373,7 +383,7 @@
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
 	      diff $(srcdir)/result/namespaces/$$name result.$$name ; \
 	      diff $(srcdir)/result/namespaces/$$name.err error.$$name`; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name error.$$name ; \
 	  fi ; fi ; done)
 
@@ -394,7 +404,7 @@
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
 	      diff $(srcdir)/result/xmlid/$$name result.$$name ; \
 	      diff $(srcdir)/result/xmlid/$$name.err error.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name error.$$name ; \
 	  fi ; fi ; done)
 
@@ -415,7 +425,25 @@
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
 	      diff $(srcdir)/result/errors/$$name result.$$name ; \
 	      diff $(srcdir)/result/errors/$$name.err error.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+	      rm result.$$name error.$$name ; \
+	  fi ; fi ; done)
+	@echo "## Error cases regression tests (old 1.0)"
+	-@(for i in $(srcdir)/test/errors10/*.xml ; do \
+	  name=`basename $$i`; \
+	  if [ ! -d $$i ] ; then \
+	  if [ ! -f $(srcdir)/result/errors10/$$name ] ; then \
+	      echo New test file $$name ; \
+	      $(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i \
+	         2> $(srcdir)/result/errors10/$$name.err \
+		 > $(srcdir)/result/errors10/$$name ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
+	  else \
+	      log=`$(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i 2> error.$$name > result.$$name ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
+	      diff $(srcdir)/result/errors10/$$name result.$$name ; \
+	      diff $(srcdir)/result/errors10/$$name.err error.$$name` ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name error.$$name ; \
 	  fi ; fi ; done)
 	@echo "## Error cases stream regression tests"
@@ -432,7 +460,7 @@
 	      log=`$(CHECKER) $(top_builddir)/xmllint --stream $$i 2> error.$$name > /dev/null ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
 	      diff $(srcdir)/result/errors/$$name.str error.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm error.$$name ; \
 	  fi ; fi ; done)
 
@@ -455,7 +483,7 @@
 	      $(CHECKER) $(top_builddir)/xmllint --noent result.$$name 2>&1 > result2.$$name ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
 	      diff result.$$name result2.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name result2.$$name ; \
 	  fi ; fi ; done)
 
@@ -473,7 +501,7 @@
 	      log=`$(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i 2>&1 > result.$$name ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/URI/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 	-@(for i in $(srcdir)/test/URI/*.uri ; do \
@@ -487,7 +515,7 @@
 	      log=`$(CHECKER) $(top_builddir)/testURI < $$i 2>&1 > result.$$name ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/URI/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 
@@ -501,13 +529,13 @@
 	  if [ ! -d $$i ] ; then \
 	  if [ ! -f $(srcdir)/result/XPath/expr/$$name ] ; then \
 	      echo New test file $$name ; \
-	      $(CHECKER) $(top_builddir)/testXPath -f --expr $$i > $(srcdir)/result/XPath/expr/$$name ; \
+	      $(CHECKER) $(top_builddir)/testXPath -f --expr $$i > $(srcdir)/result/XPath/expr/$$name 2> /dev/null ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	  else \
-	      log=`$(CHECKER) $(top_builddir)/testXPath -f --expr $$i 2>&1 > result.$$name ; \
+	      log=`$(CHECKER) $(top_builddir)/testXPath -f --expr $$i > result.$$name 2> /dev/null ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/XPath/expr/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done ; \
 	  for i in $(srcdir)/test/XPath/docs/* ; do \
@@ -522,10 +550,10 @@
 	      $(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > $(srcdir)/result/XPath/tests/$$name ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	  else \
-	      log=`$(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j 2>&1 > result.$$name ; \
+	      log=`$(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > result.$$name ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/XPath/tests/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done ; fi ; done)
 
@@ -543,13 +571,13 @@
 	  if [ ! -d $$j ] ; then \
 	  if [ ! -f $(srcdir)/result/XPath/xptr/$$name ] ; then \
 	      echo New test file $$name ; \
-	      $(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > $(srcdir)/result/XPath/xptr/$$name ; \
+	      $(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > $(srcdir)/result/XPath/xptr/$$name 2> /dev/null ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"; \
 	  else \
-	      log=`$(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j 2>&1 > result.$$name ; \
+	      log=`$(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > result.$$name 2> /dev/null ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/XPath/xptr/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done ; fi ; done)
 
@@ -568,7 +596,7 @@
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/XInclude/$$name result.$$name ; \
 	      diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name error.$$name ; \
 	  fi ; fi ; done)
 	-@(for i in $(srcdir)/test/XInclude/docs/* ; do \
@@ -583,7 +611,7 @@
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/XInclude/$$name result.$$name ; \
 	      diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name error.$$name ; \
 	  fi ; fi ; done)
 	@(echo > .memdump)
@@ -600,7 +628,7 @@
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
 	      diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name error.$$name ; \
 	  fi ; fi ; done)
 	-@(for i in $(srcdir)/test/XInclude/docs/* ; do \
@@ -615,7 +643,7 @@
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
 	      diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name error.$$name ; \
 	  fi ; fi ; done)
 
@@ -636,7 +664,7 @@
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/scripts/$$name result.$$name ; \
 	      diff $(srcdir)/result/scripts/$$name.err result.$$name.err` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name result.$$name.err ; \
 	  fi ; fi ; done)
 
@@ -655,7 +683,7 @@
 	      log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i 2>&1 > result.$$name ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 	-@(for i in $(srcdir)/test/catalogs/*.script ; do \
@@ -670,7 +698,7 @@
 	      log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > result.$$name ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 	@echo "## Add and del operations on XML Catalogs"
@@ -734,7 +762,7 @@
 	      log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/$$name.rdr result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 	@echo "## Reader on memory regression tests"
@@ -749,7 +777,7 @@
 	      log=`$(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/$$name.rdr result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 	@(echo > .memdump)
@@ -765,7 +793,7 @@
 	      log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > result.$$name 2>/dev/null ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/$$name.rdr result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 	@echo "## Reader entities substitution regression tests"
@@ -780,7 +808,7 @@
 	      log=`$(CHECKER) $(top_builddir)/xmllint --noent --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/$$name.rde result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 
@@ -798,7 +826,7 @@
 	      log=`$(CHECKER) $(top_builddir)/testSAX $$i > result.$$name 2> /dev/null ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/$$name.sax result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 	@echo "## SAX2 callbacks regression tests"
@@ -813,7 +841,22 @@
 	      log=`$(CHECKER) $(top_builddir)/testSAX --sax2 $$i > result.$$name 2> /dev/null ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/$$name.sax2 result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+	      rm result.$$name ; \
+	  fi ; fi ; done)
+	@echo "## SAX2 callbacks regression tests with entity substitution"
+	-@(for i in $(srcdir)/test/* ; do \
+	  name=`basename $$i`; \
+	  if [ ! -d $$i ] ; then \
+	  if [ ! -f $(srcdir)/result/noent/$$name.sax2 ] ; then \
+	      echo New test file $$name ; \
+	      $(CHECKER) $(top_builddir)/testSAX --sax2 --noent $$i > $(srcdir)/result/noent/$$name.sax2 2> /dev/null ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	  else \
+	      log=`$(CHECKER) $(top_builddir)/testSAX --sax2 --noent $$i > result.$$name 2> /dev/null ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	      diff $(srcdir)/result/noent/$$name.sax2 result.$$name` ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 
@@ -825,7 +868,7 @@
 	  if [ ! -d $$i ] ; then \
 	      log=`$(CHECKER) $(top_builddir)/xmllint --valid --noout --nowarning $$i ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0"`;\
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	  fi ; done ; exit 0)
 	@echo "## Validity checking regression tests"
 	-@(for i in $(srcdir)/test/VC/* ; do \
@@ -839,7 +882,7 @@
 	      log=`$(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> result.$$name ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/VC/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 	@echo "## General documents valid regression tests"
@@ -855,7 +898,7 @@
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/valid/$$name result.$$name ; \
 	      diff $(srcdir)/result/valid/$$name.err error.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name error.$$name ; \
 	  fi ; fi ; done)
 
@@ -873,7 +916,7 @@
 	      log=`$(CHECKER) $(top_builddir)/testRegexp -i $$i 2>&1 > result.$$name ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/regexp/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 	@echo "## Formal expresssions regression tests"
@@ -888,7 +931,7 @@
 	      log=`$(CHECKER) $(top_builddir)/testRegexp --expr -i $$i 2>&1 > result.$$name ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/expr/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 
@@ -906,7 +949,7 @@
 	      log=`$(CHECKER) $(top_builddir)/testAutomata $$i 2>&1 > result.$$name ; \
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/automata/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done)
 
@@ -957,7 +1000,7 @@
 			    cmdline="$$cmdline '`cat $(srcdir)/test/c14n/$$m/$$name.ns`'"; \
 			fi; \
 		    fi; \
-		    $$cmdline > $(srcdir)/test/c14n/test.tmp; \
+		    $$cmdline > $(srcdir)/test/c14n/test.tmp 2> /dev/null; \
 		    if [ $$? -eq 0 ]; then \
 			diff  $(srcdir)/result/c14n/$$m/$$name $(srcdir)/test/c14n/test.tmp; \
 			if [ $$? -ne 0 ]; then \
@@ -998,7 +1041,7 @@
 	          diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err \
 		       err.$$name;\
 		  grep Unimplemented err.$$name`; \
-	          if [ -n "$$log" ] ; then echo "$$name"_"$$sno"_"$$xno" result ; echo $$log ; fi ; \
+	          if [ -n "$$log" ] ; then echo "$$name"_"$$sno"_"$$xno" result ; echo "$$log" ; fi ; \
 	          rm res.$$name err.$$name ; \
 	       fi ; fi ;\
 	  done; done)
@@ -1023,7 +1066,7 @@
 	      diff $(srcdir)/result/relaxng/"$$name"_err \
 		   err.$$name | grep -v "error detected at";\
 	      grep Unimplemented err.$$name`; \
-	      if [ -n "$$log" ] ; then echo schemas $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo schemas $$name result ; echo "$$log" ; fi ; \
 	      rm res.$$name err.$$name ; \
 	  fi; \
 	  for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
@@ -1045,7 +1088,7 @@
 	          diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
 		       err.$$name | grep -v "error detected at";\
 		  grep Unimplemented err.$$name`; \
-		  if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
+		  if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
 	          rm res.$$name err.$$name ; \
 	       fi ; fi ; \
 	  done; done)
@@ -1071,7 +1114,7 @@
 		      diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
 			   err.$$name | grep -v "error detected at";\
 		  fi ; grep Unimplemented err.$$name`; \
-	          if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
+	          if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
 	          rm res.$$name err.$$name ; \
 	       fi ; fi ; \
 	  done; done)
@@ -1100,7 +1143,7 @@
 	          diff $(srcdir)/result/schematron/"$$name"_"$$xno".err \
 		       err.$$name | grep -v "error detected at";\
 		  grep Unimplemented err.$$name`; \
-		  if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
+		  if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
 	          rm res.$$name err.$$name ; \
 	       fi ; fi ; \
 	  done; done)
@@ -1149,7 +1192,7 @@
 	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      done ;\
 	      diff $(srcdir)/result/pattern/$$name result.$$name` ; \
-	      if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+	      if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
 	      rm result.$$name ; \
 	  fi ; fi ; done ;)
 
@@ -1207,12 +1250,13 @@
 	     check-xsddata-test-suite.py check-xinclude-test-suite.py \
              example/Makefile.am example/gjobread.c example/gjobs.xml \
 	     $(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \
-	     libxml2-config.cmake.in \
+	     libxml2-config.cmake.in autogen.sh \
 	     trionan.c trionan.h triostr.c triostr.h trio.c trio.h \
 	     triop.h triodef.h libxml.h elfgcchack.h xzlib.h buf.h \
 	     enc.h save.h testThreadsWin32.c genUnicode.py TODO_SCHEMAS \
 	     dbgen.pl dbgenattr.pl regressions.py regressions.xml \
 	     README.tests Makefile.tests libxml2.syms timsort.h \
+	     README.zOS \
 	     $(CVS_EXTRA_DIST)
 
 
diff --git a/NEWS b/NEWS
index 8027d55..d248c69 100644
--- a/NEWS
+++ b/NEWS
@@ -845,7 +845,7 @@
    - Improvement: switch parser to XML-1.0 5th edition, add parsing flags
       for old versions, switch URI parsing to RFC 3986,
       add xmlSchemaValidCtxtGetParserCtxt (Holger Kaelberer),
-      new hashing functions for dictionnaries (based on Stefan Behnel work),
+      new hashing functions for dictionaries (based on Stefan Behnel work),
       improve handling of misplaced html/head/body in HTML parser, better
       regression test tools and code coverage display, better algorithms
       to detect various versions of the billion laughts attacks, make
@@ -1231,7 +1231,7 @@
     Bakefile support (Francesco Montorsi), Windows compilation (Joel Reed),
     some gcc4 fixes, HP-UX portability fixes (Rick Jones).
    - bug fixes: xmlSchemaElementDump namespace (Kasimier Buchcik), push and
-    xmlreader stopping on non-fatal errors, thread support for dictionnaries
+    xmlreader stopping on non-fatal errors, thread support for dictionaries
     reference counting (Gary Coady), internal subset and push problem, URL
     saved in xmlCopyDoc, various schemas bug fixes (Kasimier), Python paths
     fixup (Stephane Bidoul), xmlGetNodePath and namespaces, xmlSetNsProp fix
@@ -1244,7 +1244,7 @@
     Hendricks), aliasing bug exposed by gcc4 on s390, xmlTextReaderNext bug
     (Rob Richards), Schemas decimal type fixes (William Brack),
     xmlByteConsumed static buffer (Ben Maurer).
-   - improvement: speedup parsing comments and DTDs, dictionnary support for
+   - improvement: speedup parsing comments and DTDs, dictionary support for
     hash tables, Schemas Identity constraints (Kasimier), streaming XPath
     subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
     values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
@@ -1454,7 +1454,7 @@
     URI on SYSTEM lookup failure, XInclude parse flags inheritance (William),
     XInclude and XPointer fixes for entities (William), XML parser bug
     reported by Holger Rauch, nanohttp fd leak (William),  regexps char
-    groups '-' handling (William), dictionnary reference counting problems,
+    groups '-' handling (William), dictionary reference counting problems,
     do not close stderr.
    - performance patches from Petr Pajas
    - Documentation fixes: XML_CATALOG_FILES in man pages (Mike Hommey)
@@ -1482,7 +1482,7 @@
     William) reported by Yuuichi Teranishi
    - bugfixes: make test and path issues, xmlWriter attribute serialization
     (William Brack), xmlWriter indentation (William), schemas validation
-    (Eric Haszlakiewicz), XInclude dictionnaries issues (William and Oleg
+    (Eric Haszlakiewicz), XInclude dictionaries issues (William and Oleg
     Paraschenko), XInclude empty fallback (William), HTML warnings (William),
     XPointer in XInclude (William), Python namespace serialization,
     isolat1ToUTF8 bound error (Alfred Mickautsch), output of parameter
@@ -1503,7 +1503,7 @@
 
 
 2.6.5: Jan 25 2004:
-   - Bugfixes: dictionnaries for schemas (William Brack), regexp segfault
+   - Bugfixes: dictionaries for schemas (William Brack), regexp segfault
     (William), xs:all problem (William), a number of XPointer bugfixes
     (William), xmllint error go to stderr, DTD validation problem with
     namespace, memory leak (William), SAX1 cleanup and minimal options fixes
@@ -1515,14 +1515,14 @@
     Fleck), doc (Sven Zimmerman), I/O example.
    - Python bindings: fixes (William), enum support (Stéphane Bidoul),
     structured error reporting (Stéphane Bidoul)
-   - XInclude: various fixes for conformance, problem related to dictionnary
+   - XInclude: various fixes for conformance, problem related to dictionary
     references (William & me), recursion (William)
    - xmlWriter: indentation (Lucas Brasilino), memory leaks (Alfred
     Mickautsch),
    - xmlSchemas: normalizedString datatype (John Belmonte)
    - code cleanup for strings functions (William)
    - Windows: compiler patches (Mark Vakoc)
-   - Parser optimizations, a few new XPath and dictionnary APIs for future
+   - Parser optimizations, a few new XPath and dictionary APIs for future
     XSLT optimizations.
 
 
@@ -1617,8 +1617,8 @@
     of change
    - Increased the library modularity, far more options can be stripped out,
     a --with-minimum configuration will weight around 160KBytes
-   - Use per parser and per document dictionnary, allocate names and small
-    text nodes from the dictionnary
+   - Use per parser and per document dictionary, allocate names and small
+    text nodes from the dictionary
    - Switch to a SAX2 like parser rewrote most of the XML parser core,
     provides namespace resolution and defaulted attributes, minimize memory
     allocations and copies, namespace checking and specific error handling,
@@ -1665,7 +1665,7 @@
     (William), xmlCleanupParser (Marc Liyanage), CDATA output (William), HTTP
     error handling.
    - xmllint options: --dtdvalidfpi for Tobias Reif, --sax1 for compat
-    testing,  --nodict for building without tree dictionnary, --nocdata to
+    testing,  --nodict for building without tree dictionary, --nocdata to
     replace CDATA by text, --nsclean to remove surperfluous  namespace
     declarations
    - added xml2-config --libtool-libs option from Kevin P. Fleming
diff --git a/README.cvs-commits b/README.cvs-commits
index a4bd841..9c7bdd0 100644
--- a/README.cvs-commits
+++ b/README.cvs-commits
@@ -1,4 +1,4 @@
- Please read the HACKING file for instructions
+ Please read the CONTRIBUTING file for instructions
 
 Daniel
 
diff --git a/README.version b/README.version
new file mode 100644
index 0000000..93127fc
--- /dev/null
+++ b/README.version
@@ -0,0 +1,4 @@
+URL: ftp://xmlsoft.org/libxml2/libxml2-2.9.2.tar.gz
+Version: 2.9.2
+BugComponent: 1351
+AllAdvisories: yes
diff --git a/README.zOS b/README.zOS
new file mode 100644
index 0000000..6b6669a
--- /dev/null
+++ b/README.zOS
@@ -0,0 +1,212 @@
+Notes for compiling on zOS:
+
+- since testapi.c file is huge (over 52000 lines), it's compilation
+  fails: I skipped the problem by removing all references to testapi in the
+  Makefile.in, but it would be neater if one can build without test files
+  (I didn't find an option in configure...)
+
+- since the name of files (or qualifier) in PDS are limited to 8 I had to
+  rename xmlschemas.c and xmlschemastypes.c in (resp.) xmlsche.c xmlschet.c
+  (and I had to modify all occurences of these files accordingly in the
+  rest of the Makefile !!!).
+
+- in order to copy objects to PDS, I had the cp command at line 860
+  of Makefile.in
+
+libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES)
+        $(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) $(libxml2_la_LIBADD) $(LIBS)
+        # Copy objects to PDS
+        @list='$(libxml2_OBJECTS)' ; for p in $$list; do \
+          cp -ACMv $$p "//'<PDS NAME>'"; \
+        done
+
+	with <PDS NAME> stands for the name of my PDS and
+	
+libxml2_OBJECTS = SAX.o entities.o encoding.o error.o \
+	parserInternals.o parser.o tree.o hash.o list.o xmlIO.o \
+	xmlmemory.o uri.o valid.o xlink.o HTMLparser.o \
+	HTMLtree.o debugXML.o xpath.o xpointer.o xinclude.o \
+	nanohttp.o nanoftp.o triostr.o trio.o catalog.o globals.o \
+	threads.o c14n.o xmlstring.o buf.o xmlregexp.o \
+	xmlsche.o xmlschet.o xmlunicode.o \
+	xmlreader.o relaxng.o dict.o SAX2.o \
+	xmlwriter.o legacy.o chvalid.o pattern.o xmlsave.o \
+	xmlmodule.o schematron.o xzlib.o 
+
+In order to handle the support of zOS without breaking the existing
+Makefile maybe a new option/flag zOs would copy xmlschemas.c and
+xmlschemastypes.c files and use specifics targets rather than existing
+ones with the longer names... A variable to handle the PDS name has to
+be provided also...
+
+See patch below for set of changes to Makefile.in
+
+Stéphane Michaut <smichaut@axway.com>
+July 2017
+
+
+--- Makefile.in	2017-08-01 08:17:15.000000000 +0200
++++ Makefile-new.in	2017-08-01 08:07:26.000000000 +0200
+@@ -41,7 +41,7 @@
+ 	testSAX$(EXEEXT) testHTML$(EXEEXT) testXPath$(EXEEXT) \
+ 	testURI$(EXEEXT) testThreads$(EXEEXT) testC14N$(EXEEXT) \
+ 	testAutomata$(EXEEXT) testRegexp$(EXEEXT) testReader$(EXEEXT) \
+-	testapi$(EXEEXT) testModule$(EXEEXT) runtest$(EXEEXT) \
++	testModule$(EXEEXT) runtest$(EXEEXT) \
+ 	runsuite$(EXEEXT) testchar$(EXEEXT) testdict$(EXEEXT) \
+ 	runxmlconf$(EXEEXT) testrecurse$(EXEEXT) testlimits$(EXEEXT)
+ bin_PROGRAMS = xmllint$(EXEEXT) xmlcatalog$(EXEEXT)
+@@ -106,6 +106,7 @@
+ 	debugXML.c xpath.c xpointer.c xinclude.c nanohttp.c nanoftp.c \
+ 	DOCBparser.c catalog.c globals.c threads.c c14n.c xmlstring.c \
+ 	buf.c xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
++        xmlsche.c xmlschet.c \
+ 	triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \
+ 	xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c xmlmodule.c \
+ 	schematron.c xzlib.c
+@@ -118,10 +119,24 @@
+ 	nanohttp.lo nanoftp.lo $(am__objects_1) catalog.lo globals.lo \
+ 	threads.lo c14n.lo xmlstring.lo buf.lo xmlregexp.lo \
+ 	xmlschemas.lo xmlschemastypes.lo xmlunicode.lo \
++        xmlsche.lo xmlschet.lo \
+ 	$(am__objects_2) xmlreader.lo relaxng.lo dict.lo SAX2.lo \
+ 	xmlwriter.lo legacy.lo chvalid.lo pattern.lo xmlsave.lo \
+ 	xmlmodule.lo schematron.lo xzlib.lo
+ libxml2_la_OBJECTS = $(am_libxml2_la_OBJECTS)
++
++libxml2_OBJECTS = SAX.o entities.o encoding.o error.o \
++	parserInternals.o parser.o tree.o hash.o list.o xmlIO.o \
++	xmlmemory.o uri.o valid.o xlink.o HTMLparser.o \
++	HTMLtree.o debugXML.o xpath.o xpointer.o xinclude.o \
++	nanohttp.o nanoftp.o triostr.o trio.o catalog.o globals.o \
++	threads.o c14n.o xmlstring.o buf.o xmlregexp.o \
++	xmlschemas.o xmlschemastypes.o xmlunicode.o \
++	xmlsche.o xmlschemast.o \
++	xmlreader.o relaxng.o dict.o SAX2.o \
++	xmlwriter.o legacy.o chvalid.o pattern.o xmlsave.o \
++	xmlmodule.o schematron.o xzlib.o
++
+ AM_V_lt = $(am__v_lt_$(V))
+ am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+ am__v_lt_0 = --silent
+@@ -216,11 +231,6 @@
+ testXPath_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ 	$(testXPath_LDFLAGS) $(LDFLAGS) -o $@
+-am_testapi_OBJECTS = testapi.$(OBJEXT)
+-testapi_OBJECTS = $(am_testapi_OBJECTS)
+-testapi_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+-	$(testapi_LDFLAGS) $(LDFLAGS) -o $@
+ am_testchar_OBJECTS = testchar.$(OBJEXT)
+ testchar_OBJECTS = $(am_testchar_OBJECTS)
+ testchar_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+@@ -285,7 +295,7 @@
+ 	$(testReader_SOURCES) $(testRegexp_SOURCES) \
+ 	$(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \
+ 	$(testThreads_SOURCES) $(testURI_SOURCES) $(testXPath_SOURCES) \
+-	$(testapi_SOURCES) $(testchar_SOURCES) $(testdict_SOURCES) \
++	$(testchar_SOURCES) $(testdict_SOURCES) \
+ 	$(testlimits_SOURCES) $(testrecurse_SOURCES) \
+ 	$(xmlcatalog_SOURCES) $(xmllint_SOURCES)
+ DIST_SOURCES = $(am__libxml2_la_SOURCES_DIST) $(testdso_la_SOURCES) \
+@@ -295,7 +305,7 @@
+ 	$(testReader_SOURCES) $(testRegexp_SOURCES) \
+ 	$(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \
+ 	$(am__testThreads_SOURCES_DIST) $(testURI_SOURCES) \
+-	$(testXPath_SOURCES) $(testapi_SOURCES) $(testchar_SOURCES) \
++	$(testXPath_SOURCES) $(testchar_SOURCES) \
+ 	$(testdict_SOURCES) $(testlimits_SOURCES) \
+ 	$(testrecurse_SOURCES) $(xmlcatalog_SOURCES) \
+ 	$(xmllint_SOURCES)
+@@ -700,11 +710,6 @@
+ noinst_LTLIBRARIES = testdso.la
+ testdso_la_SOURCES = testdso.c
+ testdso_la_LDFLAGS = -module -no-undefined -avoid-version -rpath $(libdir)
+-BUILT_SOURCES = testapi.c
+-testapi_SOURCES = testapi.c
+-testapi_LDFLAGS = 
+-testapi_DEPENDENCIES = $(DEPS)
+-testapi_LDADD = $(LDADDS)
+ runxmlconf_SOURCES = runxmlconf.c
+ runxmlconf_LDFLAGS = 
+ runxmlconf_DEPENDENCIES = $(DEPS)
+@@ -854,6 +859,12 @@
+ 	done
+ libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES) 
+ 	$(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) $(libxml2_la_LIBADD) $(LIBS)
++        # Copie des obj
++	@list='$(libxml2_OBJECTS)' ; for p in $$list; do \
++	  echo "copy to PDS: $$p"; \
++	  cp -ACMv $$p "//'A009153.XRDEV230.FIC.OBJLIB.LIBXML'"; \
++	done 
++
+ testdso.la: $(testdso_la_OBJECTS) $(testdso_la_DEPENDENCIES) 
+ 	$(AM_V_CCLD)$(testdso_la_LINK)  $(testdso_la_OBJECTS) $(testdso_la_LIBADD) $(LIBS)
+ install-binPROGRAMS: $(bin_PROGRAMS)
+@@ -953,9 +964,6 @@
+ testXPath$(EXEEXT): $(testXPath_OBJECTS) $(testXPath_DEPENDENCIES) 
+ 	@rm -f testXPath$(EXEEXT)
+ 	$(AM_V_CCLD)$(testXPath_LINK) $(testXPath_OBJECTS) $(testXPath_LDADD) $(LIBS)
+-testapi$(EXEEXT): $(testapi_OBJECTS) $(testapi_DEPENDENCIES) 
+-	@rm -f testapi$(EXEEXT)
+-	$(AM_V_CCLD)$(testapi_LINK) $(testapi_OBJECTS) $(testapi_LDADD) $(LIBS)
+ testchar$(EXEEXT): $(testchar_OBJECTS) $(testchar_DEPENDENCIES) 
+ 	@rm -f testchar$(EXEEXT)
+ 	$(AM_V_CCLD)$(testchar_LINK) $(testchar_OBJECTS) $(testchar_LDADD) $(LIBS)
+@@ -1056,7 +1064,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testThreadsWin32.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testURI.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testXPath.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testapi.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testchar.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdict.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdso.Plo@am__quote@
+@@ -1755,18 +1762,6 @@
+ 	uninstall-local uninstall-m4dataDATA uninstall-man \
+ 	uninstall-man1 uninstall-man3 uninstall-pkgconfigDATA
+ 
+-
+-# that one forces the rebuild when "make rebuild" is run on doc/
+-rebuild_testapi:
+-	-@(if [ "$(PYTHON)" != "" ] ; then \
+-	    $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
+-
+-# that one is just to make sure it is rebuilt if missing
+-# but adding the dependances generate mess
+-testapi.c: $(srcdir)/gentest.py
+-	-@(if [ "$(PYTHON)" != "" ] ; then \
+-	    $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
+-
+ #testOOM_SOURCES=testOOM.c testOOMlib.h testOOMlib.c
+ #testOOM_LDFLAGS = 
+ #testOOM_DEPENDENCIES = $(DEPS)
+@@ -1775,7 +1770,7 @@
+ runtests:
+ 	[ -d test   ] || $(LN_S) $(srcdir)/test   .
+ 	[ -d result ] || $(LN_S) $(srcdir)/result .
+-	$(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
++	$(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
+ 	@(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
+ 	    $(MAKE) tests ; fi)
+ 
+@@ -1797,10 +1792,6 @@
+ 	    $(MAKE) tests ; fi)
+ 	@(cd doc/examples ; $(MAKE) tests)
+ 
+-APItests: testapi$(EXEEXT)
+-	@echo "## Running the API regression tests this may take a little while"
+-	-@($(CHECKER) $(top_builddir)/testapi -q)
+-
+ HTMLtests : testHTML$(EXEEXT)
+ 	@(echo > .memdump)
+ 	@echo "## HTML regression tests"
+@@ -2746,7 +2737,7 @@
+ dist-test: distdir
+ 	(mkdir -p $(distdir))
+ 	(cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn --exclude .git xstc/Tests) | (cd $(distdir); tar xf -)
+-	tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests  $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/testapi.c $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
++	tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests  $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
+ 	@(rm -rf $(distdir)/xstc/Test)
+ 
+ cleantar:
diff --git a/SAX2.c b/SAX2.c
index 5cbb700..0f261b7 100644
--- a/SAX2.c
+++ b/SAX2.c
@@ -12,6 +12,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <limits.h>
+#include <stddef.h>
 #include <libxml/xmlmemory.h>
 #include <libxml/tree.h>
 #include <libxml/parser.h>
@@ -1181,6 +1182,8 @@
 	        xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
 		if (name != NULL)
 		    xmlFree(name);
+                if (nval != NULL)
+                    xmlFree(nval);
 		return;
 	    }
 	} else {
@@ -1242,6 +1245,8 @@
 	        xmlFree(ns);
 		if (name != NULL)
 		    xmlFree(name);
+                if (nval != NULL)
+                    xmlFree(nval);
 		return;
 	    }
 	} else {
@@ -1311,6 +1316,8 @@
                                              name, namespace->href);
                         ctxt->wellFormed = 0;
                         if (ctxt->recovery == 0) ctxt->disableSAX = 1;
+                        if (name != NULL)
+                            xmlFree(name);
                         goto error;
                     }
                 }
@@ -1908,7 +1915,7 @@
 	    else {
 	        ret->line = 65535;
 		if (ctxt->options & XML_PARSE_BIG_LINES)
-		    ret->psvi = (void *) (long) ctxt->input->line;
+		    ret->psvi = (void *) (ptrdiff_t) ctxt->input->line;
 	    }
 	}
     }
@@ -2311,7 +2318,7 @@
 	} else {
             /*
              * any out of memory error would already have been raised
-             * but we can't be garanteed it's the actual error due to the
+             * but we can't be guaranteed it's the actual error due to the
              * API, best is to skip in this case
              */
 	    continue;
@@ -2805,7 +2812,8 @@
 	xmlTextConcat(lastChild, value, len);
     } else {
 	ret = xmlNewCDataBlock(ctxt->myDoc, value, len);
-	xmlAddChild(ctxt->node, ret);
+	if (xmlAddChild(ctxt->node, ret) == NULL)
+		xmlFreeNode(ret);
     }
 }
 
diff --git a/bakefile/libxml2.bkl b/bakefile/libxml2.bkl
index f314465..dd6ce2c 100644
--- a/bakefile/libxml2.bkl
+++ b/bakefile/libxml2.bkl
@@ -406,7 +406,6 @@
 	

 	

 	<!-- some other conditional defines -->

-	<set var="ZLIB_DEF"><if cond="WITH_ZLIB=='1'">HAVE_ZLIB_H</if></set>

 	<set var="DEBUG_DEF"><if cond="BUILD=='debug'">_DEBUG</if></set>

 	<set var="DEBUG_DEF"><if cond="BUILD=='release'">NDEBUG</if></set>

 	

diff --git a/buf.c b/buf.c
index 07922ff..21cb9d8 100644
--- a/buf.c
+++ b/buf.c
@@ -49,7 +49,7 @@
     size_t use;		        /* The buffer size used */
     size_t size;		/* The buffer size */
     xmlBufferPtr buffer;        /* wrapper for an old buffer */
-    int error;                  /* an error code if a failure occured */
+    int error;                  /* an error code if a failure occurred */
 };
 
 #ifdef WITH_BUFFER_COMPAT
@@ -231,7 +231,7 @@
 xmlBufCreateStatic(void *mem, size_t size) {
     xmlBufPtr ret;
 
-    if ((mem == NULL) || (size == 0))
+    if (mem == NULL)
         return(NULL);
 
     ret = (xmlBufPtr) xmlMalloc(sizeof(xmlBuf));
@@ -701,7 +701,7 @@
  * used in the buffer. It does not account for the terminating zero
  * usually needed
  *
- * Returns the amount or 0 if none or an error occured
+ * Returns the amount or 0 if none or an error occurred
  */
 
 size_t
diff --git a/c14n.c b/c14n.c
index ca77f92..c04ce66 100644
--- a/c14n.c
+++ b/c14n.c
@@ -89,7 +89,7 @@
 								 xmlNsPtr ns,
 								 xmlC14NCtxPtr ctx);
 
-static int			xmlC14NIsNodeInNodeset		(xmlNodeSetPtr nodes,
+static int			xmlC14NIsNodeInNodeset		(void *user_data,
 								 xmlNodePtr node,
 								 xmlNodePtr parent);
 
@@ -252,7 +252,8 @@
 #define XML_NAMESPACES_DEFAULT		16
 
 static int
-xmlC14NIsNodeInNodeset(xmlNodeSetPtr nodes, xmlNodePtr node, xmlNodePtr parent) {
+xmlC14NIsNodeInNodeset(void *user_data, xmlNodePtr node, xmlNodePtr parent) {
+    xmlNodeSetPtr nodes = (xmlNodeSetPtr) user_data;
     if((nodes != NULL) && (node != NULL)) {
 	if(node->type != XML_NAMESPACE_DECL) {
 	    return(xmlXPathNodeSetContains(nodes, node));
@@ -513,8 +514,10 @@
  * Returns -1 if ns1 < ns2, 0 if ns1 == ns2 or 1 if ns1 > ns2.
  */
 static int
-xmlC14NNsCompare(xmlNsPtr ns1, xmlNsPtr ns2)
+xmlC14NNsCompare(const void *data1, const void *data2)
 {
+    const xmlNsPtr ns1 = (const xmlNsPtr) data1;
+    const xmlNsPtr ns2 = (const xmlNsPtr) data2;
     if (ns1 == ns2)
         return (0);
     if (ns1 == NULL)
@@ -559,6 +562,11 @@
     return (1);
 }
 
+static int
+xmlC14NPrintNamespacesWalker(const void *ns, void *ctx) {
+    return xmlC14NPrintNamespaces((const xmlNsPtr) ns, (xmlC14NCtxPtr) ctx);
+}
+
 /**
  * xmlC14NProcessNamespacesAxis:
  * @ctx:		the C14N context
@@ -615,7 +623,7 @@
     /*
      * Create a sorted list to store element namespaces
      */
-    list = xmlListCreate(NULL, (xmlListDataCompare) xmlC14NNsCompare);
+    list = xmlListCreate(NULL, xmlC14NNsCompare);
     if (list == NULL) {
         xmlC14NErrInternal("creating namespaces list (c14n)");
         return (-1);
@@ -663,7 +671,7 @@
     /*
      * print out all elements from list
      */
-    xmlListWalk(list, (xmlListWalker) xmlC14NPrintNamespaces, (const void *) ctx);
+    xmlListWalk(list, xmlC14NPrintNamespacesWalker, (void *) ctx);
 
     /*
      * Cleanup
@@ -728,7 +736,7 @@
     /*
      * Create a sorted list to store element namespaces
      */
-    list = xmlListCreate(NULL, (xmlListDataCompare) xmlC14NNsCompare);
+    list = xmlListCreate(NULL, xmlC14NNsCompare);
     if (list == NULL) {
         xmlC14NErrInternal("creating namespaces list (exc c14n)");
         return (-1);
@@ -840,7 +848,7 @@
     /*
      * print out all elements from list
      */
-    xmlListWalk(list, (xmlListWalker) xmlC14NPrintNamespaces, (const void *) ctx);
+    xmlListWalk(list, xmlC14NPrintNamespacesWalker, (void *) ctx);
 
     /*
      * Cleanup
@@ -879,8 +887,10 @@
  * Returns -1 if attr1 < attr2, 0 if attr1 == attr2 or 1 if attr1 > attr2.
  */
 static int
-xmlC14NAttrsCompare(xmlAttrPtr attr1, xmlAttrPtr attr2)
+xmlC14NAttrsCompare(const void *data1, const void *data2)
 {
+    const xmlAttrPtr attr1 = (const xmlAttrPtr) data1;
+    const xmlAttrPtr attr2 = (const xmlAttrPtr) data2;
     int ret = 0;
 
     /*
@@ -931,8 +941,10 @@
  * Returns 1 on success or 0 on fail.
  */
 static int
-xmlC14NPrintAttrs(const xmlAttrPtr attr, xmlC14NCtxPtr ctx)
+xmlC14NPrintAttrs(const void *data, void *user)
 {
+    const xmlAttrPtr attr = (const xmlAttrPtr) data;
+    xmlC14NCtxPtr ctx = (xmlC14NCtxPtr) user;
     xmlChar *value;
     xmlChar *buffer;
 
@@ -1142,7 +1154,7 @@
     /*
      * Create a sorted list to store element attributes
      */
-    list = xmlListCreate(NULL, (xmlListDataCompare) xmlC14NAttrsCompare);
+    list = xmlListCreate(NULL, xmlC14NAttrsCompare);
     if (list == NULL) {
         xmlC14NErrInternal("creating attributes list");
         return (-1);
@@ -1331,7 +1343,7 @@
     /*
      * print out all elements from list
      */
-    xmlListWalk(list, (xmlListWalker) xmlC14NPrintAttrs, (const void *) ctx);
+    xmlListWalk(list, xmlC14NPrintAttrs, (void *) ctx);
 
     /*
      * Cleanup
@@ -1375,13 +1387,6 @@
                 xmlFreeURI(uri);
                 return (-1);
             }
-            if ((xmlStrcasecmp((const xmlChar *) uri->scheme, BAD_CAST "urn") != 0)
-                && (xmlStrcasecmp((const xmlChar *) uri->scheme, BAD_CAST "dav") !=0)
-                && (xmlStrlen((const xmlChar *) uri->server) == 0)) {
-                xmlC14NErrRelativeNamespace(uri->scheme);
-                xmlFreeURI(uri);
-                return (-1);
-            }
             xmlFreeURI(uri);
         }
         ns = ns->next;
@@ -1971,7 +1976,7 @@
                  int mode, xmlChar ** inclusive_ns_prefixes,
                  int with_comments, xmlOutputBufferPtr buf) {
     return(xmlC14NExecute(doc,
-			(xmlC14NIsVisibleCallback)xmlC14NIsNodeInNodeset,
+			xmlC14NIsNodeInNodeset,
 			nodes,
 			mode,
 			inclusive_ns_prefixes,
@@ -2084,7 +2089,7 @@
         xmlC14NErrParam("saving doc");
         return (-1);
     }
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     if (compression < 0)
         compression = xmlGetCompressMode();
 #endif
diff --git a/catalog.c b/catalog.c
index 6dfdfbb..f814121 100644
--- a/catalog.c
+++ b/catalog.c
@@ -319,12 +319,13 @@
 
 /**
  * xmlFreeCatalogEntry:
- * @ret:  a Catalog entry
+ * @payload:  a Catalog entry
  *
  * Free the memory allocated to a Catalog entry
  */
 static void
-xmlFreeCatalogEntry(xmlCatalogEntryPtr ret) {
+xmlFreeCatalogEntry(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlCatalogEntryPtr ret = (xmlCatalogEntryPtr) payload;
     if (ret == NULL)
 	return;
     /*
@@ -367,20 +368,22 @@
 
     while (ret != NULL) {
 	next = ret->next;
-	xmlFreeCatalogEntry(ret);
+	xmlFreeCatalogEntry(ret, NULL);
 	ret = next;
     }
 }
 
 /**
  * xmlFreeCatalogHashEntryList:
- * @ret:  a Catalog entry list
+ * @payload:  a Catalog entry list
  *
  * Free the memory allocated to list of Catalog entries from the
  * catalog file hash.
  */
 static void
-xmlFreeCatalogHashEntryList(xmlCatalogEntryPtr catal) {
+xmlFreeCatalogHashEntryList(void *payload,
+                            const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlCatalogEntryPtr catal = (xmlCatalogEntryPtr) payload;
     xmlCatalogEntryPtr children, next;
 
     if (catal == NULL)
@@ -391,11 +394,11 @@
 	next = children->next;
 	children->dealloc = 0;
 	children->children = NULL;
-	xmlFreeCatalogEntry(children);
+	xmlFreeCatalogEntry(children, NULL);
 	children = next;
     }
     catal->dealloc = 0;
-    xmlFreeCatalogEntry(catal);
+    xmlFreeCatalogEntry(catal, NULL);
 }
 
 /**
@@ -440,8 +443,7 @@
     if (catal->xml != NULL)
 	xmlFreeCatalogEntryList(catal->xml);
     if (catal->sgml != NULL)
-	xmlHashFree(catal->sgml,
-		(xmlHashDeallocator) xmlFreeCatalogEntry);
+	xmlHashFree(catal->sgml, xmlFreeCatalogEntry);
     xmlFree(catal);
 }
 
@@ -460,7 +462,10 @@
  * Serialize an SGML Catalog entry
  */
 static void
-xmlCatalogDumpEntry(xmlCatalogEntryPtr entry, FILE *out) {
+xmlCatalogDumpEntry(void *payload, void *data,
+                    const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlCatalogEntryPtr entry = (xmlCatalogEntryPtr) payload;
+    FILE *out = (FILE *) data;
     if ((entry == NULL) || (out == NULL))
 	return;
     switch (entry->type) {
@@ -723,7 +728,10 @@
  * Convert one entry from the catalog
  */
 static void
-xmlCatalogConvertEntry(xmlCatalogEntryPtr entry, xmlCatalogPtr catal) {
+xmlCatalogConvertEntry(void *payload, void *data,
+                       const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlCatalogEntryPtr entry = (xmlCatalogEntryPtr) payload;
+    xmlCatalogPtr catal = (xmlCatalogPtr) data;
     if ((entry == NULL) || (catal == NULL) || (catal->sgml == NULL) ||
 	(catal->xml == NULL))
 	return;
@@ -756,8 +764,7 @@
 	    entry->type = XML_CATA_CATALOG;
 	    break;
 	default:
-	    xmlHashRemoveEntry(catal->sgml, entry->name,
-		               (xmlHashDeallocator) xmlFreeCatalogEntry);
+	    xmlHashRemoveEntry(catal->sgml, entry->name, xmlFreeCatalogEntry);
 	    return;
     }
     /*
@@ -797,9 +804,7 @@
 	xmlGenericError(xmlGenericErrorContext,
 		"Converting SGML catalog to XML\n");
     }
-    xmlHashScan(catal->sgml,
-		(xmlHashScanner) xmlCatalogConvertEntry,
-		&catal);
+    xmlHashScan(catal->sgml, xmlCatalogConvertEntry, &catal);
     return(0);
 }
 
@@ -2396,6 +2401,7 @@
 		case SGML_CATA_ENTITY:
 		    if (*cur == '%')
 			type = SGML_CATA_PENTITY;
+                    /* Falls through. */
 		case SGML_CATA_PENTITY:
 		case SGML_CATA_DOCTYPE:
 		case SGML_CATA_LINKTYPE:
@@ -2485,7 +2491,7 @@
 			                       NULL, XML_CATA_PREFER_NONE, NULL);
 		    res = xmlHashAddEntry(catal->sgml, name, entry);
 		    if (res < 0) {
-			xmlFreeCatalogEntry(entry);
+			xmlFreeCatalogEntry(entry, NULL);
 		    }
 		    xmlFree(filename);
 		}
@@ -2498,7 +2504,7 @@
 			                       XML_CATA_PREFER_NONE, NULL);
 		    res = xmlHashAddEntry(catal->sgml, sysid, entry);
 		    if (res < 0) {
-			xmlFreeCatalogEntry(entry);
+			xmlFreeCatalogEntry(entry, NULL);
 		    }
 		} else {
 		    xmlChar *filename;
@@ -2936,8 +2942,7 @@
     if (catal->type == XML_XML_CATALOG_TYPE) {
 	xmlDumpXMLCatalog(out, catal->xml);
     } else {
-	xmlHashScan(catal->sgml,
-		    (xmlHashScanner) xmlCatalogDumpEntry, out);
+	xmlHashScan(catal->sgml, xmlCatalogDumpEntry, out);
     }
 }
 #endif /* LIBXML_OUTPUT_ENABLED */
@@ -3001,8 +3006,7 @@
     if (catal->type == XML_XML_CATALOG_TYPE) {
 	res = xmlDelXMLCatalog(catal->xml, value);
     } else {
-	res = xmlHashRemoveEntry(catal->sgml, value,
-		(xmlHashDeallocator) xmlFreeCatalogEntry);
+	res = xmlHashRemoveEntry(catal->sgml, value, xmlFreeCatalogEntry);
 	if (res == 0)
 	    res = 1;
     }
@@ -3283,8 +3287,7 @@
 	xmlGenericError(xmlGenericErrorContext,
 		"Catalogs cleanup\n");
     if (xmlCatalogXMLFiles != NULL)
-	xmlHashFree(xmlCatalogXMLFiles,
-		    (xmlHashDeallocator)xmlFreeCatalogHashEntryList);
+	xmlHashFree(xmlCatalogXMLFiles, xmlFreeCatalogHashEntryList);
     xmlCatalogXMLFiles = NULL;
     if (xmlDefaultCatalog != NULL)
 	xmlFreeCatalog(xmlDefaultCatalog);
diff --git a/config.h b/config.h
index 1c74220..7eddb03 100644
--- a/config.h
+++ b/config.h
@@ -110,9 +110,7 @@
 /* #undef HAVE_LZMA_H */
 
 /* Define to 1 if you have the <malloc.h> header file. */
-#ifndef HAVE_MALLOC_H /* Already in AndroidConfig.h :-( */
 #define HAVE_MALLOC_H 1
-#endif
 
 /* Define to 1 if you have the <math.h> header file. */
 #define HAVE_MATH_H 1
diff --git a/configure.ac b/configure.ac
index 14ac0a8..370e2de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,12 +3,13 @@
 AC_INIT
 AC_CONFIG_SRCDIR([entities.c])
 AC_CONFIG_HEADERS([config.h])
+AM_MAINTAINER_MODE([enable])
 AC_CONFIG_MACRO_DIR([m4])
 AC_CANONICAL_HOST
 
 LIBXML_MAJOR_VERSION=2
 LIBXML_MINOR_VERSION=9
-LIBXML_MICRO_VERSION=2
+LIBXML_MICRO_VERSION=8
 LIBXML_MICRO_VERSION_SUFFIX=
 LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX
 LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
@@ -158,7 +159,7 @@
   if test "$withval" != "no" -a "$withval" != "yes"; then
     RDL_DIR=$withval
     CPPFLAGS="${CPPFLAGS} -I$withval/include"
-    LIBS="${LIBS} -L$withval/lib"
+    LDFLAGS="${LDFLAGS} -L$withval/lib"
   fi
 ])
 AC_ARG_WITH(regexps,
@@ -194,7 +195,7 @@
   if test "$withval" != "no" -a "$withval" != "yes"; then
     Z_DIR=$withval
     CPPFLAGS="${CPPFLAGS} -I$withval/include"
-    LIBS="${LIBS} -L$withval/lib"
+    LDFLAGS="${LDFLAGS} -L$withval/lib"
   fi
 ])
 AC_ARG_WITH(lzma,
@@ -202,7 +203,7 @@
   if test "$withval" != "no" -a "$withval" != "yes"; then
     LZMA_DIR=$withval
     CPPFLAGS="${CPPFLAGS} -I$withval/include"
-    LIBS="${LIBS} -L$withval/lib"
+    LDFLAGS="${LDFLAGS} -L$withval/lib"
   fi
 ])
 AC_ARG_WITH(coverage,
@@ -388,26 +389,33 @@
 
 WITH_ZLIB=0
 if test "$with_zlib" = "no"; then
-    echo "Disabling compression support"
+    echo "Disabling zlib compression support"
 else
-    AC_CHECK_HEADERS(zlib.h,
-        [SAVE_LDFLAGS="${LDFLAGS}"
-	 LDFLAGS="-L${Z_DIR}/lib"
-	AC_CHECK_LIB(z, gzread,[
-	    AC_DEFINE([HAVE_LIBZ], [1], [Have compression library])
-	    WITH_ZLIB=1
-	    if test "x${Z_DIR}" != "x"; then
-		Z_CFLAGS="-I${Z_DIR}/include"
-		Z_LIBS="-L${Z_DIR}/lib -lz"
-		[case ${host} in
-		    *-*-solaris*)
-			Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
-			;;
-		esac]
-	    else
-		Z_LIBS="-lz"
-	    fi])
-	 LDFLAGS="${SAVE_LDFLAGS}"])
+    # Don't run pkg-config if with_zlib contains a path.
+    if test "x$Z_DIR" = "x"; then
+        # Try pkg-config first so that static linking works.
+        PKG_CHECK_MODULES([Z],[zlib],
+            [WITH_ZLIB=1],
+            [ ])
+    fi
+
+    if test "$WITH_ZLIB" = "0"; then
+        AC_CHECK_HEADERS(zlib.h,
+            AC_CHECK_LIB(z, gzread,[
+                WITH_ZLIB=1
+                if test "x${Z_DIR}" != "x"; then
+                    Z_CFLAGS="-I${Z_DIR}/include"
+                    Z_LIBS="-L${Z_DIR}/lib -lz"
+                    [case ${host} in
+                        *-*-solaris*)
+                            Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
+                            ;;
+                    esac]
+                else
+                    Z_LIBS="-lz"
+                fi])
+            )
+    fi
 fi
 
 AC_SUBST(Z_CFLAGS)
@@ -420,37 +428,30 @@
 
 WITH_LZMA=0
 if test "$with_lzma" = "no"; then
-    echo "Disabling compression support"
+    echo "Disabling lzma compression support"
 else
-    # Try pkg-config first so that static linking works.
-    # If this succeeeds, we ignore the WITH_LZMA directory.
-    PKG_CHECK_MODULES([LZMA],[liblzma],
-        [have_liblzma=yes],
-        [have_liblzma=no])
+    # Don't run pkg-config if with_lzma contains a path.
+    if test "x$LZMA_DIR" = "x"; then
+        # Try pkg-config first so that static linking works.
+        PKG_CHECK_MODULES([LZMA],[liblzma],
+            [WITH_LZMA=1],
+            [ ])
+    fi
 
-     # If pkg-config failed, fall back to AC_CHECK_LIB. This
-     # will not pick up the necessary LIBS flags for liblzma's
-     # private dependencies, though, so static linking may fail.
-     if test "x$have_liblzma" = "xno"; then
-         AC_CHECK_HEADERS(lzma.h,
-	    [SAVE_LDFLAGS="${LDFLAGS}"
-	     LDFLAGS="-L${LZMA_DIR}/lib"
+    # If pkg-config failed, fall back to AC_CHECK_LIB. This
+    # will not pick up the necessary LIBS flags for liblzma's
+    # private dependencies, though, so static linking may fail.
+    if test "$WITH_LZMA" = "0"; then
+        AC_CHECK_HEADERS(lzma.h,
             AC_CHECK_LIB(lzma, lzma_code,[
-                have_liblzma=yes
+                WITH_LZMA=1
                 if test "x${LZMA_DIR}" != "x"; then
                     LZMA_CFLAGS="-I${LZMA_DIR}/include"
                     LZMA_LIBS="-L${LZMA_DIR}/lib -llzma"
                 else
                     LZMA_LIBS="-llzma"
-                fi],
-                [have_liblzma=no])
-	     LDFLAGS="${SAVE_LDFLAGS}"])
-    fi
-
-    # Found the library via either method?
-    if test "x$have_liblzma" = "xyes"; then
-        AC_DEFINE([HAVE_LIBLZMA], [1], [Have compression library])
-        WITH_LZMA=1
+                fi])
+            )
     fi
 fi
 
@@ -478,12 +479,8 @@
 AC_CHECK_HEADERS([stdint.h])
 AC_CHECK_HEADERS([inttypes.h])
 AC_CHECK_HEADERS([time.h])
-AC_CHECK_HEADERS([ansidecl.h])
-AC_CHECK_HEADERS([ieeefp.h])
-AC_CHECK_HEADERS([nan.h])
 AC_CHECK_HEADERS([math.h])
 AC_CHECK_HEADERS([limits.h])
-AC_CHECK_HEADERS([fp_class.h])
 AC_CHECK_HEADERS([float.h])
 AC_CHECK_HEADERS([stdlib.h])
 AC_CHECK_HEADERS([sys/socket.h], [], [],
@@ -540,10 +537,8 @@
 
 dnl Checks for library functions.
 AC_FUNC_STRFTIME
-AC_CHECK_FUNCS(strdup strndup strerror)
-AC_CHECK_FUNCS(finite isnand fp_class class fpclass)
 AC_CHECK_FUNCS(strftime localtime gettimeofday ftime)
-AC_CHECK_FUNCS(stat _stat signal)
+AC_CHECK_FUNCS(stat signal)
 AC_CHECK_FUNCS(rand rand_r srand time)
 AC_CHECK_FUNCS(isascii mmap munmap putenv)
 
@@ -754,13 +749,13 @@
 if test "${GCC}" != "yes" ; then
     case "${host}" in
           hppa*-*-hpux* )
-	       CFLAGS="${CFLAGS} -Wp,-H30000"
+	       EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wp,-H30000"
 	       ;;
           *-dec-osf* )
-               CFLAGS="${CFLAGS} -ieee"
+               EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
                ;;
 	  alpha*-*-linux* )
-	       CFLAGS="${CFLAGS} -ieee"
+	       EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
 	       ;;
     esac
 else
@@ -770,19 +765,19 @@
 	# Not activated by default because this inflates the code size
 	# Used to allow propagation of C++ exceptions through the library
 	#
-	CFLAGS="${CFLAGS} -fexceptions"
+	EXTRA_CFLAGS="${EXTRA_CFLAGS} -fexceptions"
     fi
 
     # warnings we'd like to see
-    CFLAGS="${CFLAGS} -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
+    EXTRA_CFLAGS="${EXTRA_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
     # warnings we'd like to supress
-    CFLAGS="${CFLAGS} -Wno-long-long"
+    EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-long-long -Wno-format-extra-args -Wno-array-bounds"
     case "${host}" in
           alpha*-*-linux* )
-	       CFLAGS="${CFLAGS} -mieee"
+	       EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
 	       ;;
 	  alpha*-*-osf* )
-	       CFLAGS="${CFLAGS} -mieee"
+	       EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
 	       ;;
     esac
 fi
@@ -795,13 +790,13 @@
 	;;
     *-*-mingw* | *-*-cygwin* | *-*-msvc* )
         # If the host is Windows, and shared libraries are disabled, we
-        # need to add -DLIBXML_STATIC to CFLAGS in order for linking to
+        # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to
         # work properly (without it, xmlexports.h would force the use of
         # DLL imports, which obviously aren't present in a static
         # library).
         if test "x$enable_shared" = "xno"; then
             XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC"
-            CFLAGS="$CFLAGS -DLIBXML_STATIC"
+            EXTRA_CFLAGS="$EXTRA_CFLAGS -DLIBXML_STATIC"
         fi
         ;;
 esac
@@ -993,7 +988,7 @@
 	fi
     fi
     if test "${GCC}" = "yes" ; then
-    CFLAGS="-g -O -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
+    EXTRA_CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
     fi
     STATIC_BINARIES="-static"
 dnl -Wcast-qual -ansi
@@ -1036,9 +1031,9 @@
 else
     echo Enabling multithreaded support
 
-    dnl Default to native threads on Win32
+    dnl Default to native threads on Windows
     case $host_os in
-       *mingw32*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then
+       *mingw*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then
                WITH_THREADS="1"
                THREADS_W32="1"
                THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS"
@@ -1476,8 +1471,6 @@
 	*) M_LIBS="-lm"
 	;;
 esac
-XML_LIBS="-lxml2 $Z_LIBS $THREAD_LIBS $ICONV_LIBS $M_LIBS $LIBS"
-XML_LIBTOOLLIBS="libxml2.la"
 AC_SUBST(WITH_ICONV)
 
 WITH_ICU=0
@@ -1485,18 +1478,64 @@
 if test "$with_icu" != "yes" ; then
     echo Disabling ICU support
 else
-    ICU_CONFIG=icu-config
-    if ${ICU_CONFIG} --cflags >/dev/null 2>&1
-    then
-        ICU_LIBS=`${ICU_CONFIG} --ldflags`
+    # Try pkg-config first so that static linking works.
+    # If this succeeeds, we ignore the WITH_ICU directory.
+    PKG_CHECK_MODULES([ICU],[icu-i18n],
+        [have_libicu=yes],
+        [have_libicu=no])
+
+    # If pkg-config failed, fall back to AC_CHECK_LIB. This
+    # will not pick up the necessary LIBS flags for liblzma's
+    # private dependencies, though, so static linking may fail.
+    if test "x$have_libicu" = "xno"; then
+        ICU_CONFIG=icu-config
+        if ${ICU_CONFIG} --cflags >/dev/null 2>&1
+        then
+            ICU_LIBS=`${ICU_CONFIG} --ldflags`
+            have_libicu=yes
+            echo Enabling ICU support
+        else
+            if test "$with_icu" != "yes" -a "$with_iconv" != "" ; then
+                CPPFLAGS="${CPPFLAGS} -I$with_icu"
+                # Export this since our headers include icu.h
+                XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_icu"
+            fi
+
+            AC_CHECK_HEADER(unicode/ucnv.h,
+            AC_MSG_CHECKING(for icu)
+            AC_TRY_LINK([#include <unicode/ucnv.h>],[
+        UConverter *utf = ucnv_open("UTF-8", NULL);],[
+                AC_MSG_RESULT(yes)
+                have_libicu=yes],[
+                AC_MSG_RESULT(no)
+                AC_MSG_CHECKING(for icu in -licucore)
+
+                _ldflags="${LDFLAGS}"
+                _libs="${LIBS}"
+                LDFLAGS="${LDFLAGS} ${ICU_LIBS}"
+                LIBS="${LIBS} -licucore"
+
+                AC_TRY_LINK([#include <unicode/ucnv.h>],[
+        UConverter *utf = ucnv_open("UTF-8", NULL);],[
+                    AC_MSG_RESULT(yes)
+                    have_libicu=yes
+                    ICU_LIBS="${ICU_LIBS} -licucore"
+                    LIBS="${_libs}"
+                    LDFLAGS="${_ldflags}"],[
+                    AC_MSG_RESULT(no)
+                    LIBS="${_libs}"
+                LDFLAGS="${_ldflags}"])]))
+        fi
+    fi
+
+    # Found the library via either method?
+    if test "x$have_libicu" = "xyes"; then
         WITH_ICU=1
-        echo Enabling ICU support
-    else
-        AC_MSG_ERROR([libicu config program icu-config not found])
     fi
 fi
+XML_LIBS="-lxml2 $Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $M_LIBS $LIBS"
+XML_LIBTOOLLIBS="libxml2.la"
 AC_SUBST(WITH_ICU)
-AC_SUBST(ICU_LIBS)
 
 WITH_ISO8859X=1
 if test "$WITH_ICONV" != "1" ; then
@@ -1579,7 +1618,6 @@
  CPPFLAGS="$CPPFLAGS -DWIN32"
  WIN32_EXTRA_LIBADD="-lws2_32"
  WIN32_EXTRA_LDFLAGS="-no-undefined"
- AC_DEFINE([_WINSOCKAPI_],1,[Using the Win32 Socket implementation])
  if test "${PYTHON}" != ""
  then
    WIN32_EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)"
@@ -1620,14 +1658,14 @@
 if test "$with_coverage" = "yes" -a "${GCC}" = "yes"
 then
     echo Enabling code coverage for GCC
-    CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
+    EXTRA_CFLAGS="$EXTRA_CFLAGS -fprofile-arcs -ftest-coverage"
     LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage"
 else
     echo Disabling code coverage for GCC
 fi
 
 AC_SUBST(CPPFLAGS)
-AC_SUBST(CFLAGS)
+AC_SUBST(EXTRA_CFLAGS)
 AC_SUBST(LDFLAGS)
 AC_SUBST(XML_CFLAGS)
 
@@ -1635,6 +1673,7 @@
 AC_SUBST(XML_LIBS)
 AC_SUBST(XML_LIBTOOLLIBS)
 AC_SUBST(ICONV_LIBS)
+AC_SUBST(ICU_LIBS)
 AC_SUBST(XML_INCLUDEDIR)
 AC_SUBST(HTML_DIR)
 AC_SUBST(HAVE_ISNAN)
diff --git a/debugXML.c b/debugXML.c
index a1b550a..c98db0b 100644
--- a/debugXML.c
+++ b/debugXML.c
@@ -1229,8 +1229,11 @@
 }
 
 static void
-xmlCtxtDumpEntityCallback(xmlEntityPtr cur, xmlDebugCtxtPtr ctxt)
+xmlCtxtDumpEntityCallback(void *payload, void *data,
+                          const xmlChar *name ATTRIBUTE_UNUSED)
 {
+    xmlEntityPtr cur = (xmlEntityPtr) payload;
+    xmlDebugCtxtPtr ctxt = (xmlDebugCtxtPtr) data;
     if (cur == NULL) {
         if (!ctxt->check)
             fprintf(ctxt->output, "Entity is NULL");
@@ -1289,8 +1292,7 @@
 
         if (!ctxt->check)
             fprintf(ctxt->output, "Entities in internal subset\n");
-        xmlHashScan(table, (xmlHashScanner) xmlCtxtDumpEntityCallback,
-                    ctxt);
+        xmlHashScan(table, xmlCtxtDumpEntityCallback, ctxt);
     } else
         fprintf(ctxt->output, "No entities in internal subset\n");
     if ((doc->extSubset != NULL) && (doc->extSubset->entities != NULL)) {
@@ -1299,8 +1301,7 @@
 
         if (!ctxt->check)
             fprintf(ctxt->output, "Entities in external subset\n");
-        xmlHashScan(table, (xmlHashScanner) xmlCtxtDumpEntityCallback,
-                    ctxt);
+        xmlHashScan(table, xmlCtxtDumpEntityCallback, ctxt);
     } else if (!ctxt->check)
         fprintf(ctxt->output, "No entities in external subset\n");
 }
@@ -2931,7 +2932,7 @@
 		  fprintf(ctxt->output, "\tvalidate     check the document for errors\n");
 #endif /* LIBXML_VALID_ENABLED */
 #ifdef LIBXML_SCHEMAS_ENABLED
-		  fprintf(ctxt->output, "\trelaxng rng  validate the document agaisnt the Relax-NG schemas\n");
+		  fprintf(ctxt->output, "\trelaxng rng  validate the document against the Relax-NG schemas\n");
 #endif
 		  fprintf(ctxt->output, "\tgrep string  search for a string in the subtree\n");
 #ifdef LIBXML_VALID_ENABLED
diff --git a/dict.c b/dict.c
index c0585fe..0ef3718 100644
--- a/dict.c
+++ b/dict.c
@@ -48,7 +48,7 @@
 #else
 #ifdef HAVE_INTTYPES_H
 #include <inttypes.h>
-#elif defined(WIN32)
+#elif defined(_WIN32)
 typedef unsigned __int32 uint32_t;
 #endif
 #endif
@@ -249,7 +249,7 @@
 #endif
     pool = dict->strings;
     while (pool != NULL) {
-	if (pool->end - pool->free > namelen)
+	if ((size_t)(pool->end - pool->free) > namelen)
 	    goto found_pool;
 	if (pool->size > size) size = pool->size;
         limit += pool->size;
@@ -317,7 +317,7 @@
 #endif
     pool = dict->strings;
     while (pool != NULL) {
-	if (pool->end - pool->free > namelen + plen + 1)
+	if ((size_t)(pool->end - pool->free) > namelen + plen + 1)
 	    goto found_pool;
 	if (pool->size > size) size = pool->size;
         limit += pool->size;
@@ -453,14 +453,23 @@
     }
     switch (namelen) {
         case 10: value += name[9];
+        /* Falls through. */
         case 9: value += name[8];
+        /* Falls through. */
         case 8: value += name[7];
+        /* Falls through. */
         case 7: value += name[6];
+        /* Falls through. */
         case 6: value += name[5];
+        /* Falls through. */
         case 5: value += name[4];
+        /* Falls through. */
         case 4: value += name[3];
+        /* Falls through. */
         case 3: value += name[2];
+        /* Falls through. */
         case 2: value += name[1];
+        /* Falls through. */
         default: break;
     }
     return(value);
@@ -496,15 +505,25 @@
     }
     switch (plen) {
         case 10: value += prefix[9];
+        /* Falls through. */
         case 9: value += prefix[8];
+        /* Falls through. */
         case 8: value += prefix[7];
+        /* Falls through. */
         case 7: value += prefix[6];
+        /* Falls through. */
         case 6: value += prefix[5];
+        /* Falls through. */
         case 5: value += prefix[4];
+        /* Falls through. */
         case 4: value += prefix[3];
+        /* Falls through. */
         case 3: value += prefix[2];
+        /* Falls through. */
         case 2: value += prefix[1];
+        /* Falls through. */
         case 1: value += prefix[0];
+        /* Falls through. */
         default: break;
     }
     len -= plen;
@@ -514,15 +533,25 @@
     }
     switch (len) {
         case 10: value += name[9];
+        /* Falls through. */
         case 9: value += name[8];
+        /* Falls through. */
         case 8: value += name[7];
+        /* Falls through. */
         case 7: value += name[6];
+        /* Falls through. */
         case 6: value += name[5];
+        /* Falls through. */
         case 5: value += name[4];
+        /* Falls through. */
         case 4: value += name[3];
+        /* Falls through. */
         case 3: value += name[2];
+        /* Falls through. */
         case 2: value += name[1];
+        /* Falls through. */
         case 1: value += name[0];
+        /* Falls through. */
         default: break;
     }
     return(value);
@@ -533,7 +562,7 @@
  *
  * Create a new dictionary
  *
- * Returns the newly created dictionary, or NULL if an error occured.
+ * Returns the newly created dictionary, or NULL if an error occurred.
  */
 xmlDictPtr
 xmlDictCreate(void) {
@@ -580,7 +609,7 @@
  * new dictionary, then in @sub, and if not found are created in the
  * new dictionary.
  *
- * Returns the newly created dictionary, or NULL if an error occured.
+ * Returns the newly created dictionary, or NULL if an error occurred.
  */
 xmlDictPtr
 xmlDictCreateSub(xmlDictPtr sub) {
@@ -699,7 +728,7 @@
 	    } else {
 	        /*
 		 * we don't have much ways to alert from herei
-		 * result is loosing an entry and unicity garantee
+		 * result is losing an entry and unicity guarantee
 		 */
 	        ret = -1;
 	    }
diff --git a/doc/APIchunk0.html b/doc/APIchunk0.html
index c90e042..f778327 100644
--- a/doc/APIchunk0.html
+++ b/doc/APIchunk0.html
@@ -104,6 +104,7 @@
 <a href="html/libxml-globals.html#xmlCleanupGlobals">xmlCleanupGlobals</a><br />
 <a href="html/libxml-globals.html#xmlInitGlobals">xmlInitGlobals</a><br />
 </dd><dt>AegeanNumbers</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsAegeanNumbers">xmlUCSIsAegeanNumbers</a><br />
+</dd><dt>Alias</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
 </dd><dt>All</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
 <a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
 <a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
@@ -222,8 +223,6 @@
 <a href="html/libxml-parserInternals.html#IS_LETTER">IS_LETTER</a><br />
 <a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
 </dd><dt>Based</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>BasicLatin</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBasicLatin">xmlUCSIsBasicLatin</a><br />
 </dd><dt>Basically</dt><dd><a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
 </dd><dt>Before</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
@@ -242,6 +241,7 @@
 </dd><dt>Bopomofo</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofo">xmlUCSIsBopomofo</a><br />
 </dd><dt>BopomofoExtended</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofoExtended">xmlUCSIsBopomofoExtended</a><br />
 </dd><dt>Both</dt><dd><a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
 <a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
 <a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
 <a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
diff --git a/doc/APIchunk12.html b/doc/APIchunk12.html
index de376f7..d7404f8 100644
--- a/doc/APIchunk12.html
+++ b/doc/APIchunk12.html
@@ -865,8 +865,6 @@
 </dd><dt>crossed</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
 </dd><dt>cshema</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a><br />
-</dd><dt>ctrio</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>ctxt</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
 <a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
 <a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
diff --git a/doc/APIchunk13.html b/doc/APIchunk13.html
index b1f069d..5889ebf 100644
--- a/doc/APIchunk13.html
+++ b/doc/APIchunk13.html
@@ -341,8 +341,6 @@
 <a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
 <a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>detected</dt><dd><a href="html/libxml-xpathInternals.html#CHECK_ERROR">CHECK_ERROR</a><br />
 <a href="html/libxml-xpathInternals.html#CHECK_ERROR0">CHECK_ERROR0</a><br />
 <a href="html/libxml-SAX.html#endDocument">endDocument</a><br />
@@ -383,34 +381,6 @@
 <a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
 </dd><dt>dict</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
 </dd><dt>dictionaries</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
-</dd><dt>dictionary</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
-<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
-<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
-<a href="html/libxml-dict.html#xmlDictCleanup">xmlDictCleanup</a><br />
-<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
-<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
-<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
-<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
-<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
-<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
-<a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
-<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
-<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
-<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
-<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
-</dd><dt>dictionnary</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
-<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
-<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
-<a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
-<a href="html/libxml-dict.html#xmlDictFree">xmlDictFree</a><br />
-<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
-<a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
-<a href="html/libxml-dict.html#xmlDictOwns">xmlDictOwns</a><br />
-<a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
-<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
-<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
-<a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
-<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
 </dd><dt>did</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
@@ -545,6 +515,7 @@
 <a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
 <a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
 <a href="html/libxml-tree.html#xmlRemoveProp">xmlRemoveProp</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
 <a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
 <a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
diff --git a/doc/APIchunk14.html b/doc/APIchunk14.html
index 0e33ddb..835465a 100644
--- a/doc/APIchunk14.html
+++ b/doc/APIchunk14.html
@@ -210,6 +210,7 @@
 <a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
 <a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br />
 <a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
 <a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
 <a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
 <a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
@@ -322,7 +323,6 @@
 <a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
 <a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a><br />
-<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
 </dd><dt>event</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
diff --git a/doc/APIchunk16.html b/doc/APIchunk16.html
index 92d3845..e7e236d 100644
--- a/doc/APIchunk16.html
+++ b/doc/APIchunk16.html
@@ -42,7 +42,6 @@
 </dd><dt>gMonthDay</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
 </dd><dt>gYear</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
 </dd><dt>gYearMonth</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
-</dd><dt>garanteed</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
 </dd><dt>garbage</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
 <a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
 </dd><dt>gcc</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
@@ -183,6 +182,7 @@
 <a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
 </dd><dt>guaranteed</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
 <a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
 </dd><dt>guess</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
 <a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
 </dd></dl><h2>Letter h:</h2><dl><dt>had</dt><dd><a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
@@ -194,6 +194,7 @@
 <a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
 <a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
 <a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
 </dd><dt>handlers</dt><dd><a href="html/libxml-xlink.html#xlinkSetDefaultHandler">xlinkSetDefaultHandler</a><br />
 <a href="html/libxml-encoding.html#xmlCleanupCharEncodingHandlers">xmlCleanupCharEncodingHandlers</a><br />
 <a href="html/libxml-xmlIO.html#xmlRegisterDefaultInputCallbacks">xmlRegisterDefaultInputCallbacks</a><br />
@@ -339,8 +340,6 @@
 <a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
 <a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>human-readable</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
 </dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
 <a href="APIchunk1.html">C-C</a>
diff --git a/doc/APIchunk17.html b/doc/APIchunk17.html
index 070f8ce..e6647e2 100644
--- a/doc/APIchunk17.html
+++ b/doc/APIchunk17.html
@@ -267,6 +267,7 @@
 <a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
 </dd><dt>infinity</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
 </dd><dt>info</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 <a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
@@ -512,9 +513,7 @@
 <a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
 <a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
 </dd><dt>invited</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
-</dd><dt>isinf</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
 </dd><dt>isn</dt><dd><a href="html/libxml-encoding.html#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a><br />
-</dd><dt>isnan</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>issue</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
 </dd><dt>issued</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
 </dd><dt>issues</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
diff --git a/doc/APIchunk18.html b/doc/APIchunk18.html
index 90249a1..91566f7 100644
--- a/doc/APIchunk18.html
+++ b/doc/APIchunk18.html
@@ -76,6 +76,7 @@
 <a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
 <a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
 <a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br />
 <a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
 </dd><dt>keyword</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
 </dd><dt>kill</dt><dd><a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
@@ -366,6 +367,7 @@
 <a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
 <a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
 <a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
 </dd><dt>locations</dt><dd><a href="html/libxml-xpointer.html#_xmlLocationSet">_xmlLocationSet</a><br />
 </dd><dt>locator</dt><dd><a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
 <a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
diff --git a/doc/APIchunk2.html b/doc/APIchunk2.html
index 1d10f93..bb6c141 100644
--- a/doc/APIchunk2.html
+++ b/doc/APIchunk2.html
@@ -163,6 +163,7 @@
 <a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
 <a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
 <a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br />
 </dd><dt>Douglas</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
 </dd><dt>Draft</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
 </dd><dt>DtD</dt><dd><a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
@@ -327,7 +328,6 @@
 </dd><dt>Ethiopic</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsEthiopic">xmlUCSIsEthiopic</a><br />
 </dd><dt>Evaluate</dt><dd><a href="html/libxml-xpath.html#xmlXPathCompiledEval">xmlXPathCompiledEval</a><br />
 <a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
-<a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
 <a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
 <a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
diff --git a/doc/APIchunk20.html b/doc/APIchunk20.html
index 0317066..3559b08 100644
--- a/doc/APIchunk20.html
+++ b/doc/APIchunk20.html
@@ -105,7 +105,6 @@
 <a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
 <a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
 <a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
-<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
 <a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
 <a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
@@ -147,8 +146,6 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
 </dd><dt>nested</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
-</dd><dt>net</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>network</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadFile">htmlCtxtReadFile</a><br />
 <a href="html/libxml-HTMLparser.html#htmlReadFile">htmlReadFile</a><br />
 <a href="html/libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a><br />
@@ -195,6 +192,7 @@
 <a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
 </dd><dt>non-negative</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
 <a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
 </dd><dt>non-normative</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
 </dd><dt>non-null</dt><dd><a href="html/libxml-debugXML.html#xmlShellPrintNode">xmlShellPrintNode</a><br />
 </dd><dt>non-recursive</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
@@ -254,6 +252,7 @@
 <a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
 </dd><dt>note</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
 <a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+</dd><dt>nothing</dt><dd><a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br />
 </dd><dt>notice</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
 <a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
 </dd><dt>now</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
diff --git a/doc/APIchunk21.html b/doc/APIchunk21.html
index c655198..85fa55e 100644
--- a/doc/APIchunk21.html
+++ b/doc/APIchunk21.html
@@ -59,7 +59,11 @@
 </dd><dt>occur</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
-</dd><dt>occured</dt><dd><a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
+</dd><dt>occurences</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+</dd><dt>occurred</dt><dd><a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
 <a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
 <a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
 <a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
@@ -67,13 +71,9 @@
 <a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
 <a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br />
 <a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br />
-<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
-</dd><dt>occurences</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
-<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
-<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
-<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
-</dd><dt>occurred</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
 <a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
 </dd><dt>occurrence</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
diff --git a/doc/APIchunk22.html b/doc/APIchunk22.html
index 2f20018..ec9547b 100644
--- a/doc/APIchunk22.html
+++ b/doc/APIchunk22.html
@@ -210,8 +210,6 @@
 <a href="html/libxml-nanoftp.html#SOCKET">SOCKET</a><br />
 <a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
 <a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
-</dd><dt>portable</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>pos</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
 </dd><dt>position:</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
 </dd><dt>positioned</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
@@ -471,8 +469,6 @@
 <a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
 <a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
 </dd><dt>prohibited</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a><br />
-</dd><dt>projects</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>prolog</dt><dd><a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
 </dd><dt>prompt</dt><dd><a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br />
 </dd><dt>proper</dt><dd><a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
diff --git a/doc/APIchunk23.html b/doc/APIchunk23.html
index 16c7c21..a18be6e 100644
--- a/doc/APIchunk23.html
+++ b/doc/APIchunk23.html
@@ -124,6 +124,7 @@
 <a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
 </dd><dt>ready</dt><dd><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+</dd><dt>real</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
 </dd><dt>realloc</dt><dd><a href="html/libxml-tree.html#_xmlBuffer">_xmlBuffer</a><br />
 <a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
 <a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
@@ -133,6 +134,7 @@
 <a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
 <a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
 </dd><dt>reallocated</dt><dd><a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
 </dd><dt>really</dt><dd><a href="html/libxml-HTMLtree.html#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a><br />
 <a href="html/libxml-HTMLtree.html#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a><br />
diff --git a/doc/APIchunk24.html b/doc/APIchunk24.html
index e81f34d..64aac67 100644
--- a/doc/APIchunk24.html
+++ b/doc/APIchunk24.html
@@ -493,8 +493,6 @@
 <a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
 </dd><dt>sourceDoc</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
-</dd><dt>sourceforge</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>spaces</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
 <a href="html/libxml-HTMLtree.html#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a><br />
 <a href="html/libxml-HTMLtree.html#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a><br />
@@ -548,6 +546,7 @@
 <a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
 <a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
 </dd><dt>specialized</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
 <a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
 <a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
@@ -667,6 +666,7 @@
 <a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
 <a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
 <a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
 </dd><dt>steps</dt><dd><a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
 <a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
 </dd><dt>still</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
diff --git a/doc/APIchunk25.html b/doc/APIchunk25.html
index dec65ba..71ba3bd 100644
--- a/doc/APIchunk25.html
+++ b/doc/APIchunk25.html
@@ -343,8 +343,6 @@
 <a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
 </dd><dt>trio</dt><dd><a href="html/libxml-xmlversion.html#WITHOUT_TRIO">WITHOUT_TRIO</a><br />
 <a href="html/libxml-xmlversion.html#WITH_TRIO">WITH_TRIO</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>troubles</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
 <a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
 </dd><dt>try</dt><dd><a href="html/libxml-xpathInternals.html#CAST_TO_BOOLEAN">CAST_TO_BOOLEAN</a><br />
diff --git a/doc/APIchunk26.html b/doc/APIchunk26.html
index c68ae92..af3b1a5 100644
--- a/doc/APIchunk26.html
+++ b/doc/APIchunk26.html
@@ -143,6 +143,7 @@
 <a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a><br />
 </dd><dt>unsafe</dt><dd><a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
 </dd><dt>unsigned</dt><dd><a href="">c</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
 <a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
 </dd><dt>unsupported</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
 <a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
diff --git a/doc/APIchunk28.html b/doc/APIchunk28.html
index c5993f9..c3f49b2 100644
--- a/doc/APIchunk28.html
+++ b/doc/APIchunk28.html
@@ -198,6 +198,7 @@
 <a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
 <a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
 <a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
 <a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
 <a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
 <a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
@@ -480,6 +481,7 @@
 <a href="html/libxml-xpath.html#xmlXPathNewContext">xmlXPathNewContext</a><br />
 <a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
 </dd><dt>xmlXPathError</dt><dd><a href="">err</a><br />
+</dd><dt>xmlXPathEval</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
 </dd><dt>xmlXPathEvalPredicate</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
 </dd><dt>xmlXPathFreeObject</dt><dd><a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
 </dd><dt>xmlXPathFunction</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a><br />
@@ -531,6 +533,7 @@
 <a href="html/libxml-xmlreader.html#xmlReaderWalker">xmlReaderWalker</a><br />
 </dd><dt>xpath</dt><dd><a href="html/libxml-debugXML.html#xmlShellPrintXPathError">xmlShellPrintXPathError</a><br />
 <a href="html/libxml-debugXML.html#xmlShellPrintXPathResult">xmlShellPrintXPathResult</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
 </dd><dt>xpointer</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_PARSE_XPOINTER">XINCLUDE_PARSE_XPOINTER</a><br />
 </dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
 <a href="APIchunk1.html">C-C</a>
diff --git a/doc/APIchunk4.html b/doc/APIchunk4.html
index d26883b..6fe8261 100644
--- a/doc/APIchunk4.html
+++ b/doc/APIchunk4.html
@@ -295,7 +295,6 @@
 </dd><dt>Normalization</dt><dd><a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
 </dd><dt>Normalization:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
 </dd><dt>Not</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
-</dd><dt>NotaNumber</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>Notation</dt><dd><a href="html/libxml-tree.html#_xmlNotation">_xmlNotation</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
diff --git a/doc/APIchunk5.html b/doc/APIchunk5.html
index da60d1a..98da499 100644
--- a/doc/APIchunk5.html
+++ b/doc/APIchunk5.html
@@ -56,6 +56,7 @@
 <a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
 <a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
 <a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
 </dd><dt>Obtain</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a><br />
 </dd><dt>Ogham</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsOgham">xmlUCSIsOgham</a><br />
@@ -72,7 +73,8 @@
 </dd><dt>Oriya</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsOriya">xmlUCSIsOriya</a><br />
 </dd><dt>Osmanya</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsOsmanya">xmlUCSIsOsmanya</a><br />
 </dd><dt>Other</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
-</dd><dt>Otherwise</dt><dd><a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+</dd><dt>Otherwise</dt><dd><a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
 <a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
 </dd><dt>Output</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
@@ -223,8 +225,6 @@
 <a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
 </dd><dt>Proxy</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
 <a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
 </dd><dt>Proxy-Authenticate</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a><br />
diff --git a/doc/APIfiles.html b/doc/APIfiles.html
index 65e004b..8c29c06 100644
--- a/doc/APIfiles.html
+++ b/doc/APIfiles.html
@@ -340,7 +340,8 @@
 <a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
 <a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
 <a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
-</p><h2><a name="encoding" id="encoding">Module encoding</a>:</h2><p><a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+</p><h2><a name="encoding" id="encoding">Module encoding</a>:</h2><p><a href="html/libxml-encoding.html#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
 <a href="html/libxml-encoding.html#XML_CHAR_ENCODING_2022_JP">XML_CHAR_ENCODING_2022_JP</a><br />
 <a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_1">XML_CHAR_ENCODING_8859_1</a><br />
 <a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_2">XML_CHAR_ENCODING_8859_2</a><br />
@@ -493,6 +494,7 @@
 <a href="html/libxml-hash.html#xmlHashCreate">xmlHashCreate</a><br />
 <a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
 <a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
 <a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
 <a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
 <a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
@@ -1309,6 +1311,7 @@
 <a href="html/libxml-tree.html#XML_ATTRIBUTE_NONE">XML_ATTRIBUTE_NONE</a><br />
 <a href="html/libxml-tree.html#XML_ATTRIBUTE_NOTATION">XML_ATTRIBUTE_NOTATION</a><br />
 <a href="html/libxml-tree.html#XML_ATTRIBUTE_REQUIRED">XML_ATTRIBUTE_REQUIRED</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a><br />
 <a href="html/libxml-tree.html#XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a><br />
 <a href="html/libxml-tree.html#XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a><br />
 <a href="html/libxml-tree.html#XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a><br />
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html
index 9027afe..c1d172d 100644
--- a/doc/APIfunctions.html
+++ b/doc/APIfunctions.html
@@ -97,8 +97,6 @@
 <a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
 <a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
 </p><h2>Type const void *:</h2><p><a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br />
-<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
-<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
 <a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
 </p><h2>Type const xlinkHRef:</h2><p><a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
 </p><h2>Type const xlinkHRef *:</h2><p><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
@@ -147,7 +145,9 @@
 <a href="html/libxml-HTMLparser.html#htmlIsScriptAttribute">htmlIsScriptAttribute</a><br />
 <a href="html/libxml-HTMLtree.html#htmlNewDoc">htmlNewDoc</a><br />
 <a href="html/libxml-HTMLtree.html#htmlNewDocNoDtD">htmlNewDocNoDtD</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDoc">htmlParseDoc</a><br />
 <a href="html/libxml-HTMLparser.html#htmlReadDoc">htmlReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
 <a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
 <a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
 <a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
@@ -247,6 +247,9 @@
 <a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
 <a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
 <a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
+<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
 <a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
 <a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
 <a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br />
@@ -258,6 +261,7 @@
 <a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
 <a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
 <a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
 <a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br />
 <a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
 <a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
@@ -368,9 +372,7 @@
 <a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
 <a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
-<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
-<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
 <a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
@@ -772,6 +774,7 @@
 <a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
 <a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
 <a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
 <a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
 <a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
 <a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
@@ -795,7 +798,10 @@
 <a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br />
 <a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br />
 <a href="html/libxml-list.html#xmlListReverseSearch">xmlListReverseSearch</a><br />
+<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
 <a href="html/libxml-list.html#xmlListSearch">xmlListSearch</a><br />
+<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
+<a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
 <a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
 <a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
 <a href="html/libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a><br />
@@ -1041,14 +1047,9 @@
 <a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
 <a href="html/libxml-SAX.html#entityDecl">entityDecl</a><br />
 <a href="html/libxml-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a><br />
-<a href="html/libxml-HTMLparser.html#htmlParseDoc">htmlParseDoc</a><br />
-<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
 <a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
 <a href="html/libxml-parserInternals.html#xmlCopyChar">xmlCopyChar</a><br />
 <a href="html/libxml-parserInternals.html#xmlCopyCharMultiByte">xmlCopyCharMultiByte</a><br />
-<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
-<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
-<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
 <a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
 <a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
 <a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html
index c2b82e7..a77be6d 100644
--- a/doc/APIsymbols.html
+++ b/doc/APIsymbols.html
@@ -40,7 +40,8 @@
 <a href="html/libxml-HTMLparser.html#HTML_REQUIRED">HTML_REQUIRED</a><br />
 <a href="html/libxml-HTMLtree.html#HTML_TEXT_NODE">HTML_TEXT_NODE</a><br />
 <a href="html/libxml-HTMLparser.html#HTML_VALID">HTML_VALID</a><br />
-</p><h2>Letter I:</h2><p><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
+</p><h2>Letter I:</h2><p><a href="html/libxml-encoding.html#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a><br />
+<a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
 <a href="html/libxml-nanoftp.html#INVALID_SOCKET">INVALID_SOCKET</a><br />
 <a href="html/libxml-parserInternals.html#IS_ASCII_DIGIT">IS_ASCII_DIGIT</a><br />
 <a href="html/libxml-parserInternals.html#IS_ASCII_LETTER">IS_ASCII_LETTER</a><br />
@@ -154,6 +155,7 @@
 <a href="html/libxml-tree.html#XML_ATTRIBUTE_NONE">XML_ATTRIBUTE_NONE</a><br />
 <a href="html/libxml-tree.html#XML_ATTRIBUTE_NOTATION">XML_ATTRIBUTE_NOTATION</a><br />
 <a href="html/libxml-tree.html#XML_ATTRIBUTE_REQUIRED">XML_ATTRIBUTE_REQUIRED</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a><br />
 <a href="html/libxml-tree.html#XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a><br />
 <a href="html/libxml-tree.html#XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a><br />
 <a href="html/libxml-tree.html#XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a><br />
@@ -2129,6 +2131,7 @@
 <a href="html/libxml-hash.html#xmlHashCreate">xmlHashCreate</a><br />
 <a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
 <a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
 <a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
 <a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
 <a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 0cc0a50..6bda566 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -243,7 +243,7 @@
 
 api: libxml2-api.xml libxml2-refs.xml $(APIPAGES) $(srcdir)/html/index.html $(WIN32_DIR)/libxml2.def.src ../elfgcchack.h $(srcdir)/site.xsl
 
-web: $(PAGES)
+web: $(PAGES) xmllint.html xmlcatalog_man.html
 
 ../elfgcchack.h: $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml
 	-@(if [ -x $(XSLTPROC) ] ; then \
@@ -314,9 +314,15 @@
 xmllint.1: xmllint.xml
 	-@($(XSLTPROC) --nonet xmllint.xml)
 
+xmllint.html: xmllint.xml
+	-@($(XSLTPROC) --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl xmllint.xml)
+
 xmlcatalog.1: xmlcatalog_man.xml
 	-@($(XSLTPROC) --nonet xmlcatalog_man.xml)
 
+xmlcatalog_man.html: xmlcatalog_man.xml
+	-@($(XSLTPROC) --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl xmlcatalog_man.xml)
+
 check-extra-dist:
 	for f in $(EXTRA_DIST_wc) ; do echo $$f; done | sort -u >tmp.EXTRA_DIST_wc
 	for f in $(EXTRA_DIST) ;    do echo $$f; done | sort    >tmp.EXTRA_DIST
diff --git a/doc/apibuild.py b/doc/apibuild.py
index b5b669a..7a36466 100755
--- a/doc/apibuild.py
+++ b/doc/apibuild.py
@@ -81,6 +81,7 @@
   "ATTRIBUTE_PRINTF": (5, "macro for gcc printf args checking extension"),
   "LIBXML_ATTR_FORMAT": (5, "macro for gcc printf args checking extension"),
   "LIBXML_ATTR_ALLOC_SIZE": (3, "macro for gcc checking extension"),
+  "__XML_EXTERNC": (0, "Special macro added for os400"),
 }
 
 def escape(raw):
diff --git a/doc/bugs.html b/doc/bugs.html
index 55ff296..52970d3 100644
--- a/doc/bugs.html
+++ b/doc/bugs.html
@@ -13,7 +13,7 @@
 bug tracking database</a> (make sure to use the "libxml2" module name). I
 look at reports there regularly and it's good to have a reminder when a bug
 is still open. Be sure to specify that the bug is for the package libxml2.</p><p>For small problems you can try to get help on IRC, the #xml channel on
-irc.gnome.org (port 6667) usually have a few person subscribed which may help
+irc.gnome.org (port 6667) usually has a few people subscribed which may help
 (but there is no guarantee and if a real issue is raised it should go on the
 mailing-list for archival).</p><p>There is also a mailing-list <a href="mailto:xml@gnome.org">xml@gnome.org</a> for libxml, with an  <a href="http://mail.gnome.org/archives/xml/">on-line archive</a> (<a href="http://xmlsoft.org/messages">old</a>). To subscribe to this list,
 please visit the <a href="http://mail.gnome.org/mailman/listinfo/xml">associated Web</a> page and
diff --git a/doc/devhelp/general.html b/doc/devhelp/general.html
index 68f9380..90f0d39 100644
--- a/doc/devhelp/general.html
+++ b/doc/devhelp/general.html
@@ -33,6 +33,6 @@
     <h2>
       <span class="refentrytitle">libxml2 API Modules</span>
     </h2>
-    <p><a href="libxml2-DOCBparser.html">DOCBparser</a> - old DocBook SGML parser<br/><a href="libxml2-HTMLparser.html">HTMLparser</a> - interface for an HTML 4.0 non-verifying parser<br/><a href="libxml2-HTMLtree.html">HTMLtree</a> - specific APIs to process HTML tree, especially serialization<br/><a href="libxml2-SAX.html">SAX</a> - Old SAX version 1 handler, deprecated<br/><a href="libxml2-SAX2.html">SAX2</a> - SAX2 parser interface used to build the DOM tree<br/><a href="libxml2-c14n.html">c14n</a> - Provide Canonical XML and Exclusive XML Canonicalization<br/><a href="libxml2-catalog.html">catalog</a> - interfaces to the Catalog handling system<br/><a href="libxml2-chvalid.html">chvalid</a> - Unicode character range checking<br/><a href="libxml2-debugXML.html">debugXML</a> - Tree debugging APIs<br/><a href="libxml2-dict.html">dict</a> - string dictionnary<br/><a href="libxml2-encoding.html">encoding</a> - interface for the encoding conversion functions<br/><a href="libxml2-entities.html">entities</a> - interface for the XML entities handling<br/><a href="libxml2-globals.html">globals</a> - interface for all global variables of the library<br/><a href="libxml2-hash.html">hash</a> - Chained hash tables<br/><a href="libxml2-list.html">list</a> - lists interfaces<br/><a href="libxml2-nanoftp.html">nanoftp</a> - minimal FTP implementation<br/><a href="libxml2-nanohttp.html">nanohttp</a> - minimal HTTP implementation<br/><a href="libxml2-parser.html">parser</a> - the core parser module<br/><a href="libxml2-parserInternals.html">parserInternals</a> - internals routines and limits exported by the parser.<br/><a href="libxml2-pattern.html">pattern</a> - pattern expression handling<br/><a href="libxml2-relaxng.html">relaxng</a> - implementation of the Relax-NG validation<br/><a href="libxml2-schemasInternals.html">schemasInternals</a> - internal interfaces for XML Schemas<br/><a href="libxml2-schematron.html">schematron</a> - XML Schemastron implementation<br/><a href="libxml2-threads.html">threads</a> - interfaces for thread handling<br/><a href="libxml2-tree.html">tree</a> - interfaces for tree manipulation<br/><a href="libxml2-uri.html">uri</a> - library of generic URI related routines<br/><a href="libxml2-valid.html">valid</a> - The DTD validation<br/><a href="libxml2-xinclude.html">xinclude</a> - implementation of XInclude<br/><a href="libxml2-xlink.html">xlink</a> - unfinished XLink detection module<br/><a href="libxml2-xmlIO.html">xmlIO</a> - interface for the I/O interfaces used by the parser<br/><a href="libxml2-xmlautomata.html">xmlautomata</a> - API to build regexp automata<br/><a href="libxml2-xmlerror.html">xmlerror</a> - error handling<br/><a href="libxml2-xmlexports.html">xmlexports</a> - macros for marking symbols as exportable/importable.<br/><a href="libxml2-xmlmemory.html">xmlmemory</a> - interface for the memory allocator<br/><a href="libxml2-xmlmodule.html">xmlmodule</a> - dynamic module loading<br/><a href="libxml2-xmlreader.html">xmlreader</a> - the XMLReader implementation<br/><a href="libxml2-xmlregexp.html">xmlregexp</a> - regular expressions handling<br/><a href="libxml2-xmlsave.html">xmlsave</a> - the XML document serializer<br/><a href="libxml2-xmlschemas.html">xmlschemas</a> - incomplete XML Schemas structure implementation<br/><a href="libxml2-xmlschemastypes.html">xmlschemastypes</a> - implementation of XML Schema Datatypes<br/><a href="libxml2-xmlstring.html">xmlstring</a> - set of routines to process strings<br/><a href="libxml2-xmlunicode.html">xmlunicode</a> - Unicode character APIs<br/><a href="libxml2-xmlversion.html">xmlversion</a> - compile-time version informations<br/><a href="libxml2-xmlwriter.html">xmlwriter</a> - text writing API for XML<br/><a href="libxml2-xpath.html">xpath</a> - XML Path Language implementation<br/><a href="libxml2-xpathInternals.html">xpathInternals</a> - internal interfaces for XML Path Language implementation<br/><a href="libxml2-xpointer.html">xpointer</a> - API to handle XML Pointers<br/></p>
+    <p><a href="libxml2-DOCBparser.html">DOCBparser</a> - old DocBook SGML parser<br/><a href="libxml2-HTMLparser.html">HTMLparser</a> - interface for an HTML 4.0 non-verifying parser<br/><a href="libxml2-HTMLtree.html">HTMLtree</a> - specific APIs to process HTML tree, especially serialization<br/><a href="libxml2-SAX.html">SAX</a> - Old SAX version 1 handler, deprecated<br/><a href="libxml2-SAX2.html">SAX2</a> - SAX2 parser interface used to build the DOM tree<br/><a href="libxml2-c14n.html">c14n</a> - Provide Canonical XML and Exclusive XML Canonicalization<br/><a href="libxml2-catalog.html">catalog</a> - interfaces to the Catalog handling system<br/><a href="libxml2-chvalid.html">chvalid</a> - Unicode character range checking<br/><a href="libxml2-debugXML.html">debugXML</a> - Tree debugging APIs<br/><a href="libxml2-dict.html">dict</a> - string dictionary<br/><a href="libxml2-encoding.html">encoding</a> - interface for the encoding conversion functions<br/><a href="libxml2-entities.html">entities</a> - interface for the XML entities handling<br/><a href="libxml2-globals.html">globals</a> - interface for all global variables of the library<br/><a href="libxml2-hash.html">hash</a> - Chained hash tables<br/><a href="libxml2-list.html">list</a> - lists interfaces<br/><a href="libxml2-nanoftp.html">nanoftp</a> - minimal FTP implementation<br/><a href="libxml2-nanohttp.html">nanohttp</a> - minimal HTTP implementation<br/><a href="libxml2-parser.html">parser</a> - the core parser module<br/><a href="libxml2-parserInternals.html">parserInternals</a> - internals routines and limits exported by the parser.<br/><a href="libxml2-pattern.html">pattern</a> - pattern expression handling<br/><a href="libxml2-relaxng.html">relaxng</a> - implementation of the Relax-NG validation<br/><a href="libxml2-schemasInternals.html">schemasInternals</a> - internal interfaces for XML Schemas<br/><a href="libxml2-schematron.html">schematron</a> - XML Schemastron implementation<br/><a href="libxml2-threads.html">threads</a> - interfaces for thread handling<br/><a href="libxml2-tree.html">tree</a> - interfaces for tree manipulation<br/><a href="libxml2-uri.html">uri</a> - library of generic URI related routines<br/><a href="libxml2-valid.html">valid</a> - The DTD validation<br/><a href="libxml2-xinclude.html">xinclude</a> - implementation of XInclude<br/><a href="libxml2-xlink.html">xlink</a> - unfinished XLink detection module<br/><a href="libxml2-xmlIO.html">xmlIO</a> - interface for the I/O interfaces used by the parser<br/><a href="libxml2-xmlautomata.html">xmlautomata</a> - API to build regexp automata<br/><a href="libxml2-xmlerror.html">xmlerror</a> - error handling<br/><a href="libxml2-xmlexports.html">xmlexports</a> - macros for marking symbols as exportable/importable.<br/><a href="libxml2-xmlmemory.html">xmlmemory</a> - interface for the memory allocator<br/><a href="libxml2-xmlmodule.html">xmlmodule</a> - dynamic module loading<br/><a href="libxml2-xmlreader.html">xmlreader</a> - the XMLReader implementation<br/><a href="libxml2-xmlregexp.html">xmlregexp</a> - regular expressions handling<br/><a href="libxml2-xmlsave.html">xmlsave</a> - the XML document serializer<br/><a href="libxml2-xmlschemas.html">xmlschemas</a> - incomplete XML Schemas structure implementation<br/><a href="libxml2-xmlschemastypes.html">xmlschemastypes</a> - implementation of XML Schema Datatypes<br/><a href="libxml2-xmlstring.html">xmlstring</a> - set of routines to process strings<br/><a href="libxml2-xmlunicode.html">xmlunicode</a> - Unicode character APIs<br/><a href="libxml2-xmlversion.html">xmlversion</a> - compile-time version informations<br/><a href="libxml2-xmlwriter.html">xmlwriter</a> - text writing API for XML<br/><a href="libxml2-xpath.html">xpath</a> - XML Path Language implementation<br/><a href="libxml2-xpathInternals.html">xpathInternals</a> - internal interfaces for XML Path Language implementation<br/><a href="libxml2-xpointer.html">xpointer</a> - API to handle XML Pointers<br/></p>
   </body>
 </html>
diff --git a/doc/devhelp/libxml2-HTMLparser.html b/doc/devhelp/libxml2-HTMLparser.html
index 6d8a42a..3af5a9c 100644
--- a/doc/devhelp/libxml2-HTMLparser.html
+++ b/doc/devhelp/libxml2-HTMLparser.html
@@ -96,9 +96,9 @@
 <a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlCtxtReadFile">htmlCtxtReadFile</a>	(<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/>					 const char * filename, <br/>					 const char * encoding, <br/>					 int options);
 int	<a href="#htmlParseDocument">htmlParseDocument</a>		(<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt);
 <a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a>	<a href="#htmlNewParserCtxt">htmlNewParserCtxt</a>	(void);
-<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlSAXParseDoc">htmlSAXParseDoc</a>		(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const char * encoding, <br/>					 <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/>					 void * userData);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlSAXParseDoc">htmlSAXParseDoc</a>		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const char * encoding, <br/>					 <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/>					 void * userData);
 int	<a href="#htmlCtxtUseOptions">htmlCtxtUseOptions</a>		(<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/>					 int options);
-<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlParseDoc">htmlParseDoc</a>		(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const char * encoding);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlParseDoc">htmlParseDoc</a>		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const char * encoding);
 </pre>
     </div>
     <div class="refsect1" lang="en">
@@ -315,7 +315,7 @@
 </pre><p>Parse a Chunk of memory</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml2-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div></div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="htmlParseDoc"/>htmlParseDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	htmlParseDoc		(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const char * encoding)<br/>
+        <div class="refsect2" lang="en"><h3><a name="htmlParseDoc"/>htmlParseDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	htmlParseDoc		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const char * encoding)<br/>
 </pre><p>parse an HTML in-memory document and build a tree.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
         <hr/>
@@ -355,7 +355,7 @@
 </pre><p>parse an XML in-memory document and build a tree.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="htmlSAXParseDoc"/>htmlSAXParseDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	htmlSAXParseDoc		(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const char * encoding, <br/>					 <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/>					 void * userData)<br/>
+        <div class="refsect2" lang="en"><h3><a name="htmlSAXParseDoc"/>htmlSAXParseDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	htmlSAXParseDoc		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const char * encoding, <br/>					 <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/>					 void * userData)<br/>
 </pre><p>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree unless SAX is NULL or the document is not well formed.</td></tr></tbody></table></div></div>
         <hr/>
diff --git a/doc/devhelp/libxml2-dict.html b/doc/devhelp/libxml2-dict.html
index fd5f6b9..6bff563 100644
--- a/doc/devhelp/libxml2-dict.html
+++ b/doc/devhelp/libxml2-dict.html
@@ -2,7 +2,7 @@
 <html>
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <title>dict: string dictionnary</title>
+    <title>dict: string dictionary</title>
     <meta name="generator" content="Libxml2 devhelp stylesheet"/>
     <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
     <link rel="up" href="general.html" title="API"/>
@@ -38,7 +38,7 @@
     <h2>
       <span class="refentrytitle">dict</span>
     </h2>
-    <p>dict - string dictionnary</p>
+    <p>dict - string dictionary</p>
     <p>dictionary of reusable strings, just used to avoid allocation and freeing operations. </p>
     <p>Author(s): Daniel Veillard </p>
     <div class="refsynopsisdiv">
@@ -82,47 +82,47 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlDictCreate"/>xmlDictCreate ()</h3><pre class="programlisting"><a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a>	xmlDictCreate		(void)<br/>
 </pre><p>Create a new dictionary</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlDictCreateSub"/>xmlDictCreateSub ()</h3><pre class="programlisting"><a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a>	xmlDictCreateSub	(<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> sub)<br/>
-</pre><p>Create a new dictionary, inheriting strings from the read-only dictionnary @sub. On lookup, strings are first searched in the new dictionnary, then in @sub, and if not found are created in the new dictionnary.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div></div>
+</pre><p>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlDictExists"/>xmlDictExists ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	xmlDictExists		(<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 int len)<br/>
-</pre><p>Check if the @name exists in the dictionnary @dict.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div></div>
+</pre><p>Check if the @name exists in the dictionary @dict.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlDictFree"/>xmlDictFree ()</h3><pre class="programlisting">void	xmlDictFree			(<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
 </pre><p>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlDictGetUsage"/>xmlDictGetUsage ()</h3><pre class="programlisting">size_t	xmlDictGetUsage			(<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
 </pre><p>Get how much memory is used by a dictionary for strings Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlDictLookup"/>xmlDictLookup ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	xmlDictLookup		(<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 int len)<br/>
-</pre><p>Add the @name to the dictionnary @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div></div>
+</pre><p>Add the @name to the dictionary @dict if not present.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlDictOwns"/>xmlDictOwns ()</h3><pre class="programlisting">int	xmlDictOwns			(<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
 </pre><p>check if a string is owned by the disctionary</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlDictQLookup"/>xmlDictQLookup ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	xmlDictQLookup		(<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
 </pre><p>Add the QName @prefix:@name to the hash @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlDictReference"/>xmlDictReference ()</h3><pre class="programlisting">int	xmlDictReference		(<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
 </pre><p>Increment the <a href="libxml2-SAX.html#reference">reference</a> counter of a dictionary</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlDictSetLimit"/>xmlDictSetLimit ()</h3><pre class="programlisting">size_t	xmlDictSetLimit			(<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/>					 size_t limit)<br/>
 </pre><p>Set a size limit for the dictionary Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlDictSize"/>xmlDictSize ()</h3><pre class="programlisting">int	xmlDictSize			(<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
 </pre><p>Query the number of elements installed in the hash @dict.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionnary or -1 in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionary or -1 in case of error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlInitializeDict"/>xmlInitializeDict ()</h3><pre class="programlisting">int	xmlInitializeDict		(void)<br/>
 </pre><p>Do the dictionary mutex initialization. this function is deprecated</p>
diff --git a/doc/devhelp/libxml2-encoding.html b/doc/devhelp/libxml2-encoding.html
index 261e50a..b11fbfb 100644
--- a/doc/devhelp/libxml2-encoding.html
+++ b/doc/devhelp/libxml2-encoding.html
@@ -43,7 +43,8 @@
     <p>Author(s): Daniel Veillard </p>
     <div class="refsynopsisdiv">
       <h2>Synopsis</h2>
-      <pre class="synopsis">typedef struct _uconv_t <a href="#uconv_t">uconv_t</a>;
+      <pre class="synopsis">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a>;
+typedef struct _uconv_t <a href="#uconv_t">uconv_t</a>;
 typedef enum <a href="#xmlCharEncoding">xmlCharEncoding</a>;
 typedef struct _xmlCharEncodingHandler <a href="#xmlCharEncodingHandler">xmlCharEncodingHandler</a>;
 typedef <a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * <a href="#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>;
@@ -76,9 +77,16 @@
     <div class="refsect1" lang="en">
       <h2>Details</h2>
       <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="ICU_PIVOT_BUF_SIZE">Macro </a>ICU_PIVOT_BUF_SIZE</h3><pre class="programlisting">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a>;
+</pre><p/>
+</div>
+        <hr/>
         <div class="refsect2" lang="en"><h3><a name="uconv_t">Structure </a>uconv_t</h3><pre class="programlisting">struct _uconv_t {
     UConverter *	uconv	: for conversion between an encoding and UTF-16
     UConverter *	utf8	: for conversion between UTF-8 and UTF-16
+    UCharpivot_buf[ICU_PIVOT_BUF_SIZE]	pivot_buf
+    UChar *	pivot_source
+    UChar *	pivot_target
 } uconv_t;
 </pre><p/>
 </div>
diff --git a/doc/devhelp/libxml2-hash.html b/doc/devhelp/libxml2-hash.html
index c5a9911..e2dd7ab 100644
--- a/doc/devhelp/libxml2-hash.html
+++ b/doc/devhelp/libxml2-hash.html
@@ -55,8 +55,8 @@
 void *	<a href="#xmlHashQLookup3">xmlHashQLookup3</a>			(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix3, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3);
 void *	<a href="#xmlHashQLookup2">xmlHashQLookup2</a>			(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2);
 void	<a href="#xmlHashScan3">xmlHashScan3</a>			(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/>					 <a href="libxml2-hash.html#xmlHashScanner">xmlHashScanner</a> f, <br/>					 void * data);
-typedef void <a href="#xmlHashScanner">xmlHashScanner</a>			(void * payload, <br/>					 void * data, <br/>					 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
-typedef void <a href="#xmlHashDeallocator">xmlHashDeallocator</a>		(void * payload, <br/>					 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+typedef void <a href="#xmlHashScanner">xmlHashScanner</a>			(void * payload, <br/>					 void * data, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+typedef void <a href="#xmlHashDeallocator">xmlHashDeallocator</a>		(void * payload, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
 <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a>	<a href="#xmlHashCreate">xmlHashCreate</a>		(int size);
 void	<a href="#xmlHashFree">xmlHashFree</a>			(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
 void *	<a href="#xmlHashLookup">xmlHashLookup</a>			(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
@@ -67,10 +67,11 @@
 <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a>	<a href="#xmlHashCopy">xmlHashCopy</a>		(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 <a href="libxml2-hash.html#xmlHashCopier">xmlHashCopier</a> f);
 void	<a href="#xmlHashScanFull3">xmlHashScanFull3</a>		(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/>					 <a href="libxml2-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br/>					 void * data);
 int	<a href="#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a>		(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/>					 void * userdata, <br/>					 <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
+void	<a href="#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a>	(void * entry, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
 void *	<a href="#xmlHashLookup3">xmlHashLookup3</a>			(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3);
 void *	<a href="#xmlHashLookup2">xmlHashLookup2</a>			(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2);
 int	<a href="#xmlHashRemoveEntry">xmlHashRemoveEntry</a>		(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
-typedef void * <a href="#xmlHashCopier">xmlHashCopier</a>			(void * payload, <br/>					 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+typedef void * <a href="#xmlHashCopier">xmlHashCopier</a>			(void * payload, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
 int	<a href="#xmlHashAddEntry2">xmlHashAddEntry2</a>		(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/>					 void * userdata);
 int	<a href="#xmlHashAddEntry3">xmlHashAddEntry3</a>		(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/>					 void * userdata);
 int	<a href="#xmlHashSize">xmlHashSize</a>			(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table);
@@ -96,15 +97,15 @@
 </pre><p/>
 </div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="xmlHashCopier"/>Function type xmlHashCopier</h3><pre class="programlisting">void *	xmlHashCopier			(void * payload, <br/>					 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+        <div class="refsect2" lang="en"><h3><a name="xmlHashCopier"/>Function type xmlHashCopier</h3><pre class="programlisting">void *	xmlHashCopier			(void * payload, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
 </pre><p>Callback to copy data from a hash.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the data or NULL in case of error.</td></tr></tbody></table></div></div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="xmlHashDeallocator"/>Function type xmlHashDeallocator</h3><pre class="programlisting">void	xmlHashDeallocator		(void * payload, <br/>					 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+        <div class="refsect2" lang="en"><h3><a name="xmlHashDeallocator"/>Function type xmlHashDeallocator</h3><pre class="programlisting">void	xmlHashDeallocator		(void * payload, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
 </pre><p>Callback to free data from a hash.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div></div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="xmlHashScanner"/>Function type xmlHashScanner</h3><pre class="programlisting">void	xmlHashScanner			(void * payload, <br/>					 void * data, <br/>					 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+        <div class="refsect2" lang="en"><h3><a name="xmlHashScanner"/>Function type xmlHashScanner</h3><pre class="programlisting">void	xmlHashScanner			(void * payload, <br/>					 void * data, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
 </pre><p>Callback when scanning data in a hash with the simple scanner.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra scannner data</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div></div>
         <hr/>
@@ -130,11 +131,15 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlHashCreate"/>xmlHashCreate ()</h3><pre class="programlisting"><a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a>	xmlHashCreate		(int size)<br/>
 </pre><p>Create a new xmlHashTablePtr.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occured.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlHashCreateDict"/>xmlHashCreateDict ()</h3><pre class="programlisting"><a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a>	xmlHashCreateDict	(int size, <br/>					 <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
 </pre><p>Create a new <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> which will use @dict as the internal dictionary</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occured.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xmlHashDefaultDeallocator"/>xmlHashDefaultDeallocator ()</h3><pre class="programlisting">void	xmlHashDefaultDeallocator	(void * entry, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Free a hash table entry with xmlFree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>entry</tt></i>:</span></td><td>the hash table entry</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entry's name</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlHashFree"/>xmlHashFree ()</h3><pre class="programlisting">void	xmlHashFree			(<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/>					 <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br/>
 </pre><p>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</p>
diff --git a/doc/devhelp/libxml2-list.html b/doc/devhelp/libxml2-list.html
index 8a4fa73..0ae2f11 100644
--- a/doc/devhelp/libxml2-list.html
+++ b/doc/devhelp/libxml2-list.html
@@ -55,14 +55,14 @@
 <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a>	<a href="#xmlListCreate">xmlListCreate</a>		(<a href="libxml2-list.html#xmlListDeallocator">xmlListDeallocator</a> deallocator, <br/>					 <a href="libxml2-list.html#xmlListDataCompare">xmlListDataCompare</a> compare);
 <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a>	<a href="#xmlListDup">xmlListDup</a>		(const <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old);
 int	<a href="#xmlListRemoveLast">xmlListRemoveLast</a>		(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 void * data);
-void	<a href="#xmlListWalk">xmlListWalk</a>			(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/>					 const void * user);
+void	<a href="#xmlListWalk">xmlListWalk</a>			(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/>					 void * user);
 int	<a href="#xmlListRemoveAll">xmlListRemoveAll</a>		(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 void * data);
 int	<a href="#xmlListCopy">xmlListCopy</a>			(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> cur, <br/>					 const <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old);
 void	<a href="#xmlListPopFront">xmlListPopFront</a>			(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
 void *	<a href="#xmlListSearch">xmlListSearch</a>			(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 void * data);
-typedef int <a href="#xmlListWalker">xmlListWalker</a>			(const void * data, <br/>					 const void * user);
+typedef int <a href="#xmlListWalker">xmlListWalker</a>			(const void * data, <br/>					 void * user);
 int	<a href="#xmlListRemoveFirst">xmlListRemoveFirst</a>		(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 void * data);
-void	<a href="#xmlListReverseWalk">xmlListReverseWalk</a>		(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/>					 const void * user);
+void	<a href="#xmlListReverseWalk">xmlListReverseWalk</a>		(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/>					 void * user);
 void *	<a href="#xmlLinkGetData">xmlLinkGetData</a>			(<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> lk);
 void	<a href="#xmlListClear">xmlListClear</a>			(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
 int	<a href="#xmlListAppend">xmlListAppend</a>			(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 void * data);
@@ -112,7 +112,7 @@
 </pre><p>Callback function used to free data from a list.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>lk</tt></i>:</span></td><td>the data to deallocate</td></tr></tbody></table></div></div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="xmlListWalker"/>Function type xmlListWalker</h3><pre class="programlisting">int	xmlListWalker			(const void * data, <br/>					 const void * user)<br/>
+        <div class="refsect2" lang="en"><h3><a name="xmlListWalker"/>Function type xmlListWalker</h3><pre class="programlisting">int	xmlListWalker			(const void * data, <br/>					 void * user)<br/>
 </pre><p>Callback function used when walking a list with xmlListWalk().</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data found in the list</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>extra user provided data to the walker</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 to stop walking the list, 1 otherwise.</td></tr></tbody></table></div></div>
         <hr/>
@@ -186,11 +186,11 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlListRemoveFirst"/>xmlListRemoveFirst ()</h3><pre class="programlisting">int	xmlListRemoveFirst		(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 void * data)<br/>
 </pre><p>Remove the first instance associated to data in the list</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occured, or 0 if not found</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlListRemoveLast"/>xmlListRemoveLast ()</h3><pre class="programlisting">int	xmlListRemoveLast		(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 void * data)<br/>
 </pre><p>Remove the last instance associated to data in the list</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occured, or 0 if not found</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlListReverse"/>xmlListReverse ()</h3><pre class="programlisting">void	xmlListReverse			(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
 </pre><p>Reverse the order of the elements in the list</p>
@@ -200,7 +200,7 @@
 </pre><p>Search the list in reverse order for an existing value of @data</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div></div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="xmlListReverseWalk"/>xmlListReverseWalk ()</h3><pre class="programlisting">void	xmlListReverseWalk		(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/>					 const void * user)<br/>
+        <div class="refsect2" lang="en"><h3><a name="xmlListReverseWalk"/>xmlListReverseWalk ()</h3><pre class="programlisting">void	xmlListReverseWalk		(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/>					 void * user)<br/>
 </pre><p>Walk all the element of the list in reverse order and apply the walker function to it</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div></div>
         <hr/>
@@ -216,7 +216,7 @@
 </pre><p>Sort all the elements in the list</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div></div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="xmlListWalk"/>xmlListWalk ()</h3><pre class="programlisting">void	xmlListWalk			(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/>					 const void * user)<br/>
+        <div class="refsect2" lang="en"><h3><a name="xmlListWalk"/>xmlListWalk ()</h3><pre class="programlisting">void	xmlListWalk			(<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/>					 <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/>					 void * user)<br/>
 </pre><p>Walk all the element of the first from first to last and apply the walker function to it</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div></div>
         <hr/>
diff --git a/doc/devhelp/libxml2-parser.html b/doc/devhelp/libxml2-parser.html
index 357c14a..c740554 100644
--- a/doc/devhelp/libxml2-parser.html
+++ b/doc/devhelp/libxml2-parser.html
@@ -300,7 +300,7 @@
     <a name="XML_PARSE_SAX1">XML_PARSE_SAX1</a> = 512 /* use the SAX1 interface internally */
     <a name="XML_PARSE_XINCLUDE">XML_PARSE_XINCLUDE</a> = 1024 /* Implement XInclude substitition */
     <a name="XML_PARSE_NONET">XML_PARSE_NONET</a> = 2048 /* Forbid network access */
-    <a name="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 /* Do not reuse the context dictionnary */
+    <a name="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 /* Do not reuse the context dictionary */
     <a name="XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</a> = 8192 /* remove redundant namespaces declarations */
     <a name="XML_PARSE_NOCDATA">XML_PARSE_NOCDATA</a> = 16384 /* merge CDATA as text nodes */
     <a name="XML_PARSE_NOXINCNODE">XML_PARSE_NOXINCNODE</a> = 32768 /* do not generate XINCLUDE START/END nodes */
diff --git a/doc/devhelp/libxml2-schemasInternals.html b/doc/devhelp/libxml2-schemasInternals.html
index 2f9cbc9..ab91754 100644
--- a/doc/devhelp/libxml2-schemasInternals.html
+++ b/doc/devhelp/libxml2-schemasInternals.html
@@ -39,7 +39,7 @@
       <span class="refentrytitle">schemasInternals</span>
     </h2>
     <p>schemasInternals - internal interfaces for XML Schemas</p>
-    <p>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not garanteed to be API or ABI stable ! </p>
+    <p>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not guaranteed to be API or ABI stable ! </p>
     <p>Author(s): Daniel Veillard </p>
     <div class="refsynopsisdiv">
       <h2>Synopsis</h2>
diff --git a/doc/devhelp/libxml2-tree.html b/doc/devhelp/libxml2-tree.html
index 3cc28c7..44e1e03 100644
--- a/doc/devhelp/libxml2-tree.html
+++ b/doc/devhelp/libxml2-tree.html
@@ -409,7 +409,8 @@
     <a name="XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a> = 2 /* grow only to the minimal size */
     <a name="XML_BUFFER_ALLOC_IMMUTABLE">XML_BUFFER_ALLOC_IMMUTABLE</a> = 3 /* immutable buffer */
     <a name="XML_BUFFER_ALLOC_IO">XML_BUFFER_ALLOC_IO</a> = 4 /* special allocation scheme used for I/O */
-    <a name="XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a> = 5 /*  exact up to a threshold, and doubleit thereafter */
+    <a name="XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a> = 5 /* exact up to a threshold, and doubleit thereafter */
+    <a name="XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a> = 6 /*  limit the upper size of the buffer */
 };
 </pre><p/>
 </div>
@@ -781,7 +782,7 @@
     void *	catalogs	: document's own catalog
     int	recovery	: run in recovery mode
     int	progressive	: is this a progressive parsing
-    <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a>	dict	: dictionnary for the parser
+    <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a>	dict	: dictionary for the parser
     const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * *	atts	: array for the attributes callbacks
     int	maxatts	: the size of the array
     int	docdict	: * pre-interned strings *
@@ -1541,7 +1542,7 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlSplitQName2"/>xmlSplitQName2 ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	xmlSplitQName2		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** prefix)<br/>
 </pre><p>parse an XML qualified name string [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not a QName, otherwise the local part, and prefix is updated to get the Prefix if any.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if the name doesn't have a prefix. Otherwise, returns the local part, and prefix is updated to get the Prefix. Both the return value and the prefix must be freed by the caller.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlSplitQName3"/>xmlSplitQName3 ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	xmlSplitQName3		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 int * len)<br/>
 </pre><p>parse an XML qualified name string,i</p>
diff --git a/doc/devhelp/libxml2-xmlerror.html b/doc/devhelp/libxml2-xmlerror.html
index 13bab8a..6a93649 100644
--- a/doc/devhelp/libxml2-xmlerror.html
+++ b/doc/devhelp/libxml2-xmlerror.html
@@ -897,7 +897,7 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlCtxtGetLastError"/>xmlCtxtGetLastError ()</h3><pre class="programlisting"><a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a>	xmlCtxtGetLastError	(void * ctx)<br/>
 </pre><p>Get the last parsing error registered.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occured or a pointer to the error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlCtxtResetLastError"/>xmlCtxtResetLastError ()</h3><pre class="programlisting">void	xmlCtxtResetLastError		(void * ctx)<br/>
 </pre><p>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</p>
@@ -905,7 +905,7 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlGetLastError"/>xmlGetLastError ()</h3><pre class="programlisting"><a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a>	xmlGetLastError		(void)<br/>
 </pre><p>Get the last global error registered. This is per thread if compiled with thread support.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occured or a pointer to the error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlParserError"/>xmlParserError ()</h3><pre class="programlisting">void	xmlParserError			(void * ctx, <br/>					 const char * msg, <br/>					 ... ...)<br/>
 </pre><p>Display and format an error messages, gives file, line, position and extra parameters.</p>
diff --git a/doc/devhelp/libxml2-xmlmemory.html b/doc/devhelp/libxml2-xmlmemory.html
index 8610538..bf400d0 100644
--- a/doc/devhelp/libxml2-xmlmemory.html
+++ b/doc/devhelp/libxml2-xmlmemory.html
@@ -118,7 +118,7 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlMallocAtomicLoc"/>xmlMallocAtomicLoc ()</h3><pre class="programlisting">void *	xmlMallocAtomicLoc		(size_t size, <br/>					 const char * file, <br/>					 int line)<br/>
 </pre><p>a malloc() equivalent, with logging of the allocation info.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an unsigned int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlMallocLoc"/>xmlMallocLoc ()</h3><pre class="programlisting">void *	xmlMallocLoc			(size_t size, <br/>					 const char * file, <br/>					 int line)<br/>
 </pre><p>a malloc() equivalent, with logging of the allocation info.</p>
diff --git a/doc/devhelp/libxml2-xmlreader.html b/doc/devhelp/libxml2-xmlreader.html
index 3814f43..2051f70 100644
--- a/doc/devhelp/libxml2-xmlreader.html
+++ b/doc/devhelp/libxml2-xmlreader.html
@@ -213,7 +213,7 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlTextReaderErrorFunc"/>Function type xmlTextReaderErrorFunc</h3><pre class="programlisting">void	xmlTextReaderErrorFunc		(void * arg, <br/>					 const char * msg, <br/>					 <a href="libxml2-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a> severity, <br/>					 <a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)<br/>
 </pre><p>Signature of an error callback from a reader parser</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the user argument</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>severity</tt></i>:</span></td><td>the severity of the error</td></tr><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>a locator indicating where the error occured</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the user argument</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>severity</tt></i>:</span></td><td>the severity of the error</td></tr><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>a locator indicating where the error occurred</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlFreeTextReader"/>xmlFreeTextReader ()</h3><pre class="programlisting">void	xmlFreeTextReader		(<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
 </pre><p>Deallocate all the resources associated to the reader</p>
@@ -477,7 +477,7 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlTextReaderPreservePattern"/>xmlTextReaderPreservePattern ()</h3><pre class="programlisting">int	xmlTextReaderPreservePattern	(<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)<br/>
 </pre><p>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>an XPath subset pattern</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a positive number in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>an XPath subset pattern</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a non-negative number in case of success and -1 in case of error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlTextReaderQuoteChar"/>xmlTextReaderQuoteChar ()</h3><pre class="programlisting">int	xmlTextReaderQuoteChar		(<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
 </pre><p>The quotation mark character used to enclose the value of an attribute.</p>
diff --git a/doc/devhelp/libxml2-xmlregexp.html b/doc/devhelp/libxml2-xmlregexp.html
index 9427a34..8d5c80e 100644
--- a/doc/devhelp/libxml2-xmlregexp.html
+++ b/doc/devhelp/libxml2-xmlregexp.html
@@ -200,7 +200,7 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlExpNewCtxt"/>xmlExpNewCtxt ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a>	xmlExpNewCtxt		(int maxNodes, <br/>					 <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
 </pre><p>Creates a new context for manipulating expressions</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionnary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlExpNewOr"/>xmlExpNewOr ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	xmlExpNewOr		(<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/>					 <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br/>					 <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br/>
 </pre><p>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
diff --git a/doc/devhelp/libxml2-xmlstring.html b/doc/devhelp/libxml2-xmlstring.html
index 6dfc70b..95a845f 100644
--- a/doc/devhelp/libxml2-xmlstring.html
+++ b/doc/devhelp/libxml2-xmlstring.html
@@ -49,7 +49,7 @@
 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlCharStrndup">xmlCharStrndup</a>		(const char * cur, <br/>					 int len);
 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrcasestr">xmlStrcasestr</a>		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrcat">xmlStrcat</a>		(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add);
-int	<a href="#xmlStrPrintf">xmlStrPrintf</a>			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/>					 ... ...);
+int	<a href="#xmlStrPrintf">xmlStrPrintf</a>			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const char * msg, <br/>					 ... ...);
 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrstr">xmlStrstr</a>		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
 int	<a href="#xmlUTF8Size">xmlUTF8Size</a>			(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf);
 int	<a href="#xmlStrQEqual">xmlStrQEqual</a>			(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pref, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
@@ -65,7 +65,7 @@
 int	<a href="#xmlGetUTF8Char">xmlGetUTF8Char</a>			(const unsigned char * utf, <br/>					 int * len);
 int	<a href="#xmlStrcasecmp">xmlStrcasecmp</a>			(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2);
 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrndup">xmlStrndup</a>		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 int len);
-int	<a href="#xmlStrVPrintf">xmlStrVPrintf</a>			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/>					 va_list ap);
+int	<a href="#xmlStrVPrintf">xmlStrVPrintf</a>			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const char * msg, <br/>					 va_list ap);
 int	<a href="#xmlUTF8Strsize">xmlUTF8Strsize</a>			(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/>					 int len);
 int	<a href="#xmlCheckUTF8">xmlCheckUTF8</a>			(const unsigned char * utf);
 int	<a href="#xmlStrncasecmp">xmlStrncasecmp</a>			(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/>					 int len);
@@ -111,7 +111,7 @@
 </pre><p>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div></div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="xmlStrPrintf"/>xmlStrPrintf ()</h3><pre class="programlisting">int	xmlStrPrintf			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/>					 ... ...)<br/>
+        <div class="refsect2" lang="en"><h3><a name="xmlStrPrintf"/>xmlStrPrintf ()</h3><pre class="programlisting">int	xmlStrPrintf			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const char * msg, <br/>					 ... ...)<br/>
 </pre><p>Formats @msg and places result into @buf.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div></div>
         <hr/>
@@ -119,7 +119,7 @@
 </pre><p>Check if a QName is Equal to a given string</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div></div>
         <hr/>
-        <div class="refsect2" lang="en"><h3><a name="xmlStrVPrintf"/>xmlStrVPrintf ()</h3><pre class="programlisting">int	xmlStrVPrintf			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/>					 va_list ap)<br/>
+        <div class="refsect2" lang="en"><h3><a name="xmlStrVPrintf"/>xmlStrVPrintf ()</h3><pre class="programlisting">int	xmlStrVPrintf			(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/>					 int len, <br/>					 const char * msg, <br/>					 va_list ap)<br/>
 </pre><p>Formats @msg and places result into @buf.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>ap</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div></div>
         <hr/>
@@ -133,7 +133,7 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlStrcat"/>xmlStrcat ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	xmlStrcat		(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add)<br/>
 </pre><p>a strcat for array of xmlChar's. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of '0'.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * containing the concatenated string.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * containing the concatenated string. The original @cur is reallocated and should not be freed.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlStrchr"/>xmlStrchr ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	xmlStrchr		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/>					 <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> val)<br/>
 </pre><p>a strchr for xmlChar's</p>
@@ -157,7 +157,7 @@
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlStrncat"/>xmlStrncat ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	xmlStrncat		(<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add, <br/>					 int len)<br/>
 </pre><p>a strncat for array of xmlChar's, it will extend @cur with the len first bytes of @add. Note that if @len &lt; 0 then this is an API error and NULL will be returned.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of @add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *, the original @cur is reallocated if needed and should not be freed</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of @add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *, the original @cur is reallocated and should not be freed.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlStrncatNew"/>xmlStrncatNew ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	xmlStrncatNew		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/>					 const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/>					 int len)<br/>
 </pre><p>same as xmlStrncat, but creates a new string. The original two strings are not freed. If @len is &lt; 0 then the length will be calculated automatically.</p>
@@ -204,7 +204,7 @@
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>pos</tt></i>:</span></td><td>the position of the desired UTF8 char (in chars)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the UTF8 character or NULL</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlUTF8Strsize"/>xmlUTF8Strsize ()</h3><pre class="programlisting">int	xmlUTF8Strsize			(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/>					 int len)<br/>
-</pre><p>storage size of an UTF8 string the behaviour is not garanteed if the input string is not UTF-8</p>
+</pre><p>storage size of an UTF8 string the behaviour is not guaranteed if the input string is not UTF-8</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> in the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the storage size of the first 'len' <a href="libxml2-SAX.html#characters">characters</a> of ARRAY</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlUTF8Strsub"/>xmlUTF8Strsub ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *	xmlUTF8Strsub		(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/>					 int start, <br/>					 int len)<br/>
diff --git a/doc/devhelp/libxml2-xpath.html b/doc/devhelp/libxml2-xpath.html
index 640c715..edf7643 100644
--- a/doc/devhelp/libxml2-xpath.html
+++ b/doc/devhelp/libxml2-xpath.html
@@ -473,7 +473,7 @@
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlXPathEvalExpression"/>xmlXPathEvalExpression ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a>	xmlXPathEvalExpression	(const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/>						 <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br/>
-</pre><p>Evaluate the XPath expression in the given context.</p>
+</pre><p>Alias for xmlXPathEval().</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlXPathEvalPredicate"/>xmlXPathEvalPredicate ()</h3><pre class="programlisting">int	xmlXPathEvalPredicate		(<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/>					 <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> res)<br/>
@@ -501,15 +501,15 @@
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>the object to free</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlXPathInit"/>xmlXPathInit ()</h3><pre class="programlisting">void	xmlXPathInit			(void)<br/>
-</pre><p>Initialize the XPath environment</p>
+</pre><p>Initialize the XPath environment Does nothing but must be kept as public function.</p>
 </div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlXPathIsInf"/>xmlXPathIsInf ()</h3><pre class="programlisting">int	xmlXPathIsInf			(double val)<br/>
-</pre><p>Provides a portable isinf() function to detect whether a double is a +Infinite or -Infinite. Based on trio code http://sourceforge.net/projects/ctrio/</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div></div>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlXPathIsNaN"/>xmlXPathIsNaN ()</h3><pre class="programlisting">int	xmlXPathIsNaN			(double val)<br/>
-</pre><p>Provides a portable isnan() function to detect whether a double is a NotaNumber. Based on trio code http://sourceforge.net/projects/ctrio/</p>
+</pre><p/>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is a NaN, 0 otherwise</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlXPathNewContext"/>xmlXPathNewContext ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a>	xmlXPathNewContext	(<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
diff --git a/doc/devhelp/libxml2-xpathInternals.html b/doc/devhelp/libxml2-xpathInternals.html
index 0597343..17d27cd 100644
--- a/doc/devhelp/libxml2-xpathInternals.html
+++ b/doc/devhelp/libxml2-xpathInternals.html
@@ -694,7 +694,7 @@
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlXPathRoundFunction"/>xmlXPathRoundFunction ()</h3><pre class="programlisting">void	xmlXPathRoundFunction		(<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/>					 int nargs)<br/>
-</pre><p>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is even is returned.</p>
+</pre><p>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is closest to positive infinity is returned.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlXPathStartsWithFunction"/>xmlXPathStartsWithFunction ()</h3><pre class="programlisting">void	xmlXPathStartsWithFunction	(<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/>					 int nargs)<br/>
diff --git a/doc/devhelp/libxml2-xpointer.html b/doc/devhelp/libxml2-xpointer.html
index 807eed7..4d7c337 100644
--- a/doc/devhelp/libxml2-xpointer.html
+++ b/doc/devhelp/libxml2-xpointer.html
@@ -158,7 +158,7 @@
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting point</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlXPtrRangeToFunction"/>xmlXPtrRangeToFunction ()</h3><pre class="programlisting">void	xmlXPtrRangeToFunction		(<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/>					 int nargs)<br/>
-</pre><p>Implement the range-to() XPointer function</p>
+</pre><p>Implement the range-to() XPointer function Obsolete. range-to is not a real function but a special type of location step which is handled in xpath.c.</p>
 <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPointer Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of args</td></tr></tbody></table></div></div>
         <hr/>
         <div class="refsect2" lang="en"><h3><a name="xmlXPtrWrapLocationSet"/>xmlXPtrWrapLocationSet ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a>	xmlXPtrWrapLocationSet	(<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val)<br/>
diff --git a/doc/devhelp/libxml2.devhelp b/doc/devhelp/libxml2.devhelp
index 282546a..575b222 100644
--- a/doc/devhelp/libxml2.devhelp
+++ b/doc/devhelp/libxml2.devhelp
@@ -70,6 +70,7 @@
     <function name="HTML_PI_NODE" link="libxml2-HTMLtree.html#HTML_PI_NODE"/>
     <function name="HTML_PRESERVE_NODE" link="libxml2-HTMLtree.html#HTML_PRESERVE_NODE"/>
     <function name="HTML_TEXT_NODE" link="libxml2-HTMLtree.html#HTML_TEXT_NODE"/>
+    <function name="ICU_PIVOT_BUF_SIZE" link="libxml2-encoding.html#ICU_PIVOT_BUF_SIZE"/>
     <function name="INPUT_CHUNK" link="libxml2-parserInternals.html#INPUT_CHUNK"/>
     <function name="INVALID_SOCKET" link="libxml2-nanoftp.html#INVALID_SOCKET"/>
     <function name="IS_ASCII_DIGIT" link="libxml2-parserInternals.html#IS_ASCII_DIGIT"/>
@@ -351,6 +352,7 @@
     <function name="XML_ATTRIBUTE_NONE" link="libxml2-tree.html#XML_ATTRIBUTE_NONE"/>
     <function name="XML_ATTRIBUTE_NOTATION" link="libxml2-tree.html#XML_ATTRIBUTE_NOTATION"/>
     <function name="XML_ATTRIBUTE_REQUIRED" link="libxml2-tree.html#XML_ATTRIBUTE_REQUIRED"/>
+    <function name="XML_BUFFER_ALLOC_BOUNDED" link="libxml2-tree.html#XML_BUFFER_ALLOC_BOUNDED"/>
     <function name="XML_BUFFER_ALLOC_DOUBLEIT" link="libxml2-tree.html#XML_BUFFER_ALLOC_DOUBLEIT"/>
     <function name="XML_BUFFER_ALLOC_EXACT" link="libxml2-tree.html#XML_BUFFER_ALLOC_EXACT"/>
     <function name="XML_BUFFER_ALLOC_HYBRID" link="libxml2-tree.html#XML_BUFFER_ALLOC_HYBRID"/>
@@ -2388,6 +2390,7 @@
     <function name="xmlHashCopy ()" link="libxml2-hash.html#xmlHashCopy"/>
     <function name="xmlHashCreate ()" link="libxml2-hash.html#xmlHashCreate"/>
     <function name="xmlHashCreateDict ()" link="libxml2-hash.html#xmlHashCreateDict"/>
+    <function name="xmlHashDefaultDeallocator ()" link="libxml2-hash.html#xmlHashDefaultDeallocator"/>
     <function name="xmlHashFree ()" link="libxml2-hash.html#xmlHashFree"/>
     <function name="xmlHashLookup ()" link="libxml2-hash.html#xmlHashLookup"/>
     <function name="xmlHashLookup2 ()" link="libxml2-hash.html#xmlHashLookup2"/>
diff --git a/doc/docdescr.doc b/doc/docdescr.doc
index 427a1ff..3fec94a 100644
--- a/doc/docdescr.doc
+++ b/doc/docdescr.doc
@@ -29,7 +29,7 @@
 w3c.png                                    -
 
 apibuild.py        Python script which generates the file libxml2-api.xml
-parsedecl.py       Python secipt which generates the file libxml2-refs.xml
+parsedecl.py       Python script which generates the file libxml2-refs.xml
 
 api.xsl            xslt script to generate API cross-references APIchunk*.html
                      using information from libxml2-api.xml and libxml2-refs.xml
diff --git a/doc/elfgcchack.xsl b/doc/elfgcchack.xsl
index 9b1a9bc..8dd5c6a 100644
--- a/doc/elfgcchack.xsl
+++ b/doc/elfgcchack.xsl
@@ -18,7 +18,7 @@
 #ifdef IN_LIBXML
 #ifdef __GNUC__
 #ifdef PIC
-#ifdef linux
+#ifdef __linux__
 #if (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
 
 #include "libxml/c14n.h"
diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am
index 57af9c2..ef59fce 100644
--- a/doc/examples/Makefile.am
+++ b/doc/examples/Makefile.am
@@ -13,7 +13,7 @@
 rebuild: examples.xml index.html
 .PHONY: rebuild
 
-examples.xml: index.py $(noinst_PROGRAMS:=.c)
+examples.xml: index.py $(check_PROGRAMS:=.c)
 	cd $(srcdir) && $(PYTHON) index.py
 	$(MAKE) Makefile
 
@@ -49,7 +49,7 @@
 	xpath1.res \
 	xpath2.res
 
-noinst_PROGRAMS = \
+check_PROGRAMS = \
 	io1 \
 	io2 \
 	parse1 \
@@ -99,37 +99,38 @@
 valgrind: 
 	$(MAKE) CHECKER='valgrind' tests
 
-tests: $(noinst_PROGRAMS)
-	test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .
+tests: $(check_PROGRAMS)
+	@test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .
 	@(echo '## examples regression tests')
 	@(echo > .memdump)
-	$(CHECKER) ./io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res
+	@$(CHECKER) ./io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res
+	@$(CHECKER) ./io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./parse1 test1.xml
+	@$(CHECKER) ./parse1 test1.xml
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./parse2 test2.xml
+	@$(CHECKER) ./parse2 test2.xml
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./parse3
+	@$(CHECKER) ./parse3
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./parse4 test3.xml
+	@$(CHECKER) ./parse4 test3.xml
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
+	@$(CHECKER) ./reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
+	@$(CHECKER) ./reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./reader3 > reader3.tmp && diff reader3.tmp $(srcdir)/reader3.res
+	@$(CHECKER) ./reader3 > reader3.tmp && diff reader3.tmp $(srcdir)/reader3.res
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp && diff reader4.tmp $(srcdir)/reader4.res
+	@$(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp && diff reader4.tmp $(srcdir)/reader4.res
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./testWriter && for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done
+	@$(CHECKER) ./testWriter && for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res
+	@$(CHECKER) ./tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res
+	@$(CHECKER) ./tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res
+	@$(CHECKER) ./xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
-	$(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res
+	@$(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res
 	@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+	@rm *.tmp
diff --git a/doc/examples/examples.xml b/doc/examples/examples.xml
index 28929cc..d38247b 100644
--- a/doc/examples/examples.xml
+++ b/doc/examples/examples.xml
@@ -1,123 +1,4 @@
 <examples>
-  <example filename='xpath1.c'>
-    <synopsis>Evaluate XPath expression and prints result node set.</synopsis>
-    <purpose>Shows how to evaluate XPath expression and register known namespaces in XPath context.</purpose>
-    <usage>xpath1 &lt;xml-file&gt; &lt;xpath-expr&gt; [&lt;known-ns-list&gt;]</usage>
-    <test>xpath1 test3.xml &apos;//child2&apos; &gt; xpath1.tmp &amp;&amp; diff xpath1.tmp $(srcdir)/xpath1.res</test>
-    <author>Aleksey Sanin</author>
-    <copy>see Copyright for the status of this software. </copy>
-    <section>XPath</section>
-    <includes>
-      <include>&lt;libxml/parser.h&gt;</include>
-      <include>&lt;libxml/xpath.h&gt;</include>
-      <include>&lt;libxml/xpathInternals.h&gt;</include>
-      <include>&lt;libxml/tree.h&gt;</include>
-    </includes>
-    <uses>
-      <enum line='229' file='tree' name='XML_ELEMENT_NODE'/>
-      <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
-      <function line='54' file='xmlmemory' name='xmlMemoryDump'/>
-      <function line='117' file='xpath' name='xmlXPathEvalExpression'/>
-      <function line='94' file='parser' name='xmlParseFile'/>
-      <function line='186' file='xpathInternals' name='xmlXPathRegisterNs'/>
-      <function line='129' file='xpath' name='xmlXPathFreeObject'/>
-      <variable line='193' file='globals' name='xmlFree'/>
-      <typedef line='218' file='tree' name='xmlNsPtr'/>
-      <function line='101' file='xpath' name='xmlXPathNewContext'/>
-      <function line='49' file='parser' name='xmlCleanupParser'/>
-      <macro line='43' file='xmlversion' name='LIBXML_TEST_VERSION'/>
-      <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
-      <function line='130' file='xpath' name='xmlXPathFreeContext'/>
-      <function line='39' file='parser' name='xmlInitParser'/>
-      <function line='156' file='xmlstring' name='xmlStrdup'/>
-      <function line='131' file='tree' name='xmlFreeDoc'/>
-      <function line='180' file='xmlstring' name='xmlStrchr'/>
-      <typedef line='206' file='tree' name='xmlNodePtr'/>
-      <typedef line='86' file='tree' name='xmlDocPtr'/>
-      <enum line='217' file='tree' name='XML_NAMESPACE_DECL'/>
-    </uses>
-  </example>
-  <example filename='parse3.c'>
-    <synopsis>Parse an XML document in memory to a tree and free it</synopsis>
-    <purpose>Demonstrate the use of xmlReadMemory() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
-    <usage>parse3</usage>
-    <test>parse3</test>
-    <author>Daniel Veillard</author>
-    <copy>see Copyright for the status of this software. </copy>
-    <section>Parsing</section>
-    <includes>
-      <include>&lt;libxml/tree.h&gt;</include>
-      <include>&lt;libxml/parser.h&gt;</include>
-    </includes>
-    <uses>
-      <function line='33' file='parser' name='xmlReadMemory'/>
-      <function line='58' file='xmlmemory' name='xmlMemoryDump'/>
-      <function line='54' file='parser' name='xmlCleanupParser'/>
-      <macro line='49' file='xmlversion' name='LIBXML_TEST_VERSION'/>
-      <function line='38' file='tree' name='xmlFreeDoc'/>
-      <typedef line='27' file='tree' name='xmlDocPtr'/>
-    </uses>
-  </example>
-  <example filename='reader2.c'>
-    <synopsis>Parse and validate an XML file with an xmlReader</synopsis>
-    <purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
-    <usage>reader2 &lt;valid_xml_filename&gt;</usage>
-    <test>reader2 test2.xml &gt; reader1.tmp &amp;&amp; diff reader1.tmp $(srcdir)/reader1.res</test>
-    <author>Daniel Veillard</author>
-    <copy>see Copyright for the status of this software. </copy>
-    <section>xmlReader</section>
-    <includes>
-      <include>&lt;libxml/xmlreader.h&gt;</include>
-    </includes>
-    <uses>
-      <function line='45' file='xmlstring' name='xmlStrlen'/>
-      <function line='109' file='parser' name='xmlCleanupParser'/>
-      <function line='38' file='xmlreader' name='xmlTextReaderNodeType'/>
-      <typedef line='60' file='xmlreader' name='xmlTextReaderPtr'/>
-      <function line='113' file='xmlmemory' name='xmlMemoryDump'/>
-      <function line='34' file='xmlreader' name='xmlTextReaderConstValue'/>
-      <enum line='70' file='parser' name='XML_PARSE_NOENT'/>
-      <function line='37' file='xmlreader' name='xmlTextReaderDepth'/>
-      <enum line='71' file='parser' name='XML_PARSE_DTDVALID'/>
-      <enum line='69' file='parser' name='XML_PARSE_DTDATTR'/>
-      <function line='84' file='xmlreader' name='xmlFreeTextReader'/>
-      <macro line='104' file='xmlversion' name='LIBXML_TEST_VERSION'/>
-      <function line='30' file='xmlreader' name='xmlTextReaderConstName'/>
-      <function line='41' file='xmlreader' name='xmlTextReaderHasValue'/>
-      <function line='76' file='xmlreader' name='xmlTextReaderRead'/>
-      <function line='40' file='xmlreader' name='xmlTextReaderIsEmptyElement'/>
-      <function line='68' file='xmlreader' name='xmlReaderForFile'/>
-      <function line='81' file='xmlreader' name='xmlTextReaderIsValid'/>
-    </uses>
-  </example>
-  <example filename='tree2.c'>
-    <synopsis>Creates a tree</synopsis>
-    <purpose>Shows how to create document, nodes and dump it to stdout or file.</purpose>
-    <usage>tree2 &lt;filename&gt;  -Default output: stdout</usage>
-    <test>tree2 &gt; tree2.tmp &amp;&amp; diff tree2.tmp $(srcdir)/tree2.res</test>
-    <author>Lucas Brasilino &lt;brasilino@recife.pe.gov.br&gt;</author>
-    <copy>see Copyright for the status of this software </copy>
-    <section>Tree</section>
-    <includes>
-      <include>&lt;libxml/tree.h&gt;</include>
-      <include>&lt;libxml/parser.h&gt;</include>
-    </includes>
-    <uses>
-      <function line='75' file='tree' name='xmlNewText'/>
-      <function line='110' file='xmlmemory' name='xmlMemoryDump'/>
-      <function line='96' file='tree' name='xmlSaveFormatFileEnc'/>
-      <function line='78' file='tree' name='xmlAddChild'/>
-      <function line='41' file='tree' name='xmlDocSetRootElement'/>
-      <function line='105' file='parser' name='xmlCleanupParser'/>
-      <macro line='34' file='xmlversion' name='LIBXML_TEST_VERSION'/>
-      <function line='89' file='tree' name='xmlNewProp'/>
-      <function line='88' file='tree' name='xmlNewChild'/>
-      <function line='74' file='tree' name='xmlNewNode'/>
-      <function line='46' file='tree' name='xmlCreateIntSubset'/>
-      <function line='99' file='tree' name='xmlFreeDoc'/>
-      <function line='39' file='tree' name='xmlNewDoc'/>
-    </uses>
-  </example>
   <example filename='io1.c'>
     <synopsis>Example of custom Input/Output</synopsis>
     <purpose>Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way.</purpose>
@@ -144,6 +25,96 @@
       <typedef line='105' file='tree' name='xmlDocPtr'/>
     </uses>
   </example>
+  <example filename='io2.c'>
+    <synopsis>Output to char buffer</synopsis>
+    <purpose>Demonstrate the use of xmlDocDumpMemory to output document to a character buffer</purpose>
+    <usage>io2</usage>
+    <test>io2 &gt; io2.tmp &amp;&amp; diff io2.tmp $(srcdir)/io2.res</test>
+    <author>John Fleck</author>
+    <copy>see Copyright for the status of this software. </copy>
+    <section>InputOutput</section>
+    <includes>
+      <include>&lt;libxml/parser.h&gt;</include>
+    </includes>
+    <uses>
+      <function line='29' file='tree' name='xmlNodeSetContent'/>
+      <function line='36' file='tree' name='xmlDocDumpFormatMemory'/>
+      <variable line='42' file='globals' name='xmlFree'/>
+      <function line='30' file='tree' name='xmlDocSetRootElement'/>
+      <typedef line='20' file='tree' name='xmlDocPtr'/>
+      <function line='43' file='tree' name='xmlFreeDoc'/>
+      <typedef line='19' file='tree' name='xmlNodePtr'/>
+      <function line='27' file='tree' name='xmlNewDoc'/>
+      <function line='28' file='tree' name='xmlNewNode'/>
+    </uses>
+  </example>
+  <example filename='parse1.c'>
+    <synopsis>Parse an XML file to a tree and free it</synopsis>
+    <purpose>Demonstrate the use of xmlReadFile() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
+    <usage>parse1 test1.xml</usage>
+    <test>parse1 test1.xml</test>
+    <author>Daniel Veillard</author>
+    <copy>see Copyright for the status of this software. </copy>
+    <section>Parsing</section>
+    <includes>
+      <include>&lt;libxml/tree.h&gt;</include>
+      <include>&lt;libxml/parser.h&gt;</include>
+    </includes>
+    <uses>
+      <function line='54' file='xmlmemory' name='xmlMemoryDump'/>
+      <function line='50' file='parser' name='xmlCleanupParser'/>
+      <macro line='45' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+      <typedef line='24' file='tree' name='xmlDocPtr'/>
+      <function line='31' file='tree' name='xmlFreeDoc'/>
+      <function line='26' file='parser' name='xmlReadFile'/>
+    </uses>
+  </example>
+  <example filename='parse2.c'>
+    <synopsis>Parse and validate an XML file to a tree and free the result</synopsis>
+    <purpose>Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree.</purpose>
+    <usage>parse2 test2.xml</usage>
+    <test>parse2 test2.xml</test>
+    <author>Daniel Veillard</author>
+    <copy>see Copyright for the status of this software. </copy>
+    <section>Parsing</section>
+    <includes>
+      <include>&lt;libxml/tree.h&gt;</include>
+      <include>&lt;libxml/parser.h&gt;</include>
+    </includes>
+    <uses>
+      <function line='47' file='parser' name='xmlFreeParserCtxt'/>
+      <enum line='35' file='parser' name='XML_PARSE_DTDVALID'/>
+      <function line='29' file='parser' name='xmlNewParserCtxt'/>
+      <typedef line='25' file='tree' name='xmlParserCtxtPtr'/>
+      <function line='35' file='parser' name='xmlCtxtReadFile'/>
+      <function line='66' file='parser' name='xmlCleanupParser'/>
+      <macro line='61' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+      <function line='44' file='tree' name='xmlFreeDoc'/>
+      <typedef line='26' file='tree' name='xmlDocPtr'/>
+      <function line='70' file='xmlmemory' name='xmlMemoryDump'/>
+    </uses>
+  </example>
+  <example filename='parse3.c'>
+    <synopsis>Parse an XML document in memory to a tree and free it</synopsis>
+    <purpose>Demonstrate the use of xmlReadMemory() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
+    <usage>parse3</usage>
+    <test>parse3</test>
+    <author>Daniel Veillard</author>
+    <copy>see Copyright for the status of this software. </copy>
+    <section>Parsing</section>
+    <includes>
+      <include>&lt;libxml/tree.h&gt;</include>
+      <include>&lt;libxml/parser.h&gt;</include>
+    </includes>
+    <uses>
+      <function line='33' file='parser' name='xmlReadMemory'/>
+      <function line='58' file='xmlmemory' name='xmlMemoryDump'/>
+      <function line='54' file='parser' name='xmlCleanupParser'/>
+      <macro line='49' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+      <function line='38' file='tree' name='xmlFreeDoc'/>
+      <typedef line='27' file='tree' name='xmlDocPtr'/>
+    </uses>
+  </example>
   <example filename='parse4.c'>
     <synopsis>Parse an XML document chunk by chunk to a tree and free it</synopsis>
     <purpose>Demonstrate the use of xmlCreatePushParserCtxt() and xmlParseChunk() to read an XML file progressively into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
@@ -168,58 +139,6 @@
       <typedef line='47' file='tree' name='xmlDocPtr'/>
     </uses>
   </example>
-  <example filename='xpath2.c'>
-    <synopsis>Load a document, locate subelements with XPath, modify said elements and save the resulting document.</synopsis>
-    <purpose>Shows how to make a full round-trip from a load/edit/save</purpose>
-    <usage>xpath2 &lt;xml-file&gt; &lt;xpath-expr&gt; &lt;new-value&gt;</usage>
-    <test>xpath2 test3.xml &apos;//discarded&apos; discarded &gt; xpath2.tmp &amp;&amp; diff xpath2.tmp $(srcdir)/xpath2.res</test>
-    <author>Aleksey Sanin and Daniel Veillard</author>
-    <copy>see Copyright for the status of this software. </copy>
-    <section>XPath</section>
-    <includes>
-      <include>&lt;libxml/parser.h&gt;</include>
-      <include>&lt;libxml/xpath.h&gt;</include>
-      <include>&lt;libxml/xpathInternals.h&gt;</include>
-      <include>&lt;libxml/tree.h&gt;</include>
-    </includes>
-    <uses>
-      <function line='162' file='tree' name='xmlNodeSetContent'/>
-      <function line='127' file='tree' name='xmlDocDump'/>
-      <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
-      <function line='110' file='xpath' name='xmlXPathEvalExpression'/>
-      <function line='95' file='parser' name='xmlParseFile'/>
-      <function line='123' file='xpath' name='xmlXPathFreeObject'/>
-      <function line='102' file='xpath' name='xmlXPathNewContext'/>
-      <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
-      <function line='124' file='xpath' name='xmlXPathFreeContext'/>
-      <function line='41' file='parser' name='xmlInitParser'/>
-      <function line='131' file='tree' name='xmlFreeDoc'/>
-      <enum line='180' file='tree' name='XML_NAMESPACE_DECL'/>
-      <typedef line='86' file='tree' name='xmlDocPtr'/>
-    </uses>
-  </example>
-  <example filename='io2.c'>
-    <synopsis>Output to char buffer</synopsis>
-    <purpose>Demonstrate the use of xmlDocDumpMemory to output document to a character buffer</purpose>
-    <usage>io2</usage>
-    <test>io2 &gt; io2.tmp &amp;&amp; diff io2.tmp $(srcdir)/io2.res</test>
-    <author>John Fleck</author>
-    <copy>see Copyright for the status of this software. </copy>
-    <section>InputOutput</section>
-    <includes>
-      <include>&lt;libxml/parser.h&gt;</include>
-    </includes>
-    <uses>
-      <function line='29' file='tree' name='xmlNodeSetContent'/>
-      <function line='36' file='tree' name='xmlDocDumpFormatMemory'/>
-      <variable line='42' file='globals' name='xmlFree'/>
-      <function line='30' file='tree' name='xmlDocSetRootElement'/>
-      <typedef line='20' file='tree' name='xmlDocPtr'/>
-      <typedef line='19' file='tree' name='xmlNodePtr'/>
-      <function line='27' file='tree' name='xmlNewDoc'/>
-      <function line='28' file='tree' name='xmlNewNode'/>
-    </uses>
-  </example>
   <example filename='reader1.c'>
     <synopsis>Parse an XML file with an xmlReader</synopsis>
     <purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the informations about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
@@ -233,11 +152,14 @@
     </includes>
     <uses>
       <function line='44' file='xmlstring' name='xmlStrlen'/>
+      <function line='94' file='parser' name='xmlCleanupParser'/>
       <function line='37' file='xmlreader' name='xmlTextReaderNodeType'/>
       <typedef line='59' file='xmlreader' name='xmlTextReaderPtr'/>
+      <function line='98' file='xmlmemory' name='xmlMemoryDump'/>
       <function line='33' file='xmlreader' name='xmlTextReaderConstValue'/>
       <function line='36' file='xmlreader' name='xmlTextReaderDepth'/>
       <function line='69' file='xmlreader' name='xmlFreeTextReader'/>
+      <macro line='89' file='xmlversion' name='LIBXML_TEST_VERSION'/>
       <function line='29' file='xmlreader' name='xmlTextReaderConstName'/>
       <function line='40' file='xmlreader' name='xmlTextReaderHasValue'/>
       <function line='67' file='xmlreader' name='xmlTextReaderRead'/>
@@ -245,22 +167,33 @@
       <function line='62' file='xmlreader' name='xmlReaderForFile'/>
     </uses>
   </example>
-  <example filename='tree1.c'>
-    <synopsis>Navigates a tree to print element names</synopsis>
-    <purpose>Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.</purpose>
-    <usage>tree1 filename_or_URL</usage>
-    <test>tree1 test2.xml &gt; tree1.tmp &amp;&amp; diff tree1.tmp $(srcdir)/tree1.res</test>
-    <author>Dodji Seketeli</author>
+  <example filename='reader2.c'>
+    <synopsis>Parse and validate an XML file with an xmlReader</synopsis>
+    <purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
+    <usage>reader2 &lt;valid_xml_filename&gt;</usage>
+    <test>reader2 test2.xml &gt; reader1.tmp &amp;&amp; diff reader1.tmp $(srcdir)/reader1.res</test>
+    <author>Daniel Veillard</author>
     <copy>see Copyright for the status of this software. </copy>
-    <section>Tree</section>
+    <section>xmlReader</section>
     <includes>
-      <include>&lt;libxml/tree.h&gt;</include>
-      <include>&lt;libxml/parser.h&gt;</include>
+      <include>&lt;libxml/xmlreader.h&gt;</include>
     </includes>
     <uses>
-      <enum line='36' file='tree' name='XML_ELEMENT_NODE'/>
-      <function line='74' file='tree' name='xmlDocGetRootElement'/>
-      <function line='67' file='parser' name='xmlReadFile'/>
+      <function line='45' file='xmlstring' name='xmlStrlen'/>
+      <function line='38' file='xmlreader' name='xmlTextReaderNodeType'/>
+      <typedef line='60' file='xmlreader' name='xmlTextReaderPtr'/>
+      <function line='34' file='xmlreader' name='xmlTextReaderConstValue'/>
+      <enum line='70' file='parser' name='XML_PARSE_NOENT'/>
+      <function line='37' file='xmlreader' name='xmlTextReaderDepth'/>
+      <enum line='71' file='parser' name='XML_PARSE_DTDVALID'/>
+      <enum line='69' file='parser' name='XML_PARSE_DTDATTR'/>
+      <function line='84' file='xmlreader' name='xmlFreeTextReader'/>
+      <function line='30' file='xmlreader' name='xmlTextReaderConstName'/>
+      <function line='41' file='xmlreader' name='xmlTextReaderHasValue'/>
+      <function line='76' file='xmlreader' name='xmlTextReaderRead'/>
+      <function line='40' file='xmlreader' name='xmlTextReaderIsEmptyElement'/>
+      <function line='68' file='xmlreader' name='xmlReaderForFile'/>
+      <function line='81' file='xmlreader' name='xmlTextReaderIsValid'/>
     </uses>
   </example>
   <example filename='reader3.c'>
@@ -284,42 +217,6 @@
       <function line='38' file='xmlreader' name='xmlReaderForFile'/>
     </uses>
   </example>
-  <example filename='parse2.c'>
-    <synopsis>Parse and validate an XML file to a tree and free the result</synopsis>
-    <purpose>Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree.</purpose>
-    <usage>parse2 test2.xml</usage>
-    <test>parse2 test2.xml</test>
-    <author>Daniel Veillard</author>
-    <copy>see Copyright for the status of this software. </copy>
-    <section>Parsing</section>
-    <includes>
-      <include>&lt;libxml/tree.h&gt;</include>
-      <include>&lt;libxml/parser.h&gt;</include>
-    </includes>
-    <uses>
-      <function line='47' file='parser' name='xmlFreeParserCtxt'/>
-      <enum line='35' file='parser' name='XML_PARSE_DTDVALID'/>
-      <function line='29' file='parser' name='xmlNewParserCtxt'/>
-      <typedef line='25' file='tree' name='xmlParserCtxtPtr'/>
-      <function line='35' file='parser' name='xmlCtxtReadFile'/>
-    </uses>
-  </example>
-  <example filename='parse1.c'>
-    <synopsis>Parse an XML file to a tree and free it</synopsis>
-    <purpose>Demonstrate the use of xmlReadFile() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
-    <usage>parse1 test1.xml</usage>
-    <test>parse1 test1.xml</test>
-    <author>Daniel Veillard</author>
-    <copy>see Copyright for the status of this software. </copy>
-    <section>Parsing</section>
-    <includes>
-      <include>&lt;libxml/tree.h&gt;</include>
-      <include>&lt;libxml/parser.h&gt;</include>
-    </includes>
-    <uses>
-      <function line='26' file='parser' name='xmlReadFile'/>
-    </uses>
-  </example>
   <example filename='reader4.c'>
     <synopsis>Parse multiple XML files reusing an xmlReader</synopsis>
     <purpose>Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context.  (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
@@ -384,21 +281,124 @@
       <function line='885' file='tree' name='xmlNewDoc'/>
     </uses>
   </example>
+  <example filename='tree1.c'>
+    <synopsis>Navigates a tree to print element names</synopsis>
+    <purpose>Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.</purpose>
+    <usage>tree1 filename_or_URL</usage>
+    <test>tree1 test2.xml &gt; tree1.tmp &amp;&amp; diff tree1.tmp $(srcdir)/tree1.res</test>
+    <author>Dodji Seketeli</author>
+    <copy>see Copyright for the status of this software. </copy>
+    <section>Tree</section>
+    <includes>
+      <include>&lt;libxml/tree.h&gt;</include>
+      <include>&lt;libxml/parser.h&gt;</include>
+    </includes>
+    <uses>
+      <enum line='36' file='tree' name='XML_ELEMENT_NODE'/>
+      <function line='74' file='tree' name='xmlDocGetRootElement'/>
+      <function line='67' file='parser' name='xmlReadFile'/>
+    </uses>
+  </example>
+  <example filename='tree2.c'>
+    <synopsis>Creates a tree</synopsis>
+    <purpose>Shows how to create document, nodes and dump it to stdout or file.</purpose>
+    <usage>tree2 &lt;filename&gt;  -Default output: stdout</usage>
+    <test>tree2 &gt; tree2.tmp &amp;&amp; diff tree2.tmp $(srcdir)/tree2.res</test>
+    <author>Lucas Brasilino &lt;brasilino@recife.pe.gov.br&gt;</author>
+    <copy>see Copyright for the status of this software </copy>
+    <section>Tree</section>
+    <includes>
+      <include>&lt;libxml/tree.h&gt;</include>
+      <include>&lt;libxml/parser.h&gt;</include>
+    </includes>
+    <uses>
+      <function line='74' file='tree' name='xmlNewText'/>
+      <function line='95' file='tree' name='xmlSaveFormatFileEnc'/>
+      <function line='77' file='tree' name='xmlAddChild'/>
+      <function line='40' file='tree' name='xmlDocSetRootElement'/>
+      <function line='88' file='tree' name='xmlNewProp'/>
+      <function line='87' file='tree' name='xmlNewChild'/>
+      <function line='73' file='tree' name='xmlNewNode'/>
+      <function line='45' file='tree' name='xmlCreateIntSubset'/>
+      <function line='38' file='tree' name='xmlNewDoc'/>
+    </uses>
+  </example>
+  <example filename='xpath1.c'>
+    <synopsis>Evaluate XPath expression and prints result node set.</synopsis>
+    <purpose>Shows how to evaluate XPath expression and register known namespaces in XPath context.</purpose>
+    <usage>xpath1 &lt;xml-file&gt; &lt;xpath-expr&gt; [&lt;known-ns-list&gt;]</usage>
+    <test>xpath1 test3.xml &apos;//child2&apos; &gt; xpath1.tmp &amp;&amp; diff xpath1.tmp $(srcdir)/xpath1.res</test>
+    <author>Aleksey Sanin</author>
+    <copy>see Copyright for the status of this software. </copy>
+    <section>XPath</section>
+    <includes>
+      <include>&lt;libxml/parser.h&gt;</include>
+      <include>&lt;libxml/xpath.h&gt;</include>
+      <include>&lt;libxml/xpathInternals.h&gt;</include>
+      <include>&lt;libxml/tree.h&gt;</include>
+    </includes>
+    <uses>
+      <enum line='229' file='tree' name='XML_ELEMENT_NODE'/>
+      <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
+      <function line='117' file='xpath' name='xmlXPathEvalExpression'/>
+      <function line='94' file='parser' name='xmlParseFile'/>
+      <function line='186' file='xpathInternals' name='xmlXPathRegisterNs'/>
+      <function line='129' file='xpath' name='xmlXPathFreeObject'/>
+      <variable line='193' file='globals' name='xmlFree'/>
+      <typedef line='218' file='tree' name='xmlNsPtr'/>
+      <function line='101' file='xpath' name='xmlXPathNewContext'/>
+      <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
+      <function line='130' file='xpath' name='xmlXPathFreeContext'/>
+      <function line='39' file='parser' name='xmlInitParser'/>
+      <function line='156' file='xmlstring' name='xmlStrdup'/>
+      <function line='180' file='xmlstring' name='xmlStrchr'/>
+      <typedef line='206' file='tree' name='xmlNodePtr'/>
+      <enum line='217' file='tree' name='XML_NAMESPACE_DECL'/>
+    </uses>
+  </example>
+  <example filename='xpath2.c'>
+    <synopsis>Load a document, locate subelements with XPath, modify said elements and save the resulting document.</synopsis>
+    <purpose>Shows how to make a full round-trip from a load/edit/save</purpose>
+    <usage>xpath2 &lt;xml-file&gt; &lt;xpath-expr&gt; &lt;new-value&gt;</usage>
+    <test>xpath2 test3.xml &apos;//discarded&apos; discarded &gt; xpath2.tmp &amp;&amp; diff xpath2.tmp $(srcdir)/xpath2.res</test>
+    <author>Aleksey Sanin and Daniel Veillard</author>
+    <copy>see Copyright for the status of this software. </copy>
+    <section>XPath</section>
+    <includes>
+      <include>&lt;libxml/parser.h&gt;</include>
+      <include>&lt;libxml/xpath.h&gt;</include>
+      <include>&lt;libxml/xpathInternals.h&gt;</include>
+      <include>&lt;libxml/tree.h&gt;</include>
+    </includes>
+    <uses>
+      <function line='162' file='tree' name='xmlNodeSetContent'/>
+      <function line='127' file='tree' name='xmlDocDump'/>
+      <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
+      <function line='110' file='xpath' name='xmlXPathEvalExpression'/>
+      <function line='95' file='parser' name='xmlParseFile'/>
+      <function line='123' file='xpath' name='xmlXPathFreeObject'/>
+      <function line='102' file='xpath' name='xmlXPathNewContext'/>
+      <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
+      <function line='124' file='xpath' name='xmlXPathFreeContext'/>
+      <function line='41' file='parser' name='xmlInitParser'/>
+      <enum line='180' file='tree' name='XML_NAMESPACE_DECL'/>
+    </uses>
+  </example>
   <symbols>
     <symbol name='LIBXML_TEST_VERSION'>
-      <ref filename='xpath1.c'/>
-      <ref filename='parse3.c'/>
-      <ref filename='reader2.c'/>
-      <ref filename='tree2.c'/>
       <ref filename='io1.c'/>
+      <ref filename='parse1.c'/>
+      <ref filename='parse2.c'/>
+      <ref filename='parse3.c'/>
       <ref filename='parse4.c'/>
+      <ref filename='reader1.c'/>
     </symbol>
     <symbol name='XML_DEFAULT_VERSION'>
       <ref filename='testWriter.c'/>
     </symbol>
     <symbol name='XML_ELEMENT_NODE'>
-      <ref filename='xpath1.c'/>
       <ref filename='tree1.c'/>
+      <ref filename='xpath1.c'/>
     </symbol>
     <symbol name='XML_NAMESPACE_DECL'>
       <ref filename='xpath1.c'/>
@@ -408,8 +408,8 @@
       <ref filename='reader2.c'/>
     </symbol>
     <symbol name='XML_PARSE_DTDVALID'>
-      <ref filename='reader2.c'/>
       <ref filename='parse2.c'/>
+      <ref filename='reader2.c'/>
     </symbol>
     <symbol name='XML_PARSE_NOENT'>
       <ref filename='reader2.c'/>
@@ -430,12 +430,12 @@
       <ref filename='testWriter.c'/>
     </symbol>
     <symbol name='xmlCleanupParser'>
-      <ref filename='xpath1.c'/>
-      <ref filename='parse3.c'/>
-      <ref filename='reader2.c'/>
-      <ref filename='tree2.c'/>
       <ref filename='io1.c'/>
+      <ref filename='parse1.c'/>
+      <ref filename='parse2.c'/>
+      <ref filename='parse3.c'/>
       <ref filename='parse4.c'/>
+      <ref filename='reader1.c'/>
     </symbol>
     <symbol name='xmlCreateIntSubset'>
       <ref filename='tree2.c'/>
@@ -448,8 +448,8 @@
     </symbol>
     <symbol name='xmlDocDump'>
       <ref filename='io1.c'/>
-      <ref filename='xpath2.c'/>
       <ref filename='reader3.c'/>
+      <ref filename='xpath2.c'/>
     </symbol>
     <symbol name='xmlDocDumpFormatMemory'>
       <ref filename='io2.c'/>
@@ -458,41 +458,41 @@
       <ref filename='tree1.c'/>
     </symbol>
     <symbol name='xmlDocPtr'>
-      <ref filename='xpath1.c'/>
-      <ref filename='parse3.c'/>
       <ref filename='io1.c'/>
-      <ref filename='parse4.c'/>
-      <ref filename='xpath2.c'/>
       <ref filename='io2.c'/>
+      <ref filename='parse1.c'/>
+      <ref filename='parse2.c'/>
+      <ref filename='parse3.c'/>
+      <ref filename='parse4.c'/>
     </symbol>
     <symbol name='xmlDocSetRootElement'>
-      <ref filename='tree2.c'/>
       <ref filename='io2.c'/>
       <ref filename='testWriter.c'/>
+      <ref filename='tree2.c'/>
     </symbol>
     <symbol name='xmlFindCharEncodingHandler'>
       <ref filename='testWriter.c'/>
     </symbol>
     <symbol name='xmlFree'>
-      <ref filename='xpath1.c'/>
       <ref filename='io2.c'/>
       <ref filename='testWriter.c'/>
+      <ref filename='xpath1.c'/>
     </symbol>
     <symbol name='xmlFreeDoc'>
-      <ref filename='xpath1.c'/>
-      <ref filename='parse3.c'/>
-      <ref filename='tree2.c'/>
       <ref filename='io1.c'/>
+      <ref filename='io2.c'/>
+      <ref filename='parse1.c'/>
+      <ref filename='parse2.c'/>
+      <ref filename='parse3.c'/>
       <ref filename='parse4.c'/>
-      <ref filename='xpath2.c'/>
     </symbol>
     <symbol name='xmlFreeParserCtxt'>
-      <ref filename='parse4.c'/>
       <ref filename='parse2.c'/>
+      <ref filename='parse4.c'/>
     </symbol>
     <symbol name='xmlFreeTextReader'>
-      <ref filename='reader2.c'/>
       <ref filename='reader1.c'/>
+      <ref filename='reader2.c'/>
       <ref filename='reader3.c'/>
       <ref filename='reader4.c'/>
     </symbol>
@@ -507,27 +507,27 @@
       <ref filename='testWriter.c'/>
     </symbol>
     <symbol name='xmlMemoryDump'>
-      <ref filename='xpath1.c'/>
-      <ref filename='parse3.c'/>
-      <ref filename='reader2.c'/>
-      <ref filename='tree2.c'/>
       <ref filename='io1.c'/>
+      <ref filename='parse1.c'/>
+      <ref filename='parse2.c'/>
+      <ref filename='parse3.c'/>
       <ref filename='parse4.c'/>
+      <ref filename='reader1.c'/>
     </symbol>
     <symbol name='xmlNewChild'>
       <ref filename='tree2.c'/>
     </symbol>
     <symbol name='xmlNewDoc'>
-      <ref filename='tree2.c'/>
       <ref filename='io2.c'/>
       <ref filename='testWriter.c'/>
+      <ref filename='tree2.c'/>
     </symbol>
     <symbol name='xmlNewDocNode'>
       <ref filename='testWriter.c'/>
     </symbol>
     <symbol name='xmlNewNode'>
-      <ref filename='tree2.c'/>
       <ref filename='io2.c'/>
+      <ref filename='tree2.c'/>
     </symbol>
     <symbol name='xmlNewParserCtxt'>
       <ref filename='parse2.c'/>
@@ -551,13 +551,13 @@
       <ref filename='testWriter.c'/>
     </symbol>
     <symbol name='xmlNodePtr'>
-      <ref filename='xpath1.c'/>
       <ref filename='io2.c'/>
       <ref filename='testWriter.c'/>
+      <ref filename='xpath1.c'/>
     </symbol>
     <symbol name='xmlNodeSetContent'>
-      <ref filename='xpath2.c'/>
       <ref filename='io2.c'/>
+      <ref filename='xpath2.c'/>
     </symbol>
     <symbol name='xmlNsPtr'>
       <ref filename='xpath1.c'/>
@@ -570,20 +570,20 @@
       <ref filename='xpath2.c'/>
     </symbol>
     <symbol name='xmlParserCtxtPtr'>
-      <ref filename='parse4.c'/>
       <ref filename='parse2.c'/>
+      <ref filename='parse4.c'/>
     </symbol>
     <symbol name='xmlReadFile'>
-      <ref filename='tree1.c'/>
       <ref filename='parse1.c'/>
+      <ref filename='tree1.c'/>
     </symbol>
     <symbol name='xmlReadMemory'>
-      <ref filename='parse3.c'/>
       <ref filename='io1.c'/>
+      <ref filename='parse3.c'/>
     </symbol>
     <symbol name='xmlReaderForFile'>
-      <ref filename='reader2.c'/>
       <ref filename='reader1.c'/>
+      <ref filename='reader2.c'/>
       <ref filename='reader3.c'/>
       <ref filename='reader4.c'/>
     </symbol>
@@ -609,52 +609,52 @@
       <ref filename='xpath1.c'/>
     </symbol>
     <symbol name='xmlStrlen'>
-      <ref filename='reader2.c'/>
       <ref filename='reader1.c'/>
+      <ref filename='reader2.c'/>
     </symbol>
     <symbol name='xmlTextReaderConstName'>
-      <ref filename='reader2.c'/>
       <ref filename='reader1.c'/>
+      <ref filename='reader2.c'/>
     </symbol>
     <symbol name='xmlTextReaderConstValue'>
-      <ref filename='reader2.c'/>
       <ref filename='reader1.c'/>
+      <ref filename='reader2.c'/>
     </symbol>
     <symbol name='xmlTextReaderCurrentDoc'>
       <ref filename='reader3.c'/>
       <ref filename='reader4.c'/>
     </symbol>
     <symbol name='xmlTextReaderDepth'>
-      <ref filename='reader2.c'/>
       <ref filename='reader1.c'/>
+      <ref filename='reader2.c'/>
     </symbol>
     <symbol name='xmlTextReaderHasValue'>
-      <ref filename='reader2.c'/>
       <ref filename='reader1.c'/>
+      <ref filename='reader2.c'/>
     </symbol>
     <symbol name='xmlTextReaderIsEmptyElement'>
-      <ref filename='reader2.c'/>
       <ref filename='reader1.c'/>
+      <ref filename='reader2.c'/>
     </symbol>
     <symbol name='xmlTextReaderIsValid'>
       <ref filename='reader2.c'/>
     </symbol>
     <symbol name='xmlTextReaderNodeType'>
-      <ref filename='reader2.c'/>
       <ref filename='reader1.c'/>
+      <ref filename='reader2.c'/>
     </symbol>
     <symbol name='xmlTextReaderPreservePattern'>
       <ref filename='reader3.c'/>
     </symbol>
     <symbol name='xmlTextReaderPtr'>
-      <ref filename='reader2.c'/>
       <ref filename='reader1.c'/>
+      <ref filename='reader2.c'/>
       <ref filename='reader3.c'/>
       <ref filename='reader4.c'/>
     </symbol>
     <symbol name='xmlTextReaderRead'>
-      <ref filename='reader2.c'/>
       <ref filename='reader1.c'/>
+      <ref filename='reader2.c'/>
       <ref filename='reader3.c'/>
       <ref filename='reader4.c'/>
     </symbol>
@@ -725,22 +725,22 @@
       <example filename='io2.c'/>
     </section>
     <section name='Parsing'>
+      <example filename='parse1.c'/>
+      <example filename='parse2.c'/>
       <example filename='parse3.c'/>
       <example filename='parse4.c'/>
-      <example filename='parse2.c'/>
-      <example filename='parse1.c'/>
     </section>
     <section name='Tree'>
-      <example filename='tree2.c'/>
       <example filename='tree1.c'/>
+      <example filename='tree2.c'/>
     </section>
     <section name='XPath'>
       <example filename='xpath1.c'/>
       <example filename='xpath2.c'/>
     </section>
     <section name='xmlReader'>
-      <example filename='reader2.c'/>
       <example filename='reader1.c'/>
+      <example filename='reader2.c'/>
       <example filename='reader3.c'/>
       <example filename='reader4.c'/>
     </section>
diff --git a/doc/examples/index.py b/doc/examples/index.py
index 7e0efaa..ac44ec5 100755
--- a/doc/examples/index.py
+++ b/doc/examples/index.py
@@ -235,7 +235,7 @@
 rebuild: examples.xml index.html
 .PHONY: rebuild
 
-examples.xml: index.py $(noinst_PROGRAMS:=.c)
+examples.xml: index.py $(check_PROGRAMS:=.c)
 	cd $(srcdir) && $(PYTHON) index.py
 	$(MAKE) Makefile
 
@@ -259,20 +259,21 @@
     for extra in extras:
         EXTRA_DIST = EXTRA_DIST + " \\\n\t" + extra
     Makefile = Makefile + "EXTRA_DIST =%s\n\n" % (EXTRA_DIST)
-    noinst_PROGRAMS=""
+    check_PROGRAMS=""
     for example in examples:
-        noinst_PROGRAMS = noinst_PROGRAMS + " \\\n\t" + example
-    Makefile = Makefile + "noinst_PROGRAMS =%s\n\n" % (noinst_PROGRAMS)
+        check_PROGRAMS = check_PROGRAMS + " \\\n\t" + example
+    Makefile = Makefile + "check_PROGRAMS =%s\n\n" % (check_PROGRAMS)
     for example in examples:
         Makefile = Makefile + "%s_SOURCES = %s.c\n\n" % (example, example)
     Makefile = Makefile + "valgrind: \n\t$(MAKE) CHECKER='valgrind' tests\n\n"
-    Makefile = Makefile + "tests: $(noinst_PROGRAMS)\n"
-    Makefile = Makefile + "\ttest -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .\n"
+    Makefile = Makefile + "tests: $(check_PROGRAMS)\n"
+    Makefile = Makefile + "\t@test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .\n"
     Makefile = Makefile + "\t@(echo '## examples regression tests')\n"
     Makefile = Makefile + "\t@(echo > .memdump)\n"
     for test in tests:
-        Makefile = Makefile + "\t$(CHECKER) %s\n" % (test)
+        Makefile = Makefile + "\t@$(CHECKER) %s\n" % (test)
         Makefile = Makefile + '\t@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0\n'
+    Makefile = Makefile + "\t@rm *.tmp\n"
     try:
 	old = open("Makefile.am", "r").read()
 	if old != Makefile:
@@ -302,7 +303,7 @@
     output = open("examples.xml", "w")
     output.write("<examples>\n")
 
-    for file in glob.glob('*.c'):
+    for file in sorted(glob.glob('*.c')):
 	parse(file, output)
 	examples.append(file[:-2])
 
diff --git a/doc/examples/io1.res b/doc/examples/io1.res
index adf65c7..4a4c036 100644
--- a/doc/examples/io1.res
+++ b/doc/examples/io1.res
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
 <document xmlns:xi="http://www.w3.org/2003/XInclude">
   <p>List of people:</p>
-  <list xml:base="sql://select_name_from_people"><people>a</people><people>b</people></list>
+  <list><people>a</people><people>b</people></list>
 </document>
diff --git a/doc/examples/testWriter.c b/doc/examples/testWriter.c
index f662f76..82e8d3a 100644
--- a/doc/examples/testWriter.c
+++ b/doc/examples/testWriter.c
@@ -102,7 +102,7 @@
      * Please observe, that the input to the xmlTextWriter functions
      * HAS to be in UTF-8, even if the output XML is encoded
      * in iso-8859-1 */
-    tmp = ConvertInput("This is a comment with special chars: <äöü>",
+    tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
                        MY_ENCODING);
     rc = xmlTextWriterWriteComment(writer, tmp);
     if (rc < 0) {
@@ -139,7 +139,7 @@
     }
 
     /* Write a comment as child of ORDER */
-    tmp = ConvertInput("<äöü>", MY_ENCODING);
+    tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
     rc = xmlTextWriterWriteFormatComment(writer,
 		     "This is another comment with special chars: %s",
 		     tmp);
@@ -177,7 +177,7 @@
     }
 
     /* Write an element named "NAME_1" as child of HEADER. */
-    tmp = ConvertInput("Müller", MY_ENCODING);
+    tmp = ConvertInput("M\xFCller", MY_ENCODING);
     rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
     if (rc < 0) {
         printf
@@ -187,7 +187,7 @@
     if (tmp != NULL) xmlFree(tmp);
 
     /* Write an element named "NAME_2" as child of HEADER. */
-    tmp = ConvertInput("Jörg", MY_ENCODING);
+    tmp = ConvertInput("J\xF6rg", MY_ENCODING);
     rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
     if (rc < 0) {
         printf
@@ -381,7 +381,7 @@
      * Please observe, that the input to the xmlTextWriter functions
      * HAS to be in UTF-8, even if the output XML is encoded
      * in iso-8859-1 */
-    tmp = ConvertInput("This is a comment with special chars: <äöü>",
+    tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
                        MY_ENCODING);
     rc = xmlTextWriterWriteComment(writer, tmp);
     if (rc < 0) {
@@ -418,7 +418,7 @@
     }
 
     /* Write a comment as child of ORDER */
-    tmp = ConvertInput("<äöü>", MY_ENCODING);
+    tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
     rc = xmlTextWriterWriteFormatComment(writer,
 		     "This is another comment with special chars: %s",
                                          tmp);
@@ -456,7 +456,7 @@
     }
 
     /* Write an element named "NAME_1" as child of HEADER. */
-    tmp = ConvertInput("Müller", MY_ENCODING);
+    tmp = ConvertInput("M\xFCller", MY_ENCODING);
     rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
     if (rc < 0) {
         printf
@@ -466,7 +466,7 @@
     if (tmp != NULL) xmlFree(tmp);
 
     /* Write an element named "NAME_2" as child of HEADER. */
-    tmp = ConvertInput("Jörg", MY_ENCODING);
+    tmp = ConvertInput("J\xF6rg", MY_ENCODING);
     rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
 
     if (rc < 0) {
@@ -656,7 +656,7 @@
      * Please observe, that the input to the xmlTextWriter functions
      * HAS to be in UTF-8, even if the output XML is encoded
      * in iso-8859-1 */
-    tmp = ConvertInput("This is a comment with special chars: <äöü>",
+    tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
                        MY_ENCODING);
     rc = xmlTextWriterWriteComment(writer, tmp);
     if (rc < 0) {
@@ -689,7 +689,7 @@
     }
 
     /* Write a comment as child of ORDER */
-    tmp = ConvertInput("<äöü>", MY_ENCODING);
+    tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
     rc = xmlTextWriterWriteFormatComment(writer,
 		 "This is another comment with special chars: %s",
 		                         tmp);
@@ -726,7 +726,7 @@
     }
 
     /* Write an element named "NAME_1" as child of HEADER. */
-    tmp = ConvertInput("Müller", MY_ENCODING);
+    tmp = ConvertInput("M\xFCller", MY_ENCODING);
     rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
     if (rc < 0) {
         printf("testXmlwriterDoc: Error at xmlTextWriterWriteElement\n");
@@ -735,7 +735,7 @@
     if (tmp != NULL) xmlFree(tmp);
 
     /* Write an element named "NAME_2" as child of HEADER. */
-    tmp = ConvertInput("Jörg", MY_ENCODING);
+    tmp = ConvertInput("J\xF6rg", MY_ENCODING);
     rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
     if (rc < 0) {
         printf("testXmlwriterDoc: Error at xmlTextWriterWriteElement\n");
@@ -920,7 +920,7 @@
      * Please observe, that the input to the xmlTextWriter functions
      * HAS to be in UTF-8, even if the output XML is encoded
      * in iso-8859-1 */
-    tmp = ConvertInput("This is a comment with special chars: <äöü>",
+    tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
                        MY_ENCODING);
     rc = xmlTextWriterWriteComment(writer, tmp);
     if (rc < 0) {
@@ -955,7 +955,7 @@
     }
 
     /* Write a comment as child of ORDER */
-    tmp = ConvertInput("<äöü>", MY_ENCODING);
+    tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
     rc = xmlTextWriterWriteFormatComment(writer,
 			 "This is another comment with special chars: %s",
 					  tmp);
@@ -992,7 +992,7 @@
     }
 
     /* Write an element named "NAME_1" as child of HEADER. */
-    tmp = ConvertInput("Müller", MY_ENCODING);
+    tmp = ConvertInput("M\xFCller", MY_ENCODING);
     rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
     if (rc < 0) {
         printf("testXmlwriterTree: Error at xmlTextWriterWriteElement\n");
@@ -1001,7 +1001,7 @@
     if (tmp != NULL) xmlFree(tmp);
 
     /* Write an element named "NAME_2" as child of HEADER. */
-    tmp = ConvertInput("Jörg", MY_ENCODING);
+    tmp = ConvertInput("J\xF6rg", MY_ENCODING);
     rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
     if (rc < 0) {
         printf("testXmlwriterTree: Error at xmlTextWriterWriteElement\n");
diff --git a/doc/examples/tree2.c b/doc/examples/tree2.c
index 1cd1abe..6548e29 100644
--- a/doc/examples/tree2.c
+++ b/doc/examples/tree2.c
@@ -27,7 +27,6 @@
 {
     xmlDocPtr doc = NULL;       /* document pointer */
     xmlNodePtr root_node = NULL, node = NULL, node1 = NULL;/* node pointers */
-    xmlDtdPtr dtd = NULL;       /* DTD pointer */
     char buff[256];
     int i, j;
 
@@ -43,7 +42,7 @@
     /*
      * Creates a DTD declaration. Isn't mandatory. 
      */
-    dtd = xmlCreateIntSubset(doc, BAD_CAST "root", NULL, BAD_CAST "tree2.dtd");
+    xmlCreateIntSubset(doc, BAD_CAST "root", NULL, BAD_CAST "tree2.dtd");
 
     /* 
      * xmlNewChild() creates a new node, which is "attached" as child node
diff --git a/doc/html/book1.html b/doc/html/book1.html
index 1a58210..42d71a6 100644
--- a/doc/html/book1.html
+++ b/doc/html/book1.html
@@ -10,4 +10,4 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionnary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+    </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/index.html b/doc/html/index.html
index 1a58210..42d71a6 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -10,4 +10,4 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionnary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+    </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-HTMLparser.html b/doc/html/libxml-HTMLparser.html
index f5f77af..7d9d299 100644
--- a/doc/html/libxml-HTMLparser.html
+++ b/doc/html/libxml-HTMLparser.html
@@ -50,7 +50,7 @@
 <pre class="programlisting"><a href="libxml-HTMLparser.html#htmlStatus">htmlStatus</a>	<a href="#htmlNodeStatus">htmlNodeStatus</a>		(const <a href="libxml-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> node, <br />					 int legacy)</pre>
 <pre class="programlisting">int	<a href="#htmlParseCharRef">htmlParseCharRef</a>		(<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)</pre>
 <pre class="programlisting">int	<a href="#htmlParseChunk">htmlParseChunk</a>			(<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br />					 const char * chunk, <br />					 int size, <br />					 int terminate)</pre>
-<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlParseDoc">htmlParseDoc</a>		(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const char * encoding)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlParseDoc">htmlParseDoc</a>		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const char * encoding)</pre>
 <pre class="programlisting">int	<a href="#htmlParseDocument">htmlParseDocument</a>		(<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)</pre>
 <pre class="programlisting">void	<a href="#htmlParseElement">htmlParseElement</a>		(<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)</pre>
 <pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> *	<a href="#htmlParseEntityRef">htmlParseEntityRef</a>	(<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** str)</pre>
@@ -60,7 +60,7 @@
 <pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlReadFile">htmlReadFile</a>		(const char * filename, <br />					 const char * encoding, <br />					 int options)</pre>
 <pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlReadIO">htmlReadIO</a>		(<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br />					 <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br />					 void * ioctx, <br />					 const char * URL, <br />					 const char * encoding, <br />					 int options)</pre>
 <pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlReadMemory">htmlReadMemory</a>		(const char * buffer, <br />					 int size, <br />					 const char * URL, <br />					 const char * encoding, <br />					 int options)</pre>
-<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlSAXParseDoc">htmlSAXParseDoc</a>		(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const char * encoding, <br />					 <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br />					 void * userData)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlSAXParseDoc">htmlSAXParseDoc</a>		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const char * encoding, <br />					 <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br />					 void * userData)</pre>
 <pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	<a href="#htmlSAXParseFile">htmlSAXParseFile</a>	(const char * filename, <br />					 const char * encoding, <br />					 <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br />					 void * userData)</pre>
 <pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> *	<a href="#htmlTagLookup">htmlTagLookup</a>	(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * tag)</pre>
 <h2>Description</h2>
@@ -155,7 +155,7 @@
 </pre><p>parse Reference declarations [66] CharRef ::= '&amp;#' [0-9]+ ';' | '&amp;#x' [0-9a-fA-F]+ ';'</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value parsed (as an int)</td></tr></tbody></table></div><h3><a name="htmlParseChunk" id="htmlParseChunk"></a>Function: htmlParseChunk</h3><pre class="programlisting">int	htmlParseChunk			(<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br />					 const char * chunk, <br />					 int size, <br />					 int terminate)<br />
 </pre><p>Parse a Chunk of memory</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div><h3><a name="htmlParseDoc" id="htmlParseDoc"></a>Function: htmlParseDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	htmlParseDoc		(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const char * encoding)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div><h3><a name="htmlParseDoc" id="htmlParseDoc"></a>Function: htmlParseDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	htmlParseDoc		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const char * encoding)<br />
 </pre><p>parse an HTML in-memory document and build a tree.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlParseDocument" id="htmlParseDocument"></a>Function: htmlParseDocument</h3><pre class="programlisting">int	htmlParseDocument		(<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br />
 </pre><p>parse an HTML document (and build a tree if using the standard SAX interface).</p>
@@ -175,7 +175,7 @@
 </pre><p>parse an HTML document from I/O functions and source and build a tree.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlReadMemory" id="htmlReadMemory"></a>Function: htmlReadMemory</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	htmlReadMemory		(const char * buffer, <br />					 int size, <br />					 const char * URL, <br />					 const char * encoding, <br />					 int options)<br />
 </pre><p>parse an XML in-memory document and build a tree.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlSAXParseDoc" id="htmlSAXParseDoc"></a>Function: htmlSAXParseDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	htmlSAXParseDoc		(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const char * encoding, <br />					 <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br />					 void * userData)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlSAXParseDoc" id="htmlSAXParseDoc"></a>Function: htmlSAXParseDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	htmlSAXParseDoc		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const char * encoding, <br />					 <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br />					 void * userData)<br />
 </pre><p>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree unless SAX is NULL or the document is not well formed.</td></tr></tbody></table></div><h3><a name="htmlSAXParseFile" id="htmlSAXParseFile"></a>Function: htmlSAXParseFile</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a>	htmlSAXParseFile	(const char * filename, <br />					 const char * encoding, <br />					 <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br />					 void * userData)<br />
 </pre><p>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
diff --git a/doc/html/libxml-dict.html b/doc/html/libxml-dict.html
index bdd21f4..0854d29 100644
--- a/doc/html/libxml-dict.html
+++ b/doc/html/libxml-dict.html
@@ -33,26 +33,26 @@
 </pre><p>Free the dictionary mutex. Do not call unless sure the library is not in use anymore !</p>
 <h3><a name="xmlDictCreate" id="xmlDictCreate"></a>Function: xmlDictCreate</h3><pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a>	xmlDictCreate		(void)<br />
 </pre><p>Create a new dictionary</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlDictCreateSub" id="xmlDictCreateSub"></a>Function: xmlDictCreateSub</h3><pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a>	xmlDictCreateSub	(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> sub)<br />
-</pre><p>Create a new dictionary, inheriting strings from the read-only dictionnary @sub. On lookup, strings are first searched in the new dictionnary, then in @sub, and if not found are created in the new dictionnary.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlDictExists" id="xmlDictExists"></a>Function: xmlDictExists</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlDictExists		(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 int len)<br />
-</pre><p>Check if the @name exists in the dictionnary @dict.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div><h3><a name="xmlDictFree" id="xmlDictFree"></a>Function: xmlDictFree</h3><pre class="programlisting">void	xmlDictFree			(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlDictCreateSub" id="xmlDictCreateSub"></a>Function: xmlDictCreateSub</h3><pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a>	xmlDictCreateSub	(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> sub)<br />
+</pre><p>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlDictExists" id="xmlDictExists"></a>Function: xmlDictExists</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlDictExists		(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 int len)<br />
+</pre><p>Check if the @name exists in the dictionary @dict.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div><h3><a name="xmlDictFree" id="xmlDictFree"></a>Function: xmlDictFree</h3><pre class="programlisting">void	xmlDictFree			(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
 </pre><p>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr></tbody></table></div><h3><a name="xmlDictGetUsage" id="xmlDictGetUsage"></a>Function: xmlDictGetUsage</h3><pre class="programlisting">size_t	xmlDictGetUsage			(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr></tbody></table></div><h3><a name="xmlDictGetUsage" id="xmlDictGetUsage"></a>Function: xmlDictGetUsage</h3><pre class="programlisting">size_t	xmlDictGetUsage			(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
 </pre><p>Get how much memory is used by a dictionary for strings Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div><h3><a name="xmlDictLookup" id="xmlDictLookup"></a>Function: xmlDictLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlDictLookup		(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 int len)<br />
-</pre><p>Add the @name to the dictionnary @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictOwns" id="xmlDictOwns"></a>Function: xmlDictOwns</h3><pre class="programlisting">int	xmlDictOwns			(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div><h3><a name="xmlDictLookup" id="xmlDictLookup"></a>Function: xmlDictLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlDictLookup		(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 int len)<br />
+</pre><p>Add the @name to the dictionary @dict if not present.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictOwns" id="xmlDictOwns"></a>Function: xmlDictOwns</h3><pre class="programlisting">int	xmlDictOwns			(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
 </pre><p>check if a string is owned by the disctionary</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictQLookup" id="xmlDictQLookup"></a>Function: xmlDictQLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlDictQLookup		(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictQLookup" id="xmlDictQLookup"></a>Function: xmlDictQLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlDictQLookup		(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
 </pre><p>Add the QName @prefix:@name to the hash @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictReference" id="xmlDictReference"></a>Function: xmlDictReference</h3><pre class="programlisting">int	xmlDictReference		(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictReference" id="xmlDictReference"></a>Function: xmlDictReference</h3><pre class="programlisting">int	xmlDictReference		(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
 </pre><p>Increment the <a href="libxml-SAX.html#reference">reference</a> counter of a dictionary</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictSetLimit" id="xmlDictSetLimit"></a>Function: xmlDictSetLimit</h3><pre class="programlisting">size_t	xmlDictSetLimit			(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br />					 size_t limit)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictSetLimit" id="xmlDictSetLimit"></a>Function: xmlDictSetLimit</h3><pre class="programlisting">size_t	xmlDictSetLimit			(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br />					 size_t limit)<br />
 </pre><p>Set a size limit for the dictionary Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div><h3><a name="xmlDictSize" id="xmlDictSize"></a>Function: xmlDictSize</h3><pre class="programlisting">int	xmlDictSize			(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div><h3><a name="xmlDictSize" id="xmlDictSize"></a>Function: xmlDictSize</h3><pre class="programlisting">int	xmlDictSize			(<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
 </pre><p>Query the number of elements installed in the hash @dict.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionnary or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlInitializeDict" id="xmlInitializeDict"></a>Function: xmlInitializeDict</h3><pre class="programlisting">int	xmlInitializeDict		(void)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionary or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlInitializeDict" id="xmlInitializeDict"></a>Function: xmlInitializeDict</h3><pre class="programlisting">int	xmlInitializeDict		(void)<br />
 </pre><p>Do the dictionary mutex initialization. this function is deprecated</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if initialization was already done, and 1 if that call led to the initialization</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-encoding.html b/doc/html/libxml-encoding.html
index 70f56f8..0ebfb14 100644
--- a/doc/html/libxml-encoding.html
+++ b/doc/html/libxml-encoding.html
@@ -10,7 +10,7 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Module encoding from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module encoding from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-dict.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-dict.html">dict</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-entities.html">entities</a></th><td><a accesskey="n" href="libxml-entities.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the encoding conversion functions needed for XML basic encoding and iconv() support.  Related specs are rfc2044        (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646]    UTF-8 and UTF-16 in Annexes [ISO-8859-1]   ISO Latin-1 characters codes. [UNICODE]      The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992.  UTF-8 is described in Unicode Technical Report #4. [US-ASCII]     Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#uconv_t">uconv_t</a><br />struct _uconv_t
+    </style><title>Module encoding from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module encoding from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-dict.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-dict.html">dict</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-entities.html">entities</a></th><td><a accesskey="n" href="libxml-entities.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the encoding conversion functions needed for XML basic encoding and iconv() support.  Related specs are rfc2044        (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646]    UTF-8 and UTF-16 in Annexes [ISO-8859-1]   ISO Latin-1 characters codes. [UNICODE]      The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992.  UTF-8 is described in Unicode Technical Report #4. [US-ASCII]     Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a></pre><pre class="programlisting">Structure <a href="#uconv_t">uconv_t</a><br />struct _uconv_t
 </pre><pre class="programlisting">Enum <a href="#xmlCharEncoding">xmlCharEncoding</a>
 </pre><pre class="programlisting">Structure <a href="#xmlCharEncodingHandler">xmlCharEncodingHandler</a><br />struct _xmlCharEncodingHandler
 </pre><pre class="programlisting">Typedef <a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * <a name="xmlCharEncodingHandlerPtr" id="xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>
@@ -40,9 +40,13 @@
 <pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a>	<a href="#xmlParseCharEncoding">xmlParseCharEncoding</a>	(const char * name)</pre>
 <pre class="programlisting">void	<a href="#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a>	(<a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)</pre>
 <h2>Description</h2>
+<h3><a name="ICU_PIVOT_BUF_SIZE" id="ICU_PIVOT_BUF_SIZE"></a>Macro: ICU_PIVOT_BUF_SIZE</h3><pre>#define ICU_PIVOT_BUF_SIZE</pre><p></p>
 <h3><a name="uconv_t" id="uconv_t">Structure uconv_t</a></h3><pre class="programlisting">Structure uconv_t<br />struct _uconv_t {
     UConverter *	uconv	: for conversion between an encoding and
     UConverter *	utf8	: for conversion between UTF-8 and UTF-16
+    UCharpivot_buf[ICU_PIVOT_BUF_SIZE]	pivot_buf
+    UChar *	pivot_source
+    UChar *	pivot_target
 }</pre><h3>Enum <a name="xmlCharEncoding" id="xmlCharEncoding">xmlCharEncoding</a></h3><pre class="programlisting">Enum xmlCharEncoding {
     <a name="XML_CHAR_ENCODING_ERROR" id="XML_CHAR_ENCODING_ERROR">XML_CHAR_ENCODING_ERROR</a> = -1 : No char encoding detected
     <a name="XML_CHAR_ENCODING_NONE" id="XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a> = 0 : No char encoding detected
diff --git a/doc/html/libxml-hash.html b/doc/html/libxml-hash.html
index 922e3f1..021adb8 100644
--- a/doc/html/libxml-hash.html
+++ b/doc/html/libxml-hash.html
@@ -17,14 +17,15 @@
 <pre class="programlisting">int	<a href="#xmlHashAddEntry2">xmlHashAddEntry2</a>		(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br />					 void * userdata)</pre>
 <pre class="programlisting">int	<a href="#xmlHashAddEntry3">xmlHashAddEntry3</a>		(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br />					 void * userdata)</pre>
 <pre class="programlisting">Function type: <a href="#xmlHashCopier">xmlHashCopier</a>
-void *	<a href="#xmlHashCopier">xmlHashCopier</a>			(void * payload, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+void *	<a href="#xmlHashCopier">xmlHashCopier</a>			(void * payload, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
 </pre>
 <pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a>	<a href="#xmlHashCopy">xmlHashCopy</a>		(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 <a href="libxml-hash.html#xmlHashCopier">xmlHashCopier</a> f)</pre>
 <pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a>	<a href="#xmlHashCreate">xmlHashCreate</a>		(int size)</pre>
 <pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a>	<a href="#xmlHashCreateDict">xmlHashCreateDict</a>	(int size, <br />					 <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)</pre>
 <pre class="programlisting">Function type: <a href="#xmlHashDeallocator">xmlHashDeallocator</a>
-void	<a href="#xmlHashDeallocator">xmlHashDeallocator</a>		(void * payload, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+void	<a href="#xmlHashDeallocator">xmlHashDeallocator</a>		(void * payload, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
 </pre>
+<pre class="programlisting">void	<a href="#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a>	(void * entry, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
 <pre class="programlisting">void	<a href="#xmlHashFree">xmlHashFree</a>			(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)</pre>
 <pre class="programlisting">void *	<a href="#xmlHashLookup">xmlHashLookup</a>			(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
 <pre class="programlisting">void *	<a href="#xmlHashLookup2">xmlHashLookup2</a>			(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2)</pre>
@@ -40,7 +41,7 @@
 <pre class="programlisting">void	<a href="#xmlHashScanFull">xmlHashScanFull</a>			(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br />					 void * data)</pre>
 <pre class="programlisting">void	<a href="#xmlHashScanFull3">xmlHashScanFull3</a>		(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br />					 <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br />					 void * data)</pre>
 <pre class="programlisting">Function type: <a href="#xmlHashScanner">xmlHashScanner</a>
-void	<a href="#xmlHashScanner">xmlHashScanner</a>			(void * payload, <br />					 void * data, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+void	<a href="#xmlHashScanner">xmlHashScanner</a>			(void * payload, <br />					 void * data, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
 </pre>
 <pre class="programlisting">Function type: <a href="#xmlHashScannerFull">xmlHashScannerFull</a>
 void	<a href="#xmlHashScannerFull">xmlHashScannerFull</a>		(void * payload, <br />					 void * data, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3)
@@ -60,18 +61,20 @@
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashAddEntry3" id="xmlHashAddEntry3"></a>Function: xmlHashAddEntry3</h3><pre class="programlisting">int	xmlHashAddEntry3		(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br />					 void * userdata)<br />
 </pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Duplicate entries generate errors.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashCopier" id="xmlHashCopier"></a>Function type: xmlHashCopier</h3><pre class="programlisting">Function type: xmlHashCopier
-void *	xmlHashCopier			(void * payload, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+void *	xmlHashCopier			(void * payload, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
 </pre><p>Callback to copy data from a hash.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the data or NULL in case of error.</td></tr></tbody></table></div><br />
 <h3><a name="xmlHashCopy" id="xmlHashCopy"></a>Function: xmlHashCopy</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a>	xmlHashCopy		(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 <a href="libxml-hash.html#xmlHashCopier">xmlHashCopier</a> f)<br />
 </pre><p>Scan the hash @table and applied @f to each value.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the copier function for items in the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new table or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashCreate" id="xmlHashCreate"></a>Function: xmlHashCreate</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a>	xmlHashCreate		(int size)<br />
 </pre><p>Create a new xmlHashTablePtr.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlHashCreateDict" id="xmlHashCreateDict"></a>Function: xmlHashCreateDict</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a>	xmlHashCreateDict	(int size, <br />					 <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlHashCreateDict" id="xmlHashCreateDict"></a>Function: xmlHashCreateDict</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a>	xmlHashCreateDict	(int size, <br />					 <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
 </pre><p>Create a new <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> which will use @dict as the internal dictionary</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlHashDeallocator" id="xmlHashDeallocator"></a>Function type: xmlHashDeallocator</h3><pre class="programlisting">Function type: xmlHashDeallocator
-void	xmlHashDeallocator		(void * payload, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlHashDeallocator" id="xmlHashDeallocator"></a>Function type: xmlHashDeallocator</h3><pre class="programlisting">Function type: xmlHashDeallocator
+void	xmlHashDeallocator		(void * payload, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
 </pre><p>Callback to free data from a hash.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div><br />
-<h3><a name="xmlHashFree" id="xmlHashFree"></a>Function: xmlHashFree</h3><pre class="programlisting">void	xmlHashFree			(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br />
+<h3><a name="xmlHashDefaultDeallocator" id="xmlHashDefaultDeallocator"></a>Function: xmlHashDefaultDeallocator</h3><pre class="programlisting">void	xmlHashDefaultDeallocator	(void * entry, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Free a hash table entry with xmlFree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>entry</tt></i>:</span></td><td>the hash table entry</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entry's name</td></tr></tbody></table></div><h3><a name="xmlHashFree" id="xmlHashFree"></a>Function: xmlHashFree</h3><pre class="programlisting">void	xmlHashFree			(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br />
 </pre><p>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for items in the hash</td></tr></tbody></table></div><h3><a name="xmlHashLookup" id="xmlHashLookup"></a>Function: xmlHashLookup</h3><pre class="programlisting">void *	xmlHashLookup			(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
 </pre><p>Find the userdata specified by the @name.</p>
@@ -100,7 +103,7 @@
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div><h3><a name="xmlHashScanFull3" id="xmlHashScanFull3"></a>Function: xmlHashScanFull3</h3><pre class="programlisting">void	xmlHashScanFull3		(<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br />					 <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br />					 void * data)<br />
 </pre><p>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div><h3><a name="xmlHashScanner" id="xmlHashScanner"></a>Function type: xmlHashScanner</h3><pre class="programlisting">Function type: xmlHashScanner
-void	xmlHashScanner			(void * payload, <br />					 void * data, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+void	xmlHashScanner			(void * payload, <br />					 void * data, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
 </pre><p>Callback when scanning data in a hash with the simple scanner.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra scannner data</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div><br />
 <h3><a name="xmlHashScannerFull" id="xmlHashScannerFull"></a>Function type: xmlHashScannerFull</h3><pre class="programlisting">Function type: xmlHashScannerFull
 void	xmlHashScannerFull		(void * payload, <br />					 void * data, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3)
diff --git a/doc/html/libxml-lib.html b/doc/html/libxml-lib.html
index 1a58210..42d71a6 100644
--- a/doc/html/libxml-lib.html
+++ b/doc/html/libxml-lib.html
@@ -10,4 +10,4 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionnary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+    </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-list.html b/doc/html/libxml-list.html
index 33e60d1..1738afc 100644
--- a/doc/html/libxml-list.html
+++ b/doc/html/libxml-list.html
@@ -43,13 +43,13 @@
 <pre class="programlisting">int	<a href="#xmlListRemoveLast">xmlListRemoveLast</a>		(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 void * data)</pre>
 <pre class="programlisting">void	<a href="#xmlListReverse">xmlListReverse</a>			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
 <pre class="programlisting">void *	<a href="#xmlListReverseSearch">xmlListReverseSearch</a>		(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 void * data)</pre>
-<pre class="programlisting">void	<a href="#xmlListReverseWalk">xmlListReverseWalk</a>		(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br />					 const void * user)</pre>
+<pre class="programlisting">void	<a href="#xmlListReverseWalk">xmlListReverseWalk</a>		(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br />					 void * user)</pre>
 <pre class="programlisting">void *	<a href="#xmlListSearch">xmlListSearch</a>			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 void * data)</pre>
 <pre class="programlisting">int	<a href="#xmlListSize">xmlListSize</a>			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
 <pre class="programlisting">void	<a href="#xmlListSort">xmlListSort</a>			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
-<pre class="programlisting">void	<a href="#xmlListWalk">xmlListWalk</a>			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br />					 const void * user)</pre>
+<pre class="programlisting">void	<a href="#xmlListWalk">xmlListWalk</a>			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br />					 void * user)</pre>
 <pre class="programlisting">Function type: <a href="#xmlListWalker">xmlListWalker</a>
-int	<a href="#xmlListWalker">xmlListWalker</a>			(const void * data, <br />					 const void * user)
+int	<a href="#xmlListWalker">xmlListWalker</a>			(const void * data, <br />					 void * user)
 </pre>
 <h2>Description</h2>
 <h3><a name="xmlLink" id="xmlLink">Structure xmlLink</a></h3><pre class="programlisting">Structure xmlLink<br />struct _xmlLink {
@@ -98,13 +98,13 @@
 </pre><p>Remove the all instance associated to data in the list</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of deallocation, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListRemoveFirst" id="xmlListRemoveFirst"></a>Function: xmlListRemoveFirst</h3><pre class="programlisting">int	xmlListRemoveFirst		(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 void * data)<br />
 </pre><p>Remove the first instance associated to data in the list</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occured, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListRemoveLast" id="xmlListRemoveLast"></a>Function: xmlListRemoveLast</h3><pre class="programlisting">int	xmlListRemoveLast		(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 void * data)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListRemoveLast" id="xmlListRemoveLast"></a>Function: xmlListRemoveLast</h3><pre class="programlisting">int	xmlListRemoveLast		(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 void * data)<br />
 </pre><p>Remove the last instance associated to data in the list</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occured, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListReverse" id="xmlListReverse"></a>Function: xmlListReverse</h3><pre class="programlisting">void	xmlListReverse			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListReverse" id="xmlListReverse"></a>Function: xmlListReverse</h3><pre class="programlisting">void	xmlListReverse			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
 </pre><p>Reverse the order of the elements in the list</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListReverseSearch" id="xmlListReverseSearch"></a>Function: xmlListReverseSearch</h3><pre class="programlisting">void *	xmlListReverseSearch		(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 void * data)<br />
 </pre><p>Search the list in reverse order for an existing value of @data</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlListReverseWalk" id="xmlListReverseWalk"></a>Function: xmlListReverseWalk</h3><pre class="programlisting">void	xmlListReverseWalk		(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br />					 const void * user)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlListReverseWalk" id="xmlListReverseWalk"></a>Function: xmlListReverseWalk</h3><pre class="programlisting">void	xmlListReverseWalk		(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br />					 void * user)<br />
 </pre><p>Walk all the element of the list in reverse order and apply the walker function to it</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div><h3><a name="xmlListSearch" id="xmlListSearch"></a>Function: xmlListSearch</h3><pre class="programlisting">void *	xmlListSearch			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 void * data)<br />
 </pre><p>Search the list for an existing value of @data</p>
@@ -112,9 +112,9 @@
 </pre><p>Get the number of elements in the list</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the list or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlListSort" id="xmlListSort"></a>Function: xmlListSort</h3><pre class="programlisting">void	xmlListSort			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
 </pre><p>Sort all the elements in the list</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListWalk" id="xmlListWalk"></a>Function: xmlListWalk</h3><pre class="programlisting">void	xmlListWalk			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br />					 const void * user)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListWalk" id="xmlListWalk"></a>Function: xmlListWalk</h3><pre class="programlisting">void	xmlListWalk			(<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br />					 <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br />					 void * user)<br />
 </pre><p>Walk all the element of the first from first to last and apply the walker function to it</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div><h3><a name="xmlListWalker" id="xmlListWalker"></a>Function type: xmlListWalker</h3><pre class="programlisting">Function type: xmlListWalker
-int	xmlListWalker			(const void * data, <br />					 const void * user)
+int	xmlListWalker			(const void * data, <br />					 void * user)
 </pre><p>Callback function used when walking a list with xmlListWalk().</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data found in the list</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>extra user provided data to the walker</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 to stop walking the list, 1 otherwise.</td></tr></tbody></table></div><br />
 <p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-parser.html b/doc/html/libxml-parser.html
index 98123f7..4d890c6 100644
--- a/doc/html/libxml-parser.html
+++ b/doc/html/libxml-parser.html
@@ -279,7 +279,7 @@
     <a name="XML_PARSE_SAX1" id="XML_PARSE_SAX1">XML_PARSE_SAX1</a> = 512 : use the SAX1 interface internally
     <a name="XML_PARSE_XINCLUDE" id="XML_PARSE_XINCLUDE">XML_PARSE_XINCLUDE</a> = 1024 : Implement XInclude substitition
     <a name="XML_PARSE_NONET" id="XML_PARSE_NONET">XML_PARSE_NONET</a> = 2048 : Forbid network access
-    <a name="XML_PARSE_NODICT" id="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 : Do not reuse the context dictionnary
+    <a name="XML_PARSE_NODICT" id="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 : Do not reuse the context dictionary
     <a name="XML_PARSE_NSCLEAN" id="XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</a> = 8192 : remove redundant namespaces declarations
     <a name="XML_PARSE_NOCDATA" id="XML_PARSE_NOCDATA">XML_PARSE_NOCDATA</a> = 16384 : merge CDATA as text nodes
     <a name="XML_PARSE_NOXINCNODE" id="XML_PARSE_NOXINCNODE">XML_PARSE_NOXINCNODE</a> = 32768 : do not generate XINCLUDE START/END nodes
diff --git a/doc/html/libxml-schemasInternals.html b/doc/html/libxml-schemasInternals.html
index db4a5a1..954f0d2 100644
--- a/doc/html/libxml-schemasInternals.html
+++ b/doc/html/libxml-schemasInternals.html
@@ -10,7 +10,7 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Module schemasInternals from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module schemasInternals from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-relaxng.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-relaxng.html">relaxng</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-schematron.html">schematron</a></th><td><a accesskey="n" href="libxml-schematron.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not garanteed to be API or ABI stable ! </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_REDEFINED">XML_SCHEMAS_TYPE_REDEFINED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a></pre><pre class="programlisting">Structure <a href="#xmlSchemaAnnot">xmlSchemaAnnot</a><br />struct _xmlSchemaAnnot
+    </style><title>Module schemasInternals from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module schemasInternals from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-relaxng.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-relaxng.html">relaxng</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-schematron.html">schematron</a></th><td><a accesskey="n" href="libxml-schematron.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not guaranteed to be API or ABI stable ! </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_REDEFINED">XML_SCHEMAS_TYPE_REDEFINED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a></pre><pre class="programlisting">Structure <a href="#xmlSchemaAnnot">xmlSchemaAnnot</a><br />struct _xmlSchemaAnnot
 </pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaAnnot">xmlSchemaAnnot</a> * <a name="xmlSchemaAnnotPtr" id="xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a>
 </pre><pre class="programlisting">Structure <a href="#xmlSchemaAttribute">xmlSchemaAttribute</a><br />struct _xmlSchemaAttribute
 </pre><pre class="programlisting">Structure <a href="#xmlSchemaAttributeGroup">xmlSchemaAttributeGroup</a><br />struct _xmlSchemaAttributeGroup
diff --git a/doc/html/libxml-tree.html b/doc/html/libxml-tree.html
index e2081cc..09e7bdc 100644
--- a/doc/html/libxml-tree.html
+++ b/doc/html/libxml-tree.html
@@ -305,6 +305,7 @@
     <a name="XML_BUFFER_ALLOC_IMMUTABLE" id="XML_BUFFER_ALLOC_IMMUTABLE">XML_BUFFER_ALLOC_IMMUTABLE</a> = 3 : immutable buffer
     <a name="XML_BUFFER_ALLOC_IO" id="XML_BUFFER_ALLOC_IO">XML_BUFFER_ALLOC_IO</a> = 4 : special allocation scheme used for I/O
     <a name="XML_BUFFER_ALLOC_HYBRID" id="XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a> = 5 : exact up to a threshold, and doubleit thereafter
+    <a name="XML_BUFFER_ALLOC_BOUNDED" id="XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a> = 6 : limit the upper size of the buffer
 }
 </pre><h3><a name="xmlDOMWrapCtxt" id="xmlDOMWrapCtxt">Structure xmlDOMWrapCtxt</a></h3><pre class="programlisting">Structure xmlDOMWrapCtxt<br />struct _xmlDOMWrapCtxt {
     void *	_private	: * The type of this context, just in case
@@ -554,7 +555,7 @@
     void *	catalogs	: document's own catalog
     int	recovery	: run in recovery mode
     int	progressive	: is this a progressive parsing
-    <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a>	dict	: dictionnary for the parser
+    <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a>	dict	: dictionary for the parser
     const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * *	atts	: array for the attributes callbacks
     int	maxatts	: the size of the array
     int	docdict	: * pre-interned strings *
@@ -963,7 +964,7 @@
 </pre><p>update all nodes under the tree to point to the right document</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the top element</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div><h3><a name="xmlSplitQName2" id="xmlSplitQName2"></a>Function: xmlSplitQName2</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlSplitQName2		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** prefix)<br />
 </pre><p>parse an XML qualified name string [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not a QName, otherwise the local part, and prefix is updated to get the Prefix if any.</td></tr></tbody></table></div><h3><a name="xmlSplitQName3" id="xmlSplitQName3"></a>Function: xmlSplitQName3</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlSplitQName3		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 int * len)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if the name doesn't have a prefix. Otherwise, returns the local part, and prefix is updated to get the Prefix. Both the return value and the prefix must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlSplitQName3" id="xmlSplitQName3"></a>Function: xmlSplitQName3</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlSplitQName3		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 int * len)<br />
 </pre><p>parse an XML qualified name string,i</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>an int *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if it is not a Qualified Name, otherwise, update len with the length in byte of the prefix and return a pointer to the start of the name without the prefix</td></tr></tbody></table></div><h3><a name="xmlStringGetNodeList" id="xmlStringGetNodeList"></a>Function: xmlStringGetNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	xmlStringGetNodeList	(const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
 </pre><p>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</p>
diff --git a/doc/html/libxml-xmlerror.html b/doc/html/libxml-xmlerror.html
index 5c3a104..2550ac0 100644
--- a/doc/html/libxml-xmlerror.html
+++ b/doc/html/libxml-xmlerror.html
@@ -832,14 +832,14 @@
 </pre><p>Save the original error to the new place.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>a source error</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>a target error</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlCtxtGetLastError" id="xmlCtxtGetLastError"></a>Function: xmlCtxtGetLastError</h3><pre class="programlisting"><a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a>	xmlCtxtGetLastError	(void * ctx)<br />
 </pre><p>Get the last parsing error registered.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occured or a pointer to the error</td></tr></tbody></table></div><h3><a name="xmlCtxtResetLastError" id="xmlCtxtResetLastError"></a>Function: xmlCtxtResetLastError</h3><pre class="programlisting">void	xmlCtxtResetLastError		(void * ctx)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div><h3><a name="xmlCtxtResetLastError" id="xmlCtxtResetLastError"></a>Function: xmlCtxtResetLastError</h3><pre class="programlisting">void	xmlCtxtResetLastError		(void * ctx)<br />
 </pre><p>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlGenericErrorFunc" id="xmlGenericErrorFunc"></a>Function type: xmlGenericErrorFunc</h3><pre class="programlisting">Function type: xmlGenericErrorFunc
 void	xmlGenericErrorFunc		(void * ctx, <br />					 const char * msg, <br />					 ... ...)
 </pre><p>Signature of the function to use when there is an error and no parsing or validity context available .</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>a parsing context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>the extra arguments of the varags to format the message</td></tr></tbody></table></div><br />
 <h3><a name="xmlGetLastError" id="xmlGetLastError"></a>Function: xmlGetLastError</h3><pre class="programlisting"><a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a>	xmlGetLastError		(void)<br />
 </pre><p>Get the last global error registered. This is per thread if compiled with thread support.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occured or a pointer to the error</td></tr></tbody></table></div><h3><a name="xmlParserError" id="xmlParserError"></a>Function: xmlParserError</h3><pre class="programlisting">void	xmlParserError			(void * ctx, <br />					 const char * msg, <br />					 ... ...)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div><h3><a name="xmlParserError" id="xmlParserError"></a>Function: xmlParserError</h3><pre class="programlisting">void	xmlParserError			(void * ctx, <br />					 const char * msg, <br />					 ... ...)<br />
 </pre><p>Display and format an error messages, gives file, line, position and extra parameters.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div><h3><a name="xmlParserPrintFileContext" id="xmlParserPrintFileContext"></a>Function: xmlParserPrintFileContext</h3><pre class="programlisting">void	xmlParserPrintFileContext	(<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br />
 </pre><p>Displays current context within the input content for error tracking</p>
diff --git a/doc/html/libxml-xmlmemory.html b/doc/html/libxml-xmlmemory.html
index d653775..3406e09 100644
--- a/doc/html/libxml-xmlmemory.html
+++ b/doc/html/libxml-xmlmemory.html
@@ -65,7 +65,7 @@
 </pre><p>Initialize the memory layer.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div><h3><a name="xmlMallocAtomicLoc" id="xmlMallocAtomicLoc"></a>Function: xmlMallocAtomicLoc</h3><pre class="programlisting">void *	xmlMallocAtomicLoc		(size_t size, <br />					 const char * file, <br />					 int line)<br />
 </pre><p>a malloc() equivalent, with logging of the allocation info.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMallocFunc" id="xmlMallocFunc"></a>Function type: xmlMallocFunc</h3><pre class="programlisting">Function type: xmlMallocFunc
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an unsigned int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMallocFunc" id="xmlMallocFunc"></a>Function type: xmlMallocFunc</h3><pre class="programlisting">Function type: xmlMallocFunc
 void *	xmlMallocFunc			(size_t size)
 </pre><p>Signature for a malloc() implementation.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size requested in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the newly allocated block or NULL in case of error.</td></tr></tbody></table></div><br />
 <h3><a name="xmlMallocLoc" id="xmlMallocLoc"></a>Function: xmlMallocLoc</h3><pre class="programlisting">void *	xmlMallocLoc			(size_t size, <br />					 const char * file, <br />					 int line)<br />
diff --git a/doc/html/libxml-xmlreader.html b/doc/html/libxml-xmlreader.html
index f7e00fb..b9bd032 100644
--- a/doc/html/libxml-xmlreader.html
+++ b/doc/html/libxml-xmlreader.html
@@ -218,7 +218,7 @@
 </pre><p>The depth of the node in the tree.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the depth or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderErrorFunc" id="xmlTextReaderErrorFunc"></a>Function type: xmlTextReaderErrorFunc</h3><pre class="programlisting">Function type: xmlTextReaderErrorFunc
 void	xmlTextReaderErrorFunc		(void * arg, <br />					 const char * msg, <br />					 <a href="libxml-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a> severity, <br />					 <a href="libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)
-</pre><p>Signature of an error callback from a reader parser</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the user argument</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>severity</tt></i>:</span></td><td>the severity of the error</td></tr><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>a locator indicating where the error occured</td></tr></tbody></table></div><br />
+</pre><p>Signature of an error callback from a reader parser</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the user argument</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>severity</tt></i>:</span></td><td>the severity of the error</td></tr><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>a locator indicating where the error occurred</td></tr></tbody></table></div><br />
 <h3><a name="xmlTextReaderExpand" id="xmlTextReaderExpand"></a>Function: xmlTextReaderExpand</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	xmlTextReaderExpand	(<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
 </pre><p>Reads the contents of the current node and the full subtree. It then makes the subtree available until the next xmlTextReaderRead() call</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a node pointer valid until the next xmlTextReaderRead() call or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderGetAttribute" id="xmlTextReaderGetAttribute"></a>Function: xmlTextReaderGetAttribute</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlTextReaderGetAttribute	(<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
@@ -287,7 +287,7 @@
 </pre><p>This tells the XML Reader to preserve the current node. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderPreservePattern" id="xmlTextReaderPreservePattern"></a>Function: xmlTextReaderPreservePattern</h3><pre class="programlisting">int	xmlTextReaderPreservePattern	(<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)<br />
 </pre><p>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>an XPath subset pattern</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a positive number in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderQuoteChar" id="xmlTextReaderQuoteChar"></a>Function: xmlTextReaderQuoteChar</h3><pre class="programlisting">int	xmlTextReaderQuoteChar		(<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>an XPath subset pattern</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a non-negative number in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderQuoteChar" id="xmlTextReaderQuoteChar"></a>Function: xmlTextReaderQuoteChar</h3><pre class="programlisting">int	xmlTextReaderQuoteChar		(<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
 </pre><p>The quotation mark character used to enclose the value of an attribute.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>" or ' and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderRead" id="xmlTextReaderRead"></a>Function: xmlTextReaderRead</h3><pre class="programlisting">int	xmlTextReaderRead		(<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
 </pre><p>Moves the position of the current instance to the next node in the stream, exposing its properties.</p>
diff --git a/doc/html/libxml-xmlregexp.html b/doc/html/libxml-xmlregexp.html
index 8dda699..564f65e 100644
--- a/doc/html/libxml-xmlregexp.html
+++ b/doc/html/libxml-xmlregexp.html
@@ -101,7 +101,7 @@
 </pre><p>Get the atom associated to this name from that context</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the atom name</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the atom name length in byte (or -1);</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewCtxt" id="xmlExpNewCtxt"></a>Function: xmlExpNewCtxt</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a>	xmlExpNewCtxt		(int maxNodes, <br />					 <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
 </pre><p>Creates a new context for manipulating expressions</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionnary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewOr" id="xmlExpNewOr"></a>Function: xmlExpNewOr</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	xmlExpNewOr		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewOr" id="xmlExpNewOr"></a>Function: xmlExpNewOr</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	xmlExpNewOr		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
 </pre><p>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>left</tt></i>:</span></td><td>left expression</td></tr><tr><td><span class="term"><i><tt>right</tt></i>:</span></td><td>right expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewRange" id="xmlExpNewRange"></a>Function: xmlExpNewRange</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a>	xmlExpNewRange		(<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br />					 <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> subset, <br />					 int min, <br />					 int max)<br />
 </pre><p>Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).</p>
diff --git a/doc/html/libxml-xmlstring.html b/doc/html/libxml-xmlstring.html
index 4f12cc7..dc8248c 100644
--- a/doc/html/libxml-xmlstring.html
+++ b/doc/html/libxml-xmlstring.html
@@ -16,9 +16,9 @@
 <pre class="programlisting">int	<a href="#xmlCheckUTF8">xmlCheckUTF8</a>			(const unsigned char * utf)</pre>
 <pre class="programlisting">int	<a href="#xmlGetUTF8Char">xmlGetUTF8Char</a>			(const unsigned char * utf, <br />					 int * len)</pre>
 <pre class="programlisting">int	<a href="#xmlStrEqual">xmlStrEqual</a>			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)</pre>
-<pre class="programlisting">int	<a href="#xmlStrPrintf">xmlStrPrintf</a>			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br />					 ... ...)</pre>
+<pre class="programlisting">int	<a href="#xmlStrPrintf">xmlStrPrintf</a>			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const char * msg, <br />					 ... ...)</pre>
 <pre class="programlisting">int	<a href="#xmlStrQEqual">xmlStrQEqual</a>			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pref, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
-<pre class="programlisting">int	<a href="#xmlStrVPrintf">xmlStrVPrintf</a>			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br />					 va_list ap)</pre>
+<pre class="programlisting">int	<a href="#xmlStrVPrintf">xmlStrVPrintf</a>			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const char * msg, <br />					 va_list ap)</pre>
 <pre class="programlisting">int	<a href="#xmlStrcasecmp">xmlStrcasecmp</a>			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)</pre>
 <pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrcasestr">xmlStrcasestr</a>		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)</pre>
 <pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	<a href="#xmlStrcat">xmlStrcat</a>		(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add)</pre>
@@ -55,11 +55,11 @@
 </pre><p>Read the first UTF8 character from @utf</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>a pointer to the minimum number of bytes present in the sequence. This is used to assure the next character is completely contained within the sequence.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the char value or -1 in case of error, and sets *len to the actual number of bytes consumed (0 in case of error)</td></tr></tbody></table></div><h3><a name="xmlStrEqual" id="xmlStrEqual"></a>Function: xmlStrEqual</h3><pre class="programlisting">int	xmlStrEqual			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
 </pre><p>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrPrintf" id="xmlStrPrintf"></a>Function: xmlStrPrintf</h3><pre class="programlisting">int	xmlStrPrintf			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br />					 ... ...)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrPrintf" id="xmlStrPrintf"></a>Function: xmlStrPrintf</h3><pre class="programlisting">int	xmlStrPrintf			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const char * msg, <br />					 ... ...)<br />
 </pre><p>Formats @msg and places result into @buf.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div><h3><a name="xmlStrQEqual" id="xmlStrQEqual"></a>Function: xmlStrQEqual</h3><pre class="programlisting">int	xmlStrQEqual			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pref, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
 </pre><p>Check if a QName is Equal to a given string</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrVPrintf" id="xmlStrVPrintf"></a>Function: xmlStrVPrintf</h3><pre class="programlisting">int	xmlStrVPrintf			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br />					 va_list ap)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrVPrintf" id="xmlStrVPrintf"></a>Function: xmlStrVPrintf</h3><pre class="programlisting">int	xmlStrVPrintf			(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br />					 int len, <br />					 const char * msg, <br />					 va_list ap)<br />
 </pre><p>Formats @msg and places result into @buf.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>ap</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div><h3><a name="xmlStrcasecmp" id="xmlStrcasecmp"></a>Function: xmlStrcasecmp</h3><pre class="programlisting">int	xmlStrcasecmp			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
 </pre><p>a strcasecmp for xmlChar's</p>
@@ -67,7 +67,7 @@
 </pre><p>a case-ignoring strstr for xmlChar's</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array (haystack)</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> to search (needle)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div><h3><a name="xmlStrcat" id="xmlStrcat"></a>Function: xmlStrcat</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlStrcat		(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add)<br />
 </pre><p>a strcat for array of xmlChar's. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of '0'.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * containing the concatenated string.</td></tr></tbody></table></div><h3><a name="xmlStrchr" id="xmlStrchr"></a>Function: xmlStrchr</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlStrchr		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> val)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * containing the concatenated string. The original @cur is reallocated and should not be freed.</td></tr></tbody></table></div><h3><a name="xmlStrchr" id="xmlStrchr"></a>Function: xmlStrchr</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlStrchr		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> val)<br />
 </pre><p>a strchr for xmlChar's</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> to search</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div><h3><a name="xmlStrcmp" id="xmlStrcmp"></a>Function: xmlStrcmp</h3><pre class="programlisting">int	xmlStrcmp			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
 </pre><p>a strcmp for xmlChar's</p>
@@ -79,7 +79,7 @@
 </pre><p>a strncasecmp for xmlChar's</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the max comparison length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the integer result of the comparison</td></tr></tbody></table></div><h3><a name="xmlStrncat" id="xmlStrncat"></a>Function: xmlStrncat</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlStrncat		(<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add, <br />					 int len)<br />
 </pre><p>a strncat for array of xmlChar's, it will extend @cur with the len first bytes of @add. Note that if @len &lt; 0 then this is an API error and NULL will be returned.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of @add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *, the original @cur is reallocated if needed and should not be freed</td></tr></tbody></table></div><h3><a name="xmlStrncatNew" id="xmlStrncatNew"></a>Function: xmlStrncatNew</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlStrncatNew		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br />					 int len)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of @add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *, the original @cur is reallocated and should not be freed.</td></tr></tbody></table></div><h3><a name="xmlStrncatNew" id="xmlStrncatNew"></a>Function: xmlStrncatNew</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlStrncatNew		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br />					 int len)<br />
 </pre><p>same as xmlStrncat, but creates a new string. The original two strings are not freed. If @len is &lt; 0 then the length will be calculated automatically.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @str2 or &lt; 0</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div><h3><a name="xmlStrncmp" id="xmlStrncmp"></a>Function: xmlStrncmp</h3><pre class="programlisting">int	xmlStrncmp			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br />					 int len)<br />
 </pre><p>a strncmp for xmlChar's</p>
@@ -102,7 +102,7 @@
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @utf (in chars)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new UTF8 * or NULL</td></tr></tbody></table></div><h3><a name="xmlUTF8Strpos" id="xmlUTF8Strpos"></a>Function: xmlUTF8Strpos</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlUTF8Strpos		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br />					 int pos)<br />
 </pre><p>a function to provide the equivalent of fetching a character from a string array</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>pos</tt></i>:</span></td><td>the position of the desired UTF8 char (in chars)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the UTF8 character or NULL</td></tr></tbody></table></div><h3><a name="xmlUTF8Strsize" id="xmlUTF8Strsize"></a>Function: xmlUTF8Strsize</h3><pre class="programlisting">int	xmlUTF8Strsize			(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br />					 int len)<br />
-</pre><p>storage size of an UTF8 string the behaviour is not garanteed if the input string is not UTF-8</p>
+</pre><p>storage size of an UTF8 string the behaviour is not guaranteed if the input string is not UTF-8</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> in the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the storage size of the first 'len' <a href="libxml-SAX.html#characters">characters</a> of ARRAY</td></tr></tbody></table></div><h3><a name="xmlUTF8Strsub" id="xmlUTF8Strsub"></a>Function: xmlUTF8Strsub</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *	xmlUTF8Strsub		(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br />					 int start, <br />					 int len)<br />
 </pre><p>Create a substring from a given UTF-8 string Note: positions are given in units of UTF-8 chars</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>relative pos of first char</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>total number to copy</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to a newly created string or NULL if any problem</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-xpath.html b/doc/html/libxml-xpath.html
index e47e600..482a983 100644
--- a/doc/html/libxml-xpath.html
+++ b/doc/html/libxml-xpath.html
@@ -270,7 +270,7 @@
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> resulting from the compilation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathEval" id="xmlXPathEval"></a>Function: xmlXPathEval</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a>	xmlXPathEval	(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br />					 <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br />
 </pre><p>Evaluate the XPath Location Path in the given context.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathEvalExpression" id="xmlXPathEvalExpression"></a>Function: xmlXPathEvalExpression</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a>	xmlXPathEvalExpression	(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br />						 <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br />
-</pre><p>Evaluate the XPath expression in the given context.</p>
+</pre><p>Alias for xmlXPathEval().</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathEvalFunc" id="xmlXPathEvalFunc"></a>Function type: xmlXPathEvalFunc</h3><pre class="programlisting">Function type: xmlXPathEvalFunc
 void	xmlXPathEvalFunc		(<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br />					 int nargs)
 </pre><p>An XPath evaluation function, the parameters are on the XPath context stack.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments passed to the function</td></tr></tbody></table></div><br />
@@ -293,11 +293,11 @@
 void	xmlXPathFunction		(<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br />					 int nargs)
 </pre><p>An XPath function. The arguments (if any) are popped out from the context stack and the result is pushed on the stack.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath interprestation context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><br />
 <h3><a name="xmlXPathInit" id="xmlXPathInit"></a>Function: xmlXPathInit</h3><pre class="programlisting">void	xmlXPathInit			(void)<br />
-</pre><p>Initialize the XPath environment</p>
+</pre><p>Initialize the XPath environment Does nothing but must be kept as public function.</p>
 <h3><a name="xmlXPathIsInf" id="xmlXPathIsInf"></a>Function: xmlXPathIsInf</h3><pre class="programlisting">int	xmlXPathIsInf			(double val)<br />
-</pre><p>Provides a portable isinf() function to detect whether a double is a +Infinite or -Infinite. Based on trio code http://sourceforge.net/projects/ctrio/</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathIsNaN" id="xmlXPathIsNaN"></a>Function: xmlXPathIsNaN</h3><pre class="programlisting">int	xmlXPathIsNaN			(double val)<br />
-</pre><p>Provides a portable isnan() function to detect whether a double is a NotaNumber. Based on trio code http://sourceforge.net/projects/ctrio/</p>
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathIsNaN" id="xmlXPathIsNaN"></a>Function: xmlXPathIsNaN</h3><pre class="programlisting">int	xmlXPathIsNaN			(double val)<br />
+</pre><p></p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is a NaN, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathNewContext" id="xmlXPathNewContext"></a>Function: xmlXPathNewContext</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a>	xmlXPathNewContext	(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
 </pre><p>Create a new <a href="libxml-xpath.html#xmlXPathContext">xmlXPathContext</a></p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathContext">xmlXPathContext</a> just allocated. The caller will need to free it.</td></tr></tbody></table></div><h3><a name="xmlXPathNodeEval" id="xmlXPathNodeEval"></a>Function: xmlXPathNodeEval</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a>	xmlXPathNodeEval	(<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br />						 <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br />
diff --git a/doc/html/libxml-xpathInternals.html b/doc/html/libxml-xpathInternals.html
index f12d808..49546ab 100644
--- a/doc/html/libxml-xpathInternals.html
+++ b/doc/html/libxml-xpathInternals.html
@@ -348,7 +348,7 @@
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div><h3><a name="xmlXPathRoot" id="xmlXPathRoot"></a>Function: xmlXPathRoot</h3><pre class="programlisting">void	xmlXPathRoot			(<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
 </pre><p>Initialize the context to the root of the document</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div><h3><a name="xmlXPathRoundFunction" id="xmlXPathRoundFunction"></a>Function: xmlXPathRoundFunction</h3><pre class="programlisting">void	xmlXPathRoundFunction		(<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br />					 int nargs)<br />
-</pre><p>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is even is returned.</p>
+</pre><p>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is closest to positive infinity is returned.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathStartsWithFunction" id="xmlXPathStartsWithFunction"></a>Function: xmlXPathStartsWithFunction</h3><pre class="programlisting">void	xmlXPathStartsWithFunction	(<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br />					 int nargs)<br />
 </pre><p>Implement the starts-with() XPath function boolean starts-with(string, string) The starts-with function returns true if the first argument string starts with the second argument string, and otherwise returns false.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathStringEvalNumber" id="xmlXPathStringEvalNumber"></a>Function: xmlXPathStringEvalNumber</h3><pre class="programlisting">double	xmlXPathStringEvalNumber	(const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
diff --git a/doc/html/libxml-xpointer.html b/doc/html/libxml-xpointer.html
index 45526de..66eb80b 100644
--- a/doc/html/libxml-xpointer.html
+++ b/doc/html/libxml-xpointer.html
@@ -77,7 +77,7 @@
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting point</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrNewRangePoints" id="xmlXPtrNewRangePoints"></a>Function: xmlXPtrNewRangePoints</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a>	xmlXPtrNewRangePoints	(<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> start, <br />						 <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end)<br />
 </pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range using 2 Points</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting point</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrRangeToFunction" id="xmlXPtrRangeToFunction"></a>Function: xmlXPtrRangeToFunction</h3><pre class="programlisting">void	xmlXPtrRangeToFunction		(<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br />					 int nargs)<br />
-</pre><p>Implement the range-to() XPointer function</p>
+</pre><p>Implement the range-to() XPointer function Obsolete. range-to is not a real function but a special type of location step which is handled in xpath.c.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPointer Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of args</td></tr></tbody></table></div><h3><a name="xmlXPtrWrapLocationSet" id="xmlXPtrWrapLocationSet"></a>Function: xmlXPtrWrapLocationSet</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a>	xmlXPtrWrapLocationSet	(<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val)<br />
 </pre><p>Wrap the LocationSet @val in a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a></p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the LocationSet value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/index.py b/doc/index.py
index 578f288..1895d84 100755
--- a/doc/index.py
+++ b/doc/index.py
@@ -49,7 +49,7 @@
 libxml2.registerErrorHandler(callback, None)
 
 #
-# The dictionnary of tables required and the SQL command needed
+# The dictionary of tables required and the SQL command needed
 # to create them
 #
 TABLES={
@@ -438,12 +438,12 @@
 	    print """UPDATE wordsArchive SET relevance='%d' where name='%s' and ID='%d'""" % (relevance, name, id)
 	    print sys.exc_type, sys.exc_value
 	    return -1
-	     
+
     return ret
 
 #########################################################################
 #									#
-#                  Word dictionnary and analysis routines		#
+#                  Word dictionary and analysis routines		#
 #									#
 #########################################################################
 
diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml
index f83d14f..9cf6c72 100644
--- a/doc/libxml2-api.xml
+++ b/doc/libxml2-api.xml
@@ -367,7 +367,7 @@
      <exports symbol='xmlShell' type='function'/>
     </file>
     <file name='dict'>
-     <summary>string dictionnary</summary>
+     <summary>string dictionary</summary>
      <description>dictionary of reusable strings, just used to avoid allocation and freeing operations. </description>
      <author>Daniel Veillard </author>
      <exports symbol='xmlDict' type='typedef'/>
@@ -390,6 +390,7 @@
      <summary>interface for the encoding conversion functions</summary>
      <description>interface for the encoding conversion functions needed for XML basic encoding and iconv() support.  Related specs are rfc2044        (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646]    UTF-8 and UTF-16 in Annexes [ISO-8859-1]   ISO Latin-1 characters codes. [UNICODE]      The Unicode Consortium, &quot;The Unicode Standard -- Worldwide Character Encoding -- Version 1.0&quot;, Addison- Wesley, Volume 1, 1991, Volume 2, 1992.  UTF-8 is described in Unicode Technical Report #4. [US-ASCII]     Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </description>
      <author>Daniel Veillard </author>
+     <exports symbol='ICU_PIVOT_BUF_SIZE' type='macro'/>
      <exports symbol='XML_CHAR_ENCODING_UCS4LE' type='enum'/>
      <exports symbol='XML_CHAR_ENCODING_ERROR' type='enum'/>
      <exports symbol='XML_CHAR_ENCODING_8859_5' type='enum'/>
@@ -573,6 +574,7 @@
      <exports symbol='xmlHashCopy' type='function'/>
      <exports symbol='xmlHashScanFull3' type='function'/>
      <exports symbol='xmlHashUpdateEntry3' type='function'/>
+     <exports symbol='xmlHashDefaultDeallocator' type='function'/>
      <exports symbol='xmlHashLookup3' type='function'/>
      <exports symbol='xmlHashLookup2' type='function'/>
      <exports symbol='xmlHashRemoveEntry' type='function'/>
@@ -1127,7 +1129,7 @@
     </file>
     <file name='schemasInternals'>
      <summary>internal interfaces for XML Schemas</summary>
-     <description>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not garanteed to be API or ABI stable ! </description>
+     <description>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not guaranteed to be API or ABI stable ! </description>
      <author>Daniel Veillard </author>
      <exports symbol='XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION' type='macro'/>
      <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_EXTENSION' type='macro'/>
@@ -1441,12 +1443,12 @@
      <exports symbol='XML_DOC_DTDVALID' type='enum'/>
      <exports symbol='XML_ELEMENT_TYPE_ANY' type='enum'/>
      <exports symbol='XML_DOC_NSVALID' type='enum'/>
-     <exports symbol='XML_ELEMENT_CONTENT_ONCE' type='enum'/>
+     <exports symbol='XML_BUFFER_ALLOC_BOUNDED' type='enum'/>
      <exports symbol='XML_ELEMENT_CONTENT_PCDATA' type='enum'/>
      <exports symbol='XML_ATTRIBUTE_FIXED' type='enum'/>
      <exports symbol='XML_DOCUMENT_TYPE_NODE' type='enum'/>
      <exports symbol='XML_DOC_HTML' type='enum'/>
-     <exports symbol='XML_ELEMENT_CONTENT_OPT' type='enum'/>
+     <exports symbol='XML_ELEMENT_CONTENT_ONCE' type='enum'/>
      <exports symbol='XML_NAMESPACE_DECL' type='enum'/>
      <exports symbol='XML_ATTRIBUTE_NOTATION' type='enum'/>
      <exports symbol='XML_ELEMENT_TYPE_MIXED' type='enum'/>
@@ -1459,6 +1461,7 @@
      <exports symbol='XML_NOTATION_NODE' type='enum'/>
      <exports symbol='XML_ELEMENT_CONTENT_SEQ' type='enum'/>
      <exports symbol='XML_ELEMENT_TYPE_EMPTY' type='enum'/>
+     <exports symbol='XML_ELEMENT_CONTENT_OPT' type='enum'/>
      <exports symbol='XML_ATTRIBUTE_ENUMERATION' type='enum'/>
      <exports symbol='XML_DOC_OLD10' type='enum'/>
      <exports symbol='XML_HTML_DOCUMENT_NODE' type='enum'/>
@@ -3877,6 +3880,8 @@
     <macro name='HTML_TEXT_NODE' file='HTMLtree'>
       <info>Macro. A text node in a HTML document is really implemented the same way as a text node in an XML document.</info>
     </macro>
+    <macro name='ICU_PIVOT_BUF_SIZE' file='encoding'>
+    </macro>
     <macro name='INPUT_CHUNK' file='parserInternals'>
       <info>The parser tries to always have that amount of input ready. One of the point is providing context when reporting errors.</info>
     </macro>
@@ -4702,9 +4707,10 @@
     <enum name='XML_ATTRIBUTE_NONE' file='tree' value='1' type='xmlAttributeDefault'/>
     <enum name='XML_ATTRIBUTE_NOTATION' file='tree' value='10' type='xmlAttributeType'/>
     <enum name='XML_ATTRIBUTE_REQUIRED' file='tree' value='2' type='xmlAttributeDefault'/>
+    <enum name='XML_BUFFER_ALLOC_BOUNDED' file='tree' value='6' type='xmlBufferAllocationScheme' info=' limit the upper size of the buffer'/>
     <enum name='XML_BUFFER_ALLOC_DOUBLEIT' file='tree' value='1' type='xmlBufferAllocationScheme' info='double each time one need to grow'/>
     <enum name='XML_BUFFER_ALLOC_EXACT' file='tree' value='2' type='xmlBufferAllocationScheme' info='grow only to the minimal size'/>
-    <enum name='XML_BUFFER_ALLOC_HYBRID' file='tree' value='5' type='xmlBufferAllocationScheme' info=' exact up to a threshold, and doubleit thereafter'/>
+    <enum name='XML_BUFFER_ALLOC_HYBRID' file='tree' value='5' type='xmlBufferAllocationScheme' info='exact up to a threshold, and doubleit thereafter'/>
     <enum name='XML_BUFFER_ALLOC_IMMUTABLE' file='tree' value='3' type='xmlBufferAllocationScheme' info='immutable buffer'/>
     <enum name='XML_BUFFER_ALLOC_IO' file='tree' value='4' type='xmlBufferAllocationScheme' info='special allocation scheme used for I/O'/>
     <enum name='XML_BUF_OVERFLOW' file='xmlerror' value='7000' type='xmlParserErrors'/>
@@ -5140,7 +5146,7 @@
     <enum name='XML_PARSE_NOBASEFIX' file='parser' value='262144' type='xmlParserOption' info='do not fixup XINCLUDE xml:base uris'/>
     <enum name='XML_PARSE_NOBLANKS' file='parser' value='256' type='xmlParserOption' info='remove blank nodes'/>
     <enum name='XML_PARSE_NOCDATA' file='parser' value='16384' type='xmlParserOption' info='merge CDATA as text nodes'/>
-    <enum name='XML_PARSE_NODICT' file='parser' value='4096' type='xmlParserOption' info='Do not reuse the context dictionnary'/>
+    <enum name='XML_PARSE_NODICT' file='parser' value='4096' type='xmlParserOption' info='Do not reuse the context dictionary'/>
     <enum name='XML_PARSE_NOENT' file='parser' value='2' type='xmlParserOption' info='substitute entities'/>
     <enum name='XML_PARSE_NOERROR' file='parser' value='32' type='xmlParserOption' info='suppress error reports'/>
     <enum name='XML_PARSE_NONET' file='parser' value='2048' type='xmlParserOption' info='Forbid network access'/>
@@ -5959,6 +5965,9 @@
     <struct name='uconv_t' file='encoding' type='struct _uconv_t'>
       <field name='uconv' type='UConverter *' info=' for conversion between an encoding and UTF-16'/>
       <field name='utf8' type='UConverter *' info=' for conversion between UTF-8 and UTF-16'/>
+      <field name='pivot_buf' type='UCharpivot_buf[ICU_PIVOT_BUF_SIZE]' info=''/>
+      <field name='pivot_source' type='UChar *' info=''/>
+      <field name='pivot_target' type='UChar *' info=''/>
     </struct>
     <typedef name='xlinkActuate' file='xlink' type='enum'/>
     <typedef name='xlinkHRef' file='xlink' type='xmlChar *'/>
@@ -6408,7 +6417,7 @@
       <field name='catalogs' type='void *' info=' document&apos;s own catalog'/>
       <field name='recovery' type='int' info=' run in recovery mode'/>
       <field name='progressive' type='int' info=' is this a progressive parsing'/>
-      <field name='dict' type='xmlDictPtr' info=' dictionnary for the parser'/>
+      <field name='dict' type='xmlDictPtr' info=' dictionary for the parser'/>
       <field name='atts' type='const xmlChar * *' info=' array for the attributes callbacks'/>
       <field name='maxatts' type='int' info=' the size of the array'/>
       <field name='docdict' type='int' info='* pre-interned strings
@@ -7741,7 +7750,7 @@
       <cond>defined(LIBXML_HTML_ENABLED)</cond>
       <info>parse an HTML in-memory document and build a tree.</info>
       <return type='htmlDocPtr' info='the resulting document tree'/>
-      <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
+      <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
       <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
     </function>
     <function name='htmlParseDocument' file='HTMLparser' module='HTMLparser'>
@@ -7821,7 +7830,7 @@
       <cond>defined(LIBXML_HTML_ENABLED)</cond>
       <info>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</info>
       <return type='htmlDocPtr' info='the resulting document tree unless SAX is NULL or the document is not well formed.'/>
-      <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
+      <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
       <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
       <arg name='sax' type='htmlSAXHandlerPtr' info='the SAX handler block'/>
       <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
@@ -9243,7 +9252,7 @@
     </function>
     <function name='xmlCtxtGetLastError' file='xmlerror' module='error'>
       <info>Get the last parsing error registered.</info>
-      <return type='xmlErrorPtr' info='NULL if no error occured or a pointer to the error'/>
+      <return type='xmlErrorPtr' info='NULL if no error occurred or a pointer to the error'/>
       <arg name='ctx' type='void *' info='an XML parser context'/>
     </function>
     <function name='xmlCtxtReadDoc' file='parser' module='parser'>
@@ -9502,65 +9511,65 @@
     </function>
     <function name='xmlDictCreate' file='dict' module='dict'>
       <info>Create a new dictionary</info>
-      <return type='xmlDictPtr' info='the newly created dictionnary, or NULL if an error occured.'/>
+      <return type='xmlDictPtr' info='the newly created dictionary, or NULL if an error occurred.'/>
     </function>
     <function name='xmlDictCreateSub' file='dict' module='dict'>
-      <info>Create a new dictionary, inheriting strings from the read-only dictionnary @sub. On lookup, strings are first searched in the new dictionnary, then in @sub, and if not found are created in the new dictionnary.</info>
-      <return type='xmlDictPtr' info='the newly created dictionnary, or NULL if an error occured.'/>
-      <arg name='sub' type='xmlDictPtr' info='an existing dictionnary'/>
+      <info>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</info>
+      <return type='xmlDictPtr' info='the newly created dictionary, or NULL if an error occurred.'/>
+      <arg name='sub' type='xmlDictPtr' info='an existing dictionary'/>
     </function>
     <function name='xmlDictExists' file='dict' module='dict'>
-      <info>Check if the @name exists in the dictionnary @dict.</info>
+      <info>Check if the @name exists in the dictionary @dict.</info>
       <return type='const xmlChar *' info='the internal copy of the name or NULL if not found.'/>
-      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+      <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
       <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
       <arg name='len' type='int' info='the length of the name, if -1 it is recomputed'/>
     </function>
     <function name='xmlDictFree' file='dict' module='dict'>
       <info>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</info>
       <return type='void'/>
-      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+      <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
     </function>
     <function name='xmlDictGetUsage' file='dict' module='dict'>
       <info>Get how much memory is used by a dictionary for strings Added in 2.9.0</info>
       <return type='size_t' info='the amount of strings allocated'/>
-      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+      <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
     </function>
     <function name='xmlDictLookup' file='dict' module='dict'>
-      <info>Add the @name to the dictionnary @dict if not present.</info>
+      <info>Add the @name to the dictionary @dict if not present.</info>
       <return type='const xmlChar *' info='the internal copy of the name or NULL in case of internal error'/>
-      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+      <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
       <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
       <arg name='len' type='int' info='the length of the name, if -1 it is recomputed'/>
     </function>
     <function name='xmlDictOwns' file='dict' module='dict'>
       <info>check if a string is owned by the disctionary</info>
       <return type='int' info='1 if true, 0 if false and -1 in case of error -1 in case of error'/>
-      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+      <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
       <arg name='str' type='const xmlChar *' info='the string'/>
     </function>
     <function name='xmlDictQLookup' file='dict' module='dict'>
       <info>Add the QName @prefix:@name to the hash @dict if not present.</info>
       <return type='const xmlChar *' info='the internal copy of the QName or NULL in case of internal error'/>
-      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+      <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
       <arg name='prefix' type='const xmlChar *' info='the prefix'/>
       <arg name='name' type='const xmlChar *' info='the name'/>
     </function>
     <function name='xmlDictReference' file='dict' module='dict'>
       <info>Increment the reference counter of a dictionary</info>
       <return type='int' info='0 in case of success and -1 in case of error'/>
-      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+      <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
     </function>
     <function name='xmlDictSetLimit' file='dict' module='dict'>
       <info>Set a size limit for the dictionary Added in 2.9.0</info>
       <return type='size_t' info='the previous limit of the dictionary or 0'/>
-      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+      <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
       <arg name='limit' type='size_t' info='the limit in bytes'/>
     </function>
     <function name='xmlDictSize' file='dict' module='dict'>
       <info>Query the number of elements installed in the hash @dict.</info>
-      <return type='int' info='the number of elements in the dictionnary or -1 in case of error'/>
-      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+      <return type='int' info='the number of elements in the dictionary or -1 in case of error'/>
+      <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
     </function>
     <function name='xmlDllMain' file='threads' module='threads'>
       <info></info>
@@ -9825,7 +9834,7 @@
       <info>Creates a new context for manipulating expressions</info>
       <return type='xmlExpCtxtPtr' info='the context or NULL in case of error'/>
       <arg name='maxNodes' type='int' info='the maximum number of nodes'/>
-      <arg name='dict' type='xmlDictPtr' info='optional dictionnary to use internally'/>
+      <arg name='dict' type='xmlDictPtr' info='optional dictionary to use internally'/>
     </function>
     <function name='xmlExpNewOr' file='xmlregexp' module='xmlregexp'>
       <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
@@ -10231,7 +10240,7 @@
     </function>
     <function name='xmlGetLastError' file='xmlerror' module='error'>
       <info>Get the last global error registered. This is per thread if compiled with thread support.</info>
-      <return type='xmlErrorPtr' info='NULL if no error occured or a pointer to the error'/>
+      <return type='xmlErrorPtr' info='NULL if no error occurred or a pointer to the error'/>
     </function>
     <function name='xmlGetLineNo' file='tree' module='tree'>
       <info>Get line number of @node. Try to override the limitation of lines being store in 16 bits ints if XML_PARSE_BIG_LINES parser option was used</info>
@@ -10350,7 +10359,7 @@
       <info>Callback to copy data from a hash.</info>
       <return type='void *' info='a copy of the data or NULL in case of error.'/>
       <arg name='payload' type='void *' info='the data in the hash'/>
-      <arg name='name' type='xmlChar *' info='the name associated'/>
+      <arg name='name' type='const xmlChar *' info='the name associated'/>
     </functype>
     <function name='xmlHashCopy' file='hash' module='hash'>
       <info>Scan the hash @table and applied @f to each value.</info>
@@ -10360,12 +10369,12 @@
     </function>
     <function name='xmlHashCreate' file='hash' module='hash'>
       <info>Create a new xmlHashTablePtr.</info>
-      <return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occured.'/>
+      <return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occurred.'/>
       <arg name='size' type='int' info='the size of the hash table'/>
     </function>
     <function name='xmlHashCreateDict' file='hash' module='hash'>
       <info>Create a new xmlHashTablePtr which will use @dict as the internal dictionary</info>
-      <return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occured.'/>
+      <return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occurred.'/>
       <arg name='size' type='int' info='the size of the hash table'/>
       <arg name='dict' type='xmlDictPtr' info='a dictionary to use for the hash'/>
     </function>
@@ -10373,8 +10382,14 @@
       <info>Callback to free data from a hash.</info>
       <return type='void'/>
       <arg name='payload' type='void *' info='the data in the hash'/>
-      <arg name='name' type='xmlChar *' info='the name associated'/>
+      <arg name='name' type='const xmlChar *' info='the name associated'/>
     </functype>
+    <function name='xmlHashDefaultDeallocator' file='hash' module='hash'>
+      <info>Free a hash table entry with xmlFree.</info>
+      <return type='void'/>
+      <arg name='entry' type='void *' info='the hash table entry'/>
+      <arg name='name' type='const xmlChar *' info='the entry&apos;s name'/>
+    </function>
     <function name='xmlHashFree' file='hash' module='hash'>
       <info>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</info>
       <return type='void'/>
@@ -10492,7 +10507,7 @@
       <return type='void'/>
       <arg name='payload' type='void *' info='the data in the hash'/>
       <arg name='data' type='void *' info='extra scannner data'/>
-      <arg name='name' type='xmlChar *' info='the name associated'/>
+      <arg name='name' type='const xmlChar *' info='the name associated'/>
     </functype>
     <functype name='xmlHashScannerFull' file='hash' module='hash'>
       <info>Callback when scanning data in a hash with the full scanner.</info>
@@ -10875,13 +10890,13 @@
     </function>
     <function name='xmlListRemoveFirst' file='list' module='list'>
       <info>Remove the first instance associated to data in the list</info>
-      <return type='int' info='1 if a deallocation occured, or 0 if not found'/>
+      <return type='int' info='1 if a deallocation occurred, or 0 if not found'/>
       <arg name='l' type='xmlListPtr' info='a list'/>
       <arg name='data' type='void *' info='list data'/>
     </function>
     <function name='xmlListRemoveLast' file='list' module='list'>
       <info>Remove the last instance associated to data in the list</info>
-      <return type='int' info='1 if a deallocation occured, or 0 if not found'/>
+      <return type='int' info='1 if a deallocation occurred, or 0 if not found'/>
       <arg name='l' type='xmlListPtr' info='a list'/>
       <arg name='data' type='void *' info='list data'/>
     </function>
@@ -10901,7 +10916,7 @@
       <return type='void'/>
       <arg name='l' type='xmlListPtr' info='a list'/>
       <arg name='walker' type='xmlListWalker' info='a processing function'/>
-      <arg name='user' type='const void *' info='a user parameter passed to the walker function'/>
+      <arg name='user' type='void *' info='a user parameter passed to the walker function'/>
     </function>
     <function name='xmlListSearch' file='list' module='list'>
       <info>Search the list for an existing value of @data</info>
@@ -10924,13 +10939,13 @@
       <return type='void'/>
       <arg name='l' type='xmlListPtr' info='a list'/>
       <arg name='walker' type='xmlListWalker' info='a processing function'/>
-      <arg name='user' type='const void *' info='a user parameter passed to the walker function'/>
+      <arg name='user' type='void *' info='a user parameter passed to the walker function'/>
     </function>
     <functype name='xmlListWalker' file='list' module='list'>
       <info>Callback function used when walking a list with xmlListWalk().</info>
       <return type='int' info='0 to stop walking the list, 1 otherwise.'/>
       <arg name='data' type='const void *' info='the data found in the list'/>
-      <arg name='user' type='const void *' info='extra user provided data to the walker'/>
+      <arg name='user' type='void *' info='extra user provided data to the walker'/>
     </functype>
     <function name='xmlLoadACatalog' file='catalog' module='catalog'>
       <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
@@ -10983,7 +10998,7 @@
     <function name='xmlMallocAtomicLoc' file='xmlmemory' module='xmlmemory'>
       <info>a malloc() equivalent, with logging of the allocation info.</info>
       <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
-      <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
+      <arg name='size' type='size_t' info='an unsigned int specifying the size in byte to allocate.'/>
       <arg name='file' type='const char *' info='the file name or NULL'/>
       <arg name='line' type='int' info='the line number'/>
     </function>
@@ -14451,7 +14466,7 @@
     </function>
     <function name='xmlSplitQName2' file='tree' module='tree'>
       <info>parse an XML qualified name string  [NS 5] QName ::= (Prefix &apos;:&apos;)? LocalPart  [NS 6] Prefix ::= NCName  [NS 7] LocalPart ::= NCName</info>
-      <return type='xmlChar *' info='NULL if not a QName, otherwise the local part, and prefix is updated to get the Prefix if any.'/>
+      <return type='xmlChar *' info='NULL if the name doesn&apos;t have a prefix. Otherwise, returns the local part, and prefix is updated to get the Prefix. Both the return value and the prefix must be freed by the caller.'/>
       <arg name='name' type='const xmlChar *' info='the full QName'/>
       <arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
     </function>
@@ -14485,7 +14500,7 @@
       <return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
       <arg name='buf' type='xmlChar *' info='the result buffer.'/>
       <arg name='len' type='int' info='the result buffer length.'/>
-      <arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
+      <arg name='msg' type='const char *' info='the message with printf formatting.'/>
       <arg name='...' type='...' info='extra parameters for the message.'/>
     </function>
     <function name='xmlStrQEqual' file='xmlstring' module='xmlstring'>
@@ -14500,7 +14515,7 @@
       <return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
       <arg name='buf' type='xmlChar *' info='the result buffer.'/>
       <arg name='len' type='int' info='the result buffer length.'/>
-      <arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
+      <arg name='msg' type='const char *' info='the message with printf formatting.'/>
       <arg name='ap' type='va_list' info='extra parameters for the message.'/>
     </function>
     <function name='xmlStrcasecmp' file='xmlstring' module='xmlstring'>
@@ -14517,7 +14532,7 @@
     </function>
     <function name='xmlStrcat' file='xmlstring' module='xmlstring'>
       <info>a strcat for array of xmlChar&apos;s. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of &apos;0&apos;.</info>
-      <return type='xmlChar *' info='a new xmlChar * containing the concatenated string.'/>
+      <return type='xmlChar *' info='a new xmlChar * containing the concatenated string. The original @cur is reallocated and should not be freed.'/>
       <arg name='cur' type='xmlChar *' info='the original xmlChar * array'/>
       <arg name='add' type='const xmlChar *' info='the xmlChar * array added'/>
     </function>
@@ -14635,7 +14650,7 @@
     </function>
     <function name='xmlStrncat' file='xmlstring' module='xmlstring'>
       <info>a strncat for array of xmlChar&apos;s, it will extend @cur with the len first bytes of @add. Note that if @len &lt; 0 then this is an API error and NULL will be returned.</info>
-      <return type='xmlChar *' info='a new xmlChar *, the original @cur is reallocated if needed and should not be freed'/>
+      <return type='xmlChar *' info='a new xmlChar *, the original @cur is reallocated and should not be freed.'/>
       <arg name='cur' type='xmlChar *' info='the original xmlChar * array'/>
       <arg name='add' type='const xmlChar *' info='the xmlChar * array added'/>
       <arg name='len' type='int' info='the length of @add'/>
@@ -14826,7 +14841,7 @@
       <arg name='arg' type='void *' info='the user argument'/>
       <arg name='msg' type='const char *' info='the message'/>
       <arg name='severity' type='xmlParserSeverities' info='the severity of the error'/>
-      <arg name='locator' type='xmlTextReaderLocatorPtr' info='a locator indicating where the error occured'/>
+      <arg name='locator' type='xmlTextReaderLocatorPtr' info='a locator indicating where the error occurred'/>
     </functype>
     <function name='xmlTextReaderExpand' file='xmlreader' module='xmlreader'>
       <cond>defined(LIBXML_READER_ENABLED)</cond>
@@ -15041,7 +15056,7 @@
     <function name='xmlTextReaderPreservePattern' file='xmlreader' module='xmlreader'>
       <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_PATTERN_ENABLED)</cond>
       <info>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</info>
-      <return type='int' info='a positive number in case of success and -1 in case of error'/>
+      <return type='int' info='a non-negative number in case of success and -1 in case of error'/>
       <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
       <arg name='pattern' type='const xmlChar *' info='an XPath subset pattern'/>
       <arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
@@ -16930,7 +16945,7 @@
       <arg name='pos' type='int' info='the position of the desired UTF8 char (in chars)'/>
     </function>
     <function name='xmlUTF8Strsize' file='xmlstring' module='xmlstring'>
-      <info>storage size of an UTF8 string the behaviour is not garanteed if the input string is not UTF-8</info>
+      <info>storage size of an UTF8 string the behaviour is not guaranteed if the input string is not UTF-8</info>
       <return type='int' info='the storage size of the first &apos;len&apos; characters of ARRAY'/>
       <arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
       <arg name='len' type='int' info='the number of characters in the array'/>
@@ -17559,7 +17574,7 @@
     </function>
     <function name='xmlXPathEvalExpression' file='xpath' module='xpath'>
       <cond>defined(LIBXML_XPATH_ENABLED)</cond>
-      <info>Evaluate the XPath expression in the given context.</info>
+      <info>Alias for xmlXPathEval().</info>
       <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
       <arg name='str' type='const xmlChar *' info='the XPath expression'/>
       <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
@@ -17681,7 +17696,7 @@
     </function>
     <function name='xmlXPathInit' file='xpath' module='xpath'>
       <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
-      <info>Initialize the XPath environment</info>
+      <info>Initialize the XPath environment  Does nothing but must be kept as public function.</info>
       <return type='void'/>
     </function>
     <function name='xmlXPathIntersection' file='xpathInternals' module='xpath'>
@@ -17693,13 +17708,13 @@
     </function>
     <function name='xmlXPathIsInf' file='xpath' module='xpath'>
       <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
-      <info>Provides a portable isinf() function to detect whether a double is a +Infinite or -Infinite. Based on trio code http://sourceforge.net/projects/ctrio/</info>
-      <return type='int' info='1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise'/>
+      <info></info>
+      <return type='int' info='1 if the value is +Infinite, -1 if -Infinite, 0 otherwise'/>
       <arg name='val' type='double' info='a double value'/>
     </function>
     <function name='xmlXPathIsNaN' file='xpath' module='xpath'>
       <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
-      <info>Provides a portable isnan() function to detect whether a double is a NotaNumber. Based on trio code http://sourceforge.net/projects/ctrio/</info>
+      <info></info>
       <return type='int' info='1 if the value is a NaN, 0 otherwise'/>
       <arg name='val' type='double' info='a double value'/>
     </function>
@@ -18198,7 +18213,7 @@
     </function>
     <function name='xmlXPathRoundFunction' file='xpathInternals' module='xpath'>
       <cond>defined(LIBXML_XPATH_ENABLED)</cond>
-      <info>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is even is returned.</info>
+      <info>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is closest to positive infinity is returned.</info>
       <return type='void'/>
       <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
       <arg name='nargs' type='int' info='the number of arguments'/>
@@ -18493,7 +18508,7 @@
     </function>
     <function name='xmlXPtrRangeToFunction' file='xpointer' module='xpointer'>
       <cond>defined(LIBXML_XPTR_ENABLED)</cond>
-      <info>Implement the range-to() XPointer function</info>
+      <info>Implement the range-to() XPointer function  Obsolete. range-to is not a real function but a special type of location step which is handled in xpath.c.</info>
       <return type='void'/>
       <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPointer Parser context'/>
       <arg name='nargs' type='int' info='the number of args'/>
diff --git a/doc/libxml2-refs.xml b/doc/libxml2-refs.xml
index f42fab4..3fe0876 100644
--- a/doc/libxml2-refs.xml
+++ b/doc/libxml2-refs.xml
@@ -34,6 +34,7 @@
     <reference name='HTML_REQUIRED' href='html/libxml-HTMLparser.html#HTML_REQUIRED'/>
     <reference name='HTML_TEXT_NODE' href='html/libxml-HTMLtree.html#HTML_TEXT_NODE'/>
     <reference name='HTML_VALID' href='html/libxml-HTMLparser.html#HTML_VALID'/>
+    <reference name='ICU_PIVOT_BUF_SIZE' href='html/libxml-encoding.html#ICU_PIVOT_BUF_SIZE'/>
     <reference name='INPUT_CHUNK' href='html/libxml-parserInternals.html#INPUT_CHUNK'/>
     <reference name='INVALID_SOCKET' href='html/libxml-nanoftp.html#INVALID_SOCKET'/>
     <reference name='IS_ASCII_DIGIT' href='html/libxml-parserInternals.html#IS_ASCII_DIGIT'/>
@@ -148,6 +149,7 @@
     <reference name='XML_ATTRIBUTE_NONE' href='html/libxml-tree.html#XML_ATTRIBUTE_NONE'/>
     <reference name='XML_ATTRIBUTE_NOTATION' href='html/libxml-tree.html#XML_ATTRIBUTE_NOTATION'/>
     <reference name='XML_ATTRIBUTE_REQUIRED' href='html/libxml-tree.html#XML_ATTRIBUTE_REQUIRED'/>
+    <reference name='XML_BUFFER_ALLOC_BOUNDED' href='html/libxml-tree.html#XML_BUFFER_ALLOC_BOUNDED'/>
     <reference name='XML_BUFFER_ALLOC_DOUBLEIT' href='html/libxml-tree.html#XML_BUFFER_ALLOC_DOUBLEIT'/>
     <reference name='XML_BUFFER_ALLOC_EXACT' href='html/libxml-tree.html#XML_BUFFER_ALLOC_EXACT'/>
     <reference name='XML_BUFFER_ALLOC_HYBRID' href='html/libxml-tree.html#XML_BUFFER_ALLOC_HYBRID'/>
@@ -2123,6 +2125,7 @@
     <reference name='xmlHashCreate' href='html/libxml-hash.html#xmlHashCreate'/>
     <reference name='xmlHashCreateDict' href='html/libxml-hash.html#xmlHashCreateDict'/>
     <reference name='xmlHashDeallocator' href='html/libxml-hash.html#xmlHashDeallocator'/>
+    <reference name='xmlHashDefaultDeallocator' href='html/libxml-hash.html#xmlHashDefaultDeallocator'/>
     <reference name='xmlHashFree' href='html/libxml-hash.html#xmlHashFree'/>
     <reference name='xmlHashLookup' href='html/libxml-hash.html#xmlHashLookup'/>
     <reference name='xmlHashLookup2' href='html/libxml-hash.html#xmlHashLookup2'/>
@@ -3623,6 +3626,7 @@
       <ref name='HTML_VALID'/>
     </letter>
     <letter name='I'>
+      <ref name='ICU_PIVOT_BUF_SIZE'/>
       <ref name='INPUT_CHUNK'/>
       <ref name='INVALID_SOCKET'/>
       <ref name='IS_ASCII_DIGIT'/>
@@ -3749,6 +3753,7 @@
       <ref name='XML_ATTRIBUTE_NONE'/>
       <ref name='XML_ATTRIBUTE_NOTATION'/>
       <ref name='XML_ATTRIBUTE_REQUIRED'/>
+      <ref name='XML_BUFFER_ALLOC_BOUNDED'/>
       <ref name='XML_BUFFER_ALLOC_DOUBLEIT'/>
       <ref name='XML_BUFFER_ALLOC_EXACT'/>
       <ref name='XML_BUFFER_ALLOC_HYBRID'/>
@@ -5760,6 +5765,7 @@
       <ref name='xmlHashCreate'/>
       <ref name='xmlHashCreateDict'/>
       <ref name='xmlHashDeallocator'/>
+      <ref name='xmlHashDefaultDeallocator'/>
       <ref name='xmlHashFree'/>
       <ref name='xmlHashLookup'/>
       <ref name='xmlHashLookup2'/>
@@ -8111,8 +8117,6 @@
     </type>
     <type name='const void *'>
       <ref name='xmlListDataCompare'/>
-      <ref name='xmlListReverseWalk'/>
-      <ref name='xmlListWalk'/>
       <ref name='xmlListWalker'/>
     </type>
     <type name='const xlinkHRef'>
@@ -8183,7 +8187,9 @@
       <ref name='htmlIsScriptAttribute'/>
       <ref name='htmlNewDoc'/>
       <ref name='htmlNewDocNoDtD'/>
+      <ref name='htmlParseDoc'/>
       <ref name='htmlReadDoc'/>
+      <ref name='htmlSAXParseDoc'/>
       <ref name='htmlSetMetaEncoding'/>
       <ref name='htmlTagLookup'/>
       <ref name='ignorableWhitespace'/>
@@ -8283,6 +8289,9 @@
       <ref name='xmlHashAddEntry'/>
       <ref name='xmlHashAddEntry2'/>
       <ref name='xmlHashAddEntry3'/>
+      <ref name='xmlHashCopier'/>
+      <ref name='xmlHashDeallocator'/>
+      <ref name='xmlHashDefaultDeallocator'/>
       <ref name='xmlHashLookup'/>
       <ref name='xmlHashLookup2'/>
       <ref name='xmlHashLookup3'/>
@@ -8294,6 +8303,7 @@
       <ref name='xmlHashRemoveEntry3'/>
       <ref name='xmlHashScan3'/>
       <ref name='xmlHashScanFull3'/>
+      <ref name='xmlHashScanner'/>
       <ref name='xmlHashScannerFull'/>
       <ref name='xmlHashUpdateEntry'/>
       <ref name='xmlHashUpdateEntry2'/>
@@ -8404,9 +8414,7 @@
       <ref name='xmlSplitQName2'/>
       <ref name='xmlSplitQName3'/>
       <ref name='xmlStrEqual'/>
-      <ref name='xmlStrPrintf'/>
       <ref name='xmlStrQEqual'/>
-      <ref name='xmlStrVPrintf'/>
       <ref name='xmlStrcasecmp'/>
       <ref name='xmlStrcasestr'/>
       <ref name='xmlStrcat'/>
@@ -8860,6 +8868,7 @@
       <ref name='xmlHashAddEntry3'/>
       <ref name='xmlHashCopier'/>
       <ref name='xmlHashDeallocator'/>
+      <ref name='xmlHashDefaultDeallocator'/>
       <ref name='xmlHashScan'/>
       <ref name='xmlHashScan3'/>
       <ref name='xmlHashScanFull'/>
@@ -8883,7 +8892,10 @@
       <ref name='xmlListRemoveFirst'/>
       <ref name='xmlListRemoveLast'/>
       <ref name='xmlListReverseSearch'/>
+      <ref name='xmlListReverseWalk'/>
       <ref name='xmlListSearch'/>
+      <ref name='xmlListWalk'/>
+      <ref name='xmlListWalker'/>
       <ref name='xmlMemFree'/>
       <ref name='xmlMemRealloc'/>
       <ref name='xmlNanoFTPCheckResponse'/>
@@ -9171,14 +9183,9 @@
       <ref name='docbSAXParseDoc'/>
       <ref name='entityDecl'/>
       <ref name='entityDeclSAXFunc'/>
-      <ref name='htmlParseDoc'/>
-      <ref name='htmlSAXParseDoc'/>
       <ref name='xmlBuildQName'/>
       <ref name='xmlCopyChar'/>
       <ref name='xmlCopyCharMultiByte'/>
-      <ref name='xmlHashCopier'/>
-      <ref name='xmlHashDeallocator'/>
-      <ref name='xmlHashScanner'/>
       <ref name='xmlNewDocNodeEatName'/>
       <ref name='xmlNewNodeEatName'/>
       <ref name='xmlNewNsPropEatName'/>
@@ -11103,6 +11110,7 @@
       <ref name='xmlInitializeDict'/>
     </file>
     <file name='encoding'>
+      <ref name='ICU_PIVOT_BUF_SIZE'/>
       <ref name='UTF8Toisolat1'/>
       <ref name='XML_CHAR_ENCODING_2022_JP'/>
       <ref name='XML_CHAR_ENCODING_8859_1'/>
@@ -11262,6 +11270,7 @@
       <ref name='xmlHashCreate'/>
       <ref name='xmlHashCreateDict'/>
       <ref name='xmlHashDeallocator'/>
+      <ref name='xmlHashDefaultDeallocator'/>
       <ref name='xmlHashFree'/>
       <ref name='xmlHashLookup'/>
       <ref name='xmlHashLookup2'/>
@@ -12100,6 +12109,7 @@
       <ref name='XML_ATTRIBUTE_NONE'/>
       <ref name='XML_ATTRIBUTE_NOTATION'/>
       <ref name='XML_ATTRIBUTE_REQUIRED'/>
+      <ref name='XML_BUFFER_ALLOC_BOUNDED'/>
       <ref name='XML_BUFFER_ALLOC_DOUBLEIT'/>
       <ref name='XML_BUFFER_ALLOC_EXACT'/>
       <ref name='XML_BUFFER_ALLOC_HYBRID'/>
@@ -14534,6 +14544,9 @@
         <word name='AegeanNumbers'>
           <ref name='xmlUCSIsAegeanNumbers'/>
         </word>
+        <word name='Alias'>
+          <ref name='xmlXPathEvalExpression'/>
+        </word>
         <word name='All'>
           <ref name='_xmlSchema'/>
           <ref name='_xmlSchemaType'/>
@@ -14725,8 +14738,6 @@
         </word>
         <word name='Based'>
           <ref name='xmlExpExpDerive'/>
-          <ref name='xmlXPathIsInf'/>
-          <ref name='xmlXPathIsNaN'/>
         </word>
         <word name='BasicLatin'>
           <ref name='xmlUCSIsBasicLatin'/>
@@ -14773,6 +14784,7 @@
         </word>
         <word name='Both'>
           <ref name='XML_SUBSTITUTE_BOTH'/>
+          <ref name='xmlSplitQName2'/>
           <ref name='xmlStreamPush'/>
           <ref name='xmlStreamPushAttr'/>
           <ref name='xmlStreamPushNode'/>
@@ -15501,6 +15513,7 @@
           <ref name='xmlValidNormalizeAttributeValue'/>
           <ref name='xmlValidateDocumentFinal'/>
           <ref name='xmlValidateDtdFinal'/>
+          <ref name='xmlXPathInit'/>
         </word>
         <word name='Douglas'>
           <ref name='xmlURIEscape'/>
@@ -15757,7 +15770,6 @@
         <word name='Evaluate'>
           <ref name='xmlXPathCompiledEval'/>
           <ref name='xmlXPathEval'/>
-          <ref name='xmlXPathEvalExpression'/>
           <ref name='xmlXPathEvalPredicate'/>
           <ref name='xmlXPathEvaluatePredicateResult'/>
           <ref name='xmlXPathNodeEval'/>
@@ -16864,9 +16876,6 @@
         <word name='Not'>
           <ref name='_xmlSchemaElement'/>
         </word>
-        <word name='NotaNumber'>
-          <ref name='xmlXPathIsNaN'/>
-        </word>
         <word name='Notation'>
           <ref name='_xmlNotation'/>
           <ref name='xmlParseEntityDecl'/>
@@ -16935,6 +16944,7 @@
           <ref name='_xmlSchemaElement'/>
           <ref name='_xmlSchemaFacet'/>
           <ref name='_xmlSchemaType'/>
+          <ref name='xmlXPtrRangeToFunction'/>
         </word>
         <word name='Obtain'>
           <ref name='xmlTextReaderLocatorBaseURI'/>
@@ -16975,6 +16985,7 @@
           <ref name='xmlXPathContextSetCache'/>
         </word>
         <word name='Otherwise'>
+          <ref name='xmlSplitQName2'/>
           <ref name='xmlStreamPush'/>
           <ref name='xmlStreamPushAttr'/>
         </word>
@@ -17228,8 +17239,6 @@
           <ref name='xmlTextReaderGetAttributeNo'/>
           <ref name='xmlTextReaderGetAttributeNs'/>
           <ref name='xmlTextReaderValue'/>
-          <ref name='xmlXPathIsInf'/>
-          <ref name='xmlXPathIsNaN'/>
         </word>
         <word name='Proxy'>
           <ref name='xmlNanoFTPScanProxy'/>
@@ -21298,10 +21307,6 @@
         <word name='cshema'>
           <ref name='XML_SCHEMAS_FINAL_DEFAULT_LIST'/>
         </word>
-        <word name='ctrio'>
-          <ref name='xmlXPathIsInf'/>
-          <ref name='xmlXPathIsNaN'/>
-        </word>
         <word name='ctxt'>
           <ref name='xmlExpNewOr'/>
           <ref name='xmlExpNewRange'/>
@@ -21762,8 +21767,6 @@
           <ref name='xmlInputMatchCallback'/>
           <ref name='xmlKeepBlanksDefault'/>
           <ref name='xmlOutputMatchCallback'/>
-          <ref name='xmlXPathIsInf'/>
-          <ref name='xmlXPathIsNaN'/>
         </word>
         <word name='detected'>
           <ref name='CHECK_ERROR'/>
@@ -21819,38 +21822,6 @@
         <word name='dictionaries'>
           <ref name='XML_MAX_NAME_LENGTH'/>
         </word>
-        <word name='dictionary'>
-          <ref name='XML_MAX_DICTIONARY_LIMIT'/>
-          <ref name='_xmlParserCtxt'/>
-          <ref name='_xmlXPathContext'/>
-          <ref name='xmlDictCleanup'/>
-          <ref name='xmlDictCreate'/>
-          <ref name='xmlDictCreateSub'/>
-          <ref name='xmlDictGetUsage'/>
-          <ref name='xmlDictReference'/>
-          <ref name='xmlDictSetLimit'/>
-          <ref name='xmlHashCreateDict'/>
-          <ref name='xmlInitializeDict'/>
-          <ref name='xmlPatterncompile'/>
-          <ref name='xmlStreamPush'/>
-          <ref name='xmlStreamPushAttr'/>
-          <ref name='xmlStreamPushNode'/>
-        </word>
-        <word name='dictionnary'>
-          <ref name='_xmlParserCtxt'/>
-          <ref name='xmlDictCreate'/>
-          <ref name='xmlDictCreateSub'/>
-          <ref name='xmlDictExists'/>
-          <ref name='xmlDictFree'/>
-          <ref name='xmlDictGetUsage'/>
-          <ref name='xmlDictLookup'/>
-          <ref name='xmlDictOwns'/>
-          <ref name='xmlDictQLookup'/>
-          <ref name='xmlDictReference'/>
-          <ref name='xmlDictSetLimit'/>
-          <ref name='xmlDictSize'/>
-          <ref name='xmlExpNewCtxt'/>
-        </word>
         <word name='did'>
           <ref name='XML_SCHEMAS_TYPE_BLOCK_DEFAULT'/>
           <ref name='xmlTextReaderGetRemainder'/>
@@ -22054,6 +22025,7 @@
           <ref name='xmlNodeListGetRawString'/>
           <ref name='xmlPatternMatch'/>
           <ref name='xmlRemoveProp'/>
+          <ref name='xmlSplitQName2'/>
           <ref name='xmlUTF8Strlen'/>
           <ref name='xmlValidateRoot'/>
           <ref name='xmlXPathLeading'/>
@@ -22486,6 +22458,7 @@
           <ref name='xmlCatalogAdd'/>
           <ref name='xmlCatalogAddLocal'/>
           <ref name='xmlCatalogRemove'/>
+          <ref name='xmlHashDefaultDeallocator'/>
           <ref name='xmlHashUpdateEntry'/>
           <ref name='xmlHashUpdateEntry2'/>
           <ref name='xmlHashUpdateEntry3'/>
@@ -22638,7 +22611,6 @@
           <ref name='xmlNodeGetBase'/>
           <ref name='xmlParseBalancedChunkMemoryRecover'/>
           <ref name='xmlTextWriterFullEndElement'/>
-          <ref name='xmlXPathRoundFunction'/>
         </word>
         <word name='event'>
           <ref name='xmlSchemaSAXPlug'/>
@@ -23421,9 +23393,6 @@
         <word name='gYearMonth'>
           <ref name='xmlSchemaGetCanonValue'/>
         </word>
-        <word name='garanteed'>
-          <ref name='xmlUTF8Strsize'/>
-        </word>
         <word name='garbage'>
           <ref name='xmlGcMemGet'/>
           <ref name='xmlGcMemSetup'/>
@@ -23625,6 +23594,7 @@
         <word name='guaranteed'>
           <ref name='xmlModuleOpen'/>
           <ref name='xmlModuleSymbol'/>
+          <ref name='xmlUTF8Strsize'/>
         </word>
         <word name='guess'>
           <ref name='xmlCleanupParser'/>
@@ -23646,6 +23616,7 @@
           <ref name='xmlParseElementContentDecl'/>
           <ref name='xmlParsePEReference'/>
           <ref name='xmlParserHandlePEReference'/>
+          <ref name='xmlXPtrRangeToFunction'/>
         </word>
         <word name='handlers'>
           <ref name='xlinkSetDefaultHandler'/>
@@ -23875,8 +23846,6 @@
           <ref name='xmlSAX2GetSystemId'/>
           <ref name='xmlSchemaGetPredefinedType'/>
           <ref name='xmlTextReaderNodeType'/>
-          <ref name='xmlXPathIsInf'/>
-          <ref name='xmlXPathIsNaN'/>
         </word>
         <word name='human-readable'>
           <ref name='_xmlError'/>
@@ -24222,6 +24191,7 @@
         <word name='infinity'>
           <ref name='xmlXPathCeilingFunction'/>
           <ref name='xmlXPathFloorFunction'/>
+          <ref name='xmlXPathRoundFunction'/>
           <ref name='xmlXPathStringFunction'/>
         </word>
         <word name='info'>
@@ -24568,15 +24538,9 @@
         <word name='invited'>
           <ref name='xmlValidGetValidElements'/>
         </word>
-        <word name='isinf'>
-          <ref name='xmlXPathIsInf'/>
-        </word>
         <word name='isn'>
           <ref name='xmlRegisterCharEncodingHandler'/>
         </word>
-        <word name='isnan'>
-          <ref name='xmlXPathIsNaN'/>
-        </word>
         <word name='issue'>
           <ref name='xmlEncodeEntities'/>
         </word>
@@ -24673,6 +24637,7 @@
           <ref name='htmlIsAutoClosed'/>
           <ref name='htmlParseElement'/>
           <ref name='xmlKeepBlanksDefault'/>
+          <ref name='xmlXPathInit'/>
           <ref name='xmlXPathOrderDocElems'/>
         </word>
         <word name='keyword'>
@@ -25089,6 +25054,7 @@
           <ref name='xmlSetFeature'/>
           <ref name='xmlUTF8Strloc'/>
           <ref name='xmlXPtrLocationSetAdd'/>
+          <ref name='xmlXPtrRangeToFunction'/>
         </word>
         <word name='locations'>
           <ref name='_xmlLocationSet'/>
@@ -25764,7 +25730,6 @@
           <ref name='xmlSchemaSAXPlug'/>
           <ref name='xmlSetBufferAllocationScheme'/>
           <ref name='xmlShellPwd'/>
-          <ref name='xmlStrncat'/>
           <ref name='xmlTextReaderCurrentDoc'/>
           <ref name='xmlValidCtxtNormalizeAttributeValue'/>
           <ref name='xmlValidNormalizeAttributeValue'/>
@@ -25821,10 +25786,6 @@
           <ref name='xmlParseElementChildrenContentDecl'/>
           <ref name='xmlParseMarkupDecl'/>
         </word>
-        <word name='net'>
-          <ref name='xmlXPathIsInf'/>
-          <ref name='xmlXPathIsNaN'/>
-        </word>
         <word name='network'>
           <ref name='htmlCtxtReadFile'/>
           <ref name='htmlReadFile'/>
@@ -25912,6 +25873,7 @@
         <word name='non-negative'>
           <ref name='xmlC14NDocSaveTo'/>
           <ref name='xmlC14NExecute'/>
+          <ref name='xmlTextReaderPreservePattern'/>
         </word>
         <word name='non-normative'>
           <ref name='xmlDetectCharEncoding'/>
@@ -26010,6 +25972,9 @@
           <ref name='xmlCheckUTF8'/>
           <ref name='xmlLoadExternalEntity'/>
         </word>
+        <word name='nothing'>
+          <ref name='xmlXPathInit'/>
+        </word>
         <word name='notice'>
           <ref name='xmlCleanupParser'/>
           <ref name='xmlCleanupThreads'/>
@@ -26119,7 +26084,13 @@
           <ref name='xmlParseComment'/>
           <ref name='xmlParseMarkupDecl'/>
         </word>
-        <word name='occured'>
+        <word name='occurences'>
+          <ref name='xmlAutomataNewCountTrans'/>
+          <ref name='xmlAutomataNewCountTrans2'/>
+          <ref name='xmlAutomataNewOnceTrans'/>
+          <ref name='xmlAutomataNewOnceTrans2'/>
+        </word>
+        <word name='occurred'>
           <ref name='xmlCtxtGetLastError'/>
           <ref name='xmlDictCreate'/>
           <ref name='xmlDictCreateSub'/>
@@ -26128,17 +26099,9 @@
           <ref name='xmlHashCreateDict'/>
           <ref name='xmlListRemoveFirst'/>
           <ref name='xmlListRemoveLast'/>
-          <ref name='xmlTextReaderErrorFunc'/>
-        </word>
-        <word name='occurences'>
-          <ref name='xmlAutomataNewCountTrans'/>
-          <ref name='xmlAutomataNewCountTrans2'/>
-          <ref name='xmlAutomataNewOnceTrans'/>
-          <ref name='xmlAutomataNewOnceTrans2'/>
-        </word>
-        <word name='occurred'>
           <ref name='xmlMemStrdupLoc'/>
           <ref name='xmlMemoryStrdup'/>
+          <ref name='xmlTextReaderErrorFunc'/>
         </word>
         <word name='occurrence'>
           <ref name='xmlStrcasestr'/>
@@ -26813,10 +26776,6 @@
           <ref name='xmlModuleOpen'/>
           <ref name='xmlModuleSymbol'/>
         </word>
-        <word name='portable'>
-          <ref name='xmlXPathIsInf'/>
-          <ref name='xmlXPathIsNaN'/>
-        </word>
         <word name='pos'>
           <ref name='xmlUTF8Strsub'/>
         </word>
@@ -27200,10 +27159,6 @@
         <word name='prohibited'>
           <ref name='XML_SCHEMAS_ATTR_USE_PROHIBITED'/>
         </word>
-        <word name='projects'>
-          <ref name='xmlXPathIsInf'/>
-          <ref name='xmlXPathIsNaN'/>
-        </word>
         <word name='prolog'>
           <ref name='xmlParseDocument'/>
         </word>
@@ -27498,6 +27453,9 @@
           <ref name='INPUT_CHUNK'/>
           <ref name='xmlAutomataCompile'/>
         </word>
+        <word name='real'>
+          <ref name='xmlXPtrRangeToFunction'/>
+        </word>
         <word name='realloc'>
           <ref name='_xmlBuffer'/>
           <ref name='xmlGcMemGet'/>
@@ -27510,6 +27468,7 @@
         </word>
         <word name='reallocated'>
           <ref name='xmlReallocFunc'/>
+          <ref name='xmlStrcat'/>
           <ref name='xmlStrncat'/>
         </word>
         <word name='really'>
@@ -28933,10 +28892,6 @@
           <ref name='xmlDOMWrapAdoptNode'/>
           <ref name='xmlDOMWrapCloneNode'/>
         </word>
-        <word name='sourceforge'>
-          <ref name='xmlXPathIsInf'/>
-          <ref name='xmlXPathIsNaN'/>
-        </word>
         <word name='spaces'>
           <ref name='_xmlParserCtxt'/>
           <ref name='htmlDocContentDumpFormatOutput'/>
@@ -28999,6 +28954,7 @@
           <ref name='xmlNodeSetContent'/>
           <ref name='xmlNodeSetContentLen'/>
           <ref name='xmlTextWriterWriteRawLen'/>
+          <ref name='xmlXPtrRangeToFunction'/>
         </word>
         <word name='specialized'>
           <ref name='_xmlDOMWrapCtxt'/>
@@ -29184,6 +29140,7 @@
           <ref name='xmlValidNormalizeAttributeValue'/>
           <ref name='xmlValidateDocumentFinal'/>
           <ref name='xmlValidateDtdFinal'/>
+          <ref name='xmlXPtrRangeToFunction'/>
         </word>
         <word name='steps'>
           <ref name='xmlNormalizeURIPath'/>
@@ -30101,8 +30058,6 @@
         <word name='trio'>
           <ref name='WITHOUT_TRIO'/>
           <ref name='WITH_TRIO'/>
-          <ref name='xmlXPathIsInf'/>
-          <ref name='xmlXPathIsNaN'/>
         </word>
         <word name='troubles'>
           <ref name='_xmlParserInput'/>
@@ -30378,6 +30333,7 @@
         </word>
         <word name='unsigned'>
           <ref name='c'/>
+          <ref name='xmlMallocAtomicLoc'/>
           <ref name='xmlURIUnescapeString'/>
         </word>
         <word name='unsupported'>
@@ -31340,6 +31296,7 @@
           <ref name='xmlGetNoNsProp'/>
           <ref name='xmlGetNsProp'/>
           <ref name='xmlGetProp'/>
+          <ref name='xmlHashDefaultDeallocator'/>
           <ref name='xmlNodeGetBase'/>
           <ref name='xmlNodeGetContent'/>
           <ref name='xmlNodeGetLang'/>
@@ -31971,6 +31928,9 @@
         <word name='xmlXPathError'>
           <ref name='err'/>
         </word>
+        <word name='xmlXPathEval'>
+          <ref name='xmlXPathEvalExpression'/>
+        </word>
         <word name='xmlXPathEvalPredicate'>
           <ref name='xmlXPtrEvalRangePredicate'/>
         </word>
@@ -32045,6 +32005,7 @@
         <word name='xpath'>
           <ref name='xmlShellPrintXPathError'/>
           <ref name='xmlShellPrintXPathResult'/>
+          <ref name='xmlXPtrRangeToFunction'/>
         </word>
         <word name='xpointer'>
           <ref name='XINCLUDE_PARSE_XPOINTER'/>
diff --git a/doc/libxml2.xsa b/doc/libxml2.xsa
index da61d57..33f3848 100644
--- a/doc/libxml2.xsa
+++ b/doc/libxml2.xsa
@@ -8,95 +8,45 @@
   </vendor>
   <product id="libxml2">
     <name>libxml2</name>
-    <version>2.9.1</version>
-    <last-release> Apr 19 2013</last-release>
+    <version>2.9.7</version>
+    <last-release> Nov 02 2017</last-release>
     <info-url>http://xmlsoft.org/</info-url>
-    <changes>   -  Features:
-    Support for Python3 (Daniel Veillard),
-    Add xmlXPathSetContextNode and xmlXPathNodeEval (Alex Bligh)
+    <changes>   - Documentation:
+  xmlcatalog: refresh man page wrt. quering system catalog easily (Jan Pokorný)
   
-   -  Documentation:
-    Add documentation for xmllint --xpath (Daniel Veillard),
-    Fix the URL of the SAX documentation from James (Daniel Veillard),
-    Fix spelling of "length". (Michael Wood)
+   - Portability:
+  Fix deprecated Travis compiler flag (Nick Wellnhofer),
+  Add declaration for DllMain (J. Peter Mugaas),
+  Fix preprocessor conditional in threads.h (J. Peter Mugaas),
+  Fix pointer comparison warnings on 64-bit Windows (J. Peter Mugaas),
+  Fix macro redefinition warning (J. Peter Mugaas),
+  Default to native threads on MinGW-w64 (Nick Wellnhofer),
+  Simplify Windows IO functions (Nick Wellnhofer),
+  Fix runtest on Windows (Nick Wellnhofer),
+  socklen_t is always int on Windows (Nick Wellnhofer),
+  Don't redefine socket error codes on Windows (Nick Wellnhofer),
+  Fix pointer/int cast warnings on 64-bit Windows (Nick Wellnhofer),
+  Fix Windows compiler warnings in xmlCanonicPath (Nick Wellnhofer)
   
-   -  Portability:
-    Fix python bindings with versions older than 2.7 (Daniel Veillard),
-    rebuild docs:Makefile.am (Roumen Petrov),
-    elfgcchack.h after rebuild in doc (Roumen Petrov),
-    elfgcchack for buf module (Roumen Petrov),
-    Fix a uneeded and wrong extra link parameter (Daniel Veillard),
-    Few cleanup patches for Windows (Denis Pauk),
-    Fix rpmbuild --nocheck (Mark Salter),
-    Fix for win32/configure.js and WITH_THREAD_ALLOC (Daniel Richard),
-    Fix Broken multi-arch support in xml2-config (Daniel Veillard),
-    Fix a portability issue for GCC &lt; 3.4.0 (Daniel Veillard),
-    Windows build fixes (Daniel Richard),
-    Fix a thread portability problem (Friedrich Haubensak),
-    Downgrade autoconf requirement to 2.63 (Daniel Veillard)
+   - Bug Fixes:
+  xmlcatalog: restore ability to query system catalog easily (Jan Pokorný),
+  Fix comparison of nodesets to strings (Nick Wellnhofer)
   
-   -  Bug Fixes:
-    Fix a linking error for python bindings (Daniel Veillard),
-    Fix a couple of return without value (Jüri Aedla),
-    Improve the hashing functions (Daniel Franke),
-    Improve handling of xmlStopParser() (Daniel Veillard),
-    Remove risk of lockup in dictionary initialization (Daniel Veillard),
-    Activate detection of encoding in external subset (Daniel Veillard),
-    Fix an output buffer flushing conversion bug (Mikhail Titov),
-    Fix an old bug in xmlSchemaValidateOneElement (Csaba László),
-    Fix configure cannot remove messages (Gilles Espinasse),
-    fix schema validation in combination with xsi:nil (Daniel Veillard),
-    xmlCtxtReadFile doesn't work with literal IPv6 URLs (Steve Wolf),
-    Fix a few problems with setEntityLoader (Alexey Neyman),
-    Detect excessive entities expansion upon replacement (Daniel Veillard),
-    Fix the flushing out of raw buffers on encoding conversions (Daniel,
-Veillard),
-    Fix some buffer conversion issues (Daniel Veillard),
-    When calling xmlNodeDump make sure we grow the buffer quickly (Daniel,
-Veillard),
-    Fix an error in the progressive DTD parsing code (Dan Winship),
-    xmllint should not load DTD by default when using the reader (Daniel,
-Veillard),
-    Try IBM-037 when looking for EBCDIC handlers (Petr Sumbera),
-    Fix potential out of bound access (Daniel Veillard),
-    Fix large parse of file from memory (Daniel Veillard),
-    Fix a bug in the nsclean option of the parser (Daniel Veillard),
-    Fix a regression in 2.9.0 breaking validation while streaming (Daniel,
-Veillard),
-    Remove potential calls to exit() (Daniel Veillard)
-  
-   -  Improvements:
-    Regenerated API, and testapi, rebuild documentation (Daniel Veillard),
-    Fix tree iterators broken by 2to3 script (Daniel Veillard),
-    update all tests for Python3 and Python2 (Daniel Veillard),
-    A few more fixes for python 3 affecting libxml2.py (Daniel Veillard),
-    Fix compilation on Python3 (Daniel Veillard),
-    Converting apibuild.py to python3 (Daniel Veillard),
-    First pass at starting porting to python3 (Daniel Veillard),
-    updated configure.in for python3 (Daniel Veillard),
-    Add support for xpathRegisterVariable in Python (Shaun McCance),
-    Added a regression tests from bug 694228 data (Daniel Veillard),
-    Cache presence of '&lt;' in entities content (Daniel Veillard),
-    Avoid extra processing on entities (Daniel Veillard),
-    Python binding for xmlRegisterInputCallback (Alexey Neyman),
-    Python bindings: DOM casts everything to xmlNode (Alexey Neyman),
-    Define LIBXML_THREAD_ALLOC_ENABLED via xmlversion.h (Tim Starling),
-    Adding streaming validation to runtest checks (Daniel Veillard),
-    Add a --pushsmall option to xmllint (Daniel Veillard)
-  
-   -  Cleanups:
-    Switched comment in file to UTF-8 encoding (Daniel Veillard),
-    Extend gitignore (Daniel Veillard),
-    Silent the new python test on input (Alexey Neyman),
-    Cleanup of a duplicate test (Daniel Veillard),
-    Cleanup on duplicate test expressions (Daniel Veillard),
-    Fix compiler warning after 153cf15905cf4ec080612ada6703757d10caba1e (Patrick,
-Gansterer),
-    Spec cleanups and a fix for multiarch support (Daniel Veillard),
-    Silence a clang warning (Daniel Veillard),
-    Cleanup the Copyright to be pure MIT Licence wording (Daniel Veillard),
-    rand_seed should be static in dict.c (Wouter Van Rooy),
-    Fix typos in parser comments (Jan Pokorný)
+   - Improvements:
+  Add Makefile rules to rebuild HTML man pages (Nick Wellnhofer),
+  Fix mixed decls and code in timsort.h (Nick Wellnhofer),
+  Rework handling of return values in thread tests (Nick Wellnhofer),
+  Fix unused variable warnings in testrecurse (Nick Wellnhofer),
+  Fix -Wimplicit-fallthrough warnings (J. Peter Mugaas),
+  Upgrade timsort.h to latest revision (Nick Wellnhofer),
+  Increase warning level to /W3 under MSVC (Nick Wellnhofer),
+  Fix a couple of warnings in dict.c and threads.c (Nick Wellnhofer),
+  Update .gitignore for Windows (Nick Wellnhofer),
+  Fix unused variable warnings in nanohttp.c (Nick Wellnhofer),
+  Fix the Windows header mess (Nick Wellnhofer),
+  Don't include winsock2.h in xmllint.c (Nick Wellnhofer),
+  Remove generated file python/setup.py from version control (Nick Wellnhofer),
+  Use __linux__ macro in generated code (Nick Wellnhofer)
   
 
 </changes>
diff --git a/doc/news.html b/doc/news.html
index 5c03ba3..65839ad 100644
--- a/doc/news.html
+++ b/doc/news.html
@@ -8,7 +8,398 @@
 H3 {font-family: Verdana,Arial,Helvetica}
 A:link, A:visited, A:active { text-decoration: underline }
 </style><title>Releases</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>Releases</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation &amp; DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>The <a href="ChangeLog.html">change log</a> describes the recents commits
-to the <a href="http://git.gnome.org/browse/libxml2/">GIT</a> code base.</p><p>Here is the list of public releases:</p><h3>2.9.2: Oct 16 2014</h3><ul>
+to the <a href="http://git.gnome.org/browse/libxml2/">GIT</a> code base.</p><p>Here is the list of public releases:</p><h3>v2.9.8: Mar 05 2018</h3><ul>
+  <li>Portability:<br />
+  python: remove single use of _PyVerify_fd (Patrick Welche),<br />
+  Build more test executables on Windows/MSVC (Nick Wellnhofer),<br />
+  Stop including ansidecl.h (Nick Wellnhofer),<br />
+  Fix libz and liblzma detection (Nick Wellnhofer),<br />
+  Revert "Compile testapi with -Wno-unused-function" (Nick Wellnhofer)<br />
+  </li>
+
+  <li>Bug Fixes:<br />
+  Fix xmlParserEntityCheck (Nick Wellnhofer),<br />
+  Halt parser in case of encoding error (Nick Wellnhofer),<br />
+  Clear entity content in case of errors (Nick Wellnhofer),<br />
+  Change calls to xmlCharEncInput to set flush false when not final call. Having flush incorrectly set to true causes errors for ICU. (Joel Hockey),<br />
+  Fix buffer over-read in xmlParseNCNameComplex (Nick Wellnhofer),<br />
+  Fix ICU library filenames on Windows/MSVC (Nick Wellnhofer),<br />
+  Fix xmlXPathIsNaN broken by recent commit (Nick Wellnhofer),<br />
+  Fix -Wenum-compare warnings (Nick Wellnhofer),<br />
+  Fix callback signature in testapi.c (Nick Wellnhofer),<br />
+  Fix unused parameter warning without ICU (Nick Wellnhofer),<br />
+  Fix IO callback signatures (Nick Wellnhofer),<br />
+  Fix misc callback signatures (Nick Wellnhofer),<br />
+  Fix list callback signatures (Nick Wellnhofer),<br />
+  Fix hash callback signatures (Nick Wellnhofer),<br />
+  Refactor name and type signature for xmlNop (Vlad Tsyrklevich),<br />
+  Fixed ICU to set flush correctly and provide pivot buffer. (Joel Hockey),<br />
+  Skip EBCDIC tests if EBCDIC isn't supported (Nick Wellnhofer)<br />
+  </li>
+
+  <li>Improvements:<br />
+  Disable pointer-overflow UBSan checks under Travis (Nick Wellnhofer),<br />
+  Improve handling of context input_id (Daniel Veillard),<br />
+  Add resource file to Windows DLL (ccpaging),<br />
+  Run Travis tests with -Werror (Nick Wellnhofer),<br />
+  Build with "-Wall -Wextra" (Nick Wellnhofer),<br />
+  Fix -Wtautological-pointer-compare warnings (Nick Wellnhofer),<br />
+  Remove unused AC_CHECKs (Nick Wellnhofer),<br />
+  Update information about contributing (Nick Wellnhofer),<br />
+  Fix -Wmisleading-indentation warnings (Nick Wellnhofer),<br />
+  Don't touch CFLAGS in configure.ac (Nick Wellnhofer),<br />
+  Ignore function pointer cast warnings (Nick Wellnhofer),<br />
+  Simplify XPath NaN, inf and -0 handling (Nick Wellnhofer),<br />
+  Introduce xmlPosixStrdup and update xmlMemStrdup (Nick Wellnhofer),<br />
+  Add test for ICU flush and pivot buffer (Nick Wellnhofer),<br />
+  Compile testapi with -Wno-unused-function (Nick Wellnhofer)<br />
+  </li>
+</ul><h3>2.9.7: Nov 02 2017</h3><ul>
+  <li>Documentation:<br />
+  xmlcatalog: refresh man page wrt. quering system catalog easily (Jan Pokorný)<br />
+  </li>
+
+  <li>Portability:<br />
+  Fix deprecated Travis compiler flag (Nick Wellnhofer),<br />
+  Add declaration for DllMain (J. Peter Mugaas),<br />
+  Fix preprocessor conditional in threads.h (J. Peter Mugaas),<br />
+  Fix pointer comparison warnings on 64-bit Windows (J. Peter Mugaas),<br />
+  Fix macro redefinition warning (J. Peter Mugaas),<br />
+  Default to native threads on MinGW-w64 (Nick Wellnhofer),<br />
+  Simplify Windows IO functions (Nick Wellnhofer),<br />
+  Fix runtest on Windows (Nick Wellnhofer),<br />
+  socklen_t is always int on Windows (Nick Wellnhofer),<br />
+  Don't redefine socket error codes on Windows (Nick Wellnhofer),<br />
+  Fix pointer/int cast warnings on 64-bit Windows (Nick Wellnhofer),<br />
+  Fix Windows compiler warnings in xmlCanonicPath (Nick Wellnhofer)<br />
+  </li>
+
+  <li>Bug Fixes:<br />
+  xmlcatalog: restore ability to query system catalog easily (Jan Pokorný),<br />
+  Fix comparison of nodesets to strings (Nick Wellnhofer)<br />
+  </li>
+
+  <li>Improvements:<br />
+  Add Makefile rules to rebuild HTML man pages (Nick Wellnhofer),<br />
+  Fix mixed decls and code in timsort.h (Nick Wellnhofer),<br />
+  Rework handling of return values in thread tests (Nick Wellnhofer),<br />
+  Fix unused variable warnings in testrecurse (Nick Wellnhofer),<br />
+  Fix -Wimplicit-fallthrough warnings (J. Peter Mugaas),<br />
+  Upgrade timsort.h to latest revision (Nick Wellnhofer),<br />
+  Increase warning level to /W3 under MSVC (Nick Wellnhofer),<br />
+  Fix a couple of warnings in dict.c and threads.c (Nick Wellnhofer),<br />
+  Update .gitignore for Windows (Nick Wellnhofer),<br />
+  Fix unused variable warnings in nanohttp.c (Nick Wellnhofer),<br />
+  Fix the Windows header mess (Nick Wellnhofer),<br />
+  Don't include winsock2.h in xmllint.c (Nick Wellnhofer),<br />
+  Remove generated file python/setup.py from version control (Nick Wellnhofer),<br />
+  Use __linux__ macro in generated code (Nick Wellnhofer)<br />
+  </li>
+
+</ul><h3>v2.9.6: Oct 06 2017</h3><ul>
+  <li>Portability:<br />
+  Change preprocessor OS tests to __linux__ (Nick Wellnhofer)<br />
+  </li>
+
+  <li>Bug Fixes:<br />
+  Fix XPath stack frame logic (Nick Wellnhofer),<br />
+  Report undefined XPath variable error message (Nick Wellnhofer),<br />
+  Fix regression with librsvg (Nick Wellnhofer),<br />
+  Handle more invalid entity values in recovery mode (Nick Wellnhofer),<br />
+  Fix structured validation errors (Nick Wellnhofer),<br />
+  Fix memory leak in LZMA decompressor (Nick Wellnhofer),<br />
+  Set memory limit for LZMA decompression (Nick Wellnhofer),<br />
+  Handle illegal entity values in recovery mode (Nick Wellnhofer),<br />
+  Fix debug dump of streaming XPath expressions (Nick Wellnhofer),<br />
+  Fix memory leak in nanoftp (Nick Wellnhofer),<br />
+  Fix memory leaks in SAX1 parser (Nick Wellnhofer)<br />
+  </li>
+</ul><h3>v2.9.5: Sep 04 2017</h3><ul>
+
+  <li>Security:<br />
+  Detect infinite recursion in parameter entities (Nick Wellnhofer),<br />
+  Fix handling of parameter-entity references (Nick Wellnhofer),<br />
+  Disallow namespace nodes in XPointer ranges (Nick Wellnhofer),<br />
+  Fix XPointer paths beginning with range-to (Nick Wellnhofer)<br />
+  </li>
+
+  <li>Documentation:<br />
+  Documentation fixes (Nick Wellnhofer),<br />
+  Spelling and grammar fixes (Nick Wellnhofer)<br />
+  </li>
+
+  <li>Portability:<br />
+  Adding README.zOS to list of extra files for the release (Daniel Veillard),<br />
+  Description of work needed to compile on zOS (Stéphane Michaut),<br />
+  Porting libxml2 on zOS encoding of code (Stéphane Michaut),<br />
+  small changes for OS/400 (Patrick Monnerat),<br />
+  relaxng.c, xmlschemas.c: Fix build on pre-C99 compilers (Chun-wei Fan)<br />
+  </li>
+
+  <li>Bug Fixes:<br />
+  Problem resolving relative URIs (Daniel Veillard),<br />
+  Fix unwanted warnings when switching encodings (Nick Wellnhofer),<br />
+  Fix signature of xmlSchemaAugmentImportedIDC (Daniel Veillard),<br />
+  Heap-buffer-overflow read of size 1 in xmlFAParsePosCharGroup (David Kilzer),<br />
+  Fix NULL pointer deref in xmlFAParseCharClassEsc (Nick Wellnhofer),<br />
+  Fix infinite loops with push parser in recovery mode (Nick Wellnhofer),<br />
+  Send xmllint usage error to stderr (Nick Wellnhofer),<br />
+  Fix NULL deref in xmlParseExternalEntityPrivate (Nick Wellnhofer),<br />
+  Make sure not to call IS_BLANK_CH when parsing the DTD (Nick Wellnhofer),<br />
+  Fix xmlHaltParser (Nick Wellnhofer),<br />
+  Fix pathological performance when outputting charrefs (Nick Wellnhofer),<br />
+  Fix invalid-source-encoding warnings in testWriter.c (Nick Wellnhofer),<br />
+  Fix duplicate SAX callbacks for entity content (David Kilzer),<br />
+  Treat URIs with scheme as absolute in C14N (Nick Wellnhofer),<br />
+  Fix copy-paste errors in error messages (Nick Wellnhofer),<br />
+  Fix sanity check in htmlParseNameComplex (Nick Wellnhofer),<br />
+  Fix potential infinite loop in xmlStringLenDecodeEntities (Nick Wellnhofer),<br />
+  Reset parser input pointers on encoding failure (Nick Wellnhofer),<br />
+  Fix memory leak in xmlParseEntityDecl error path (Nick Wellnhofer),<br />
+  Fix xmlBuildRelativeURI for URIs starting with './' (Nick Wellnhofer),<br />
+  Fix type confusion in xmlValidateOneNamespace (Nick Wellnhofer),<br />
+  Fix memory leak in xmlStringLenGetNodeList (Nick Wellnhofer),<br />
+  Fix NULL pointer deref in xmlDumpElementContent (Daniel Veillard),<br />
+  Fix memory leak in xmlBufAttrSerializeTxtContent (Nick Wellnhofer),<br />
+  Stop parser on unsupported encodings (Nick Wellnhofer),<br />
+  Check for integer overflow in memory debug code (Nick Wellnhofer),<br />
+  Fix buffer size checks in xmlSnprintfElementContent (Nick Wellnhofer),<br />
+  Avoid reparsing in xmlParseStartTag2 (Nick Wellnhofer),<br />
+  Fix undefined behavior in xmlRegExecPushStringInternal (Nick Wellnhofer),<br />
+  Check XPath exponents for overflow (Nick Wellnhofer),<br />
+  Check for overflow in xmlXPathIsPositionalPredicate (Nick Wellnhofer),<br />
+  Fix spurious error message (Nick Wellnhofer),<br />
+  Fix memory leak in xmlCanonicPath (Nick Wellnhofer),<br />
+  Fix memory leak in xmlXPathCompareNodeSetValue (Nick Wellnhofer),<br />
+  Fix memory leak in pattern error path (Nick Wellnhofer),<br />
+  Fix memory leak in parser error path (Nick Wellnhofer),<br />
+  Fix memory leaks in XPointer error paths (Nick Wellnhofer),<br />
+  Fix memory leak in xmlXPathNodeSetMergeAndClear (Nick Wellnhofer),<br />
+  Fix memory leak in XPath filter optimizations (Nick Wellnhofer),<br />
+  Fix memory leaks in XPath error paths (Nick Wellnhofer),<br />
+  Do not leak the new CData node if adding fails (David Tardon),<br />
+  Prevent unwanted external entity reference (Neel Mehta),<br />
+  Increase buffer space for port in HTTP redirect support (Daniel Veillard),<br />
+  Fix more NULL pointer derefs in xpointer.c (Nick Wellnhofer),<br />
+  Avoid function/data pointer conversion in xpath.c (Nick Wellnhofer),<br />
+  Fix format string warnings (Nick Wellnhofer),<br />
+  Disallow namespace nodes in XPointer points (Nick Wellnhofer),<br />
+  Fix comparison with root node in xmlXPathCmpNodes (Nick Wellnhofer),<br />
+  Fix attribute decoding during XML schema validation (Alex Henrie),<br />
+  Fix NULL pointer deref in XPointer range-to (Nick Wellnhofer)<br />
+  </li>
+
+  <li>Improvements:<br />
+  Updating the spec file to reflect Fedora 24 (Daniel Veillard),<br />
+  Add const in five places to move 1 KiB to .rdata (Bruce Dawson),<br />
+  Fix missing part of comment for function xmlXPathEvalExpression() (Daniel Veillard),<br />
+  Get rid of "blanks wrapper" for parameter entities (Nick Wellnhofer),<br />
+  Simplify handling of parameter entity references (Nick Wellnhofer),<br />
+  Deduplicate code in encoding.c (Nick Wellnhofer),<br />
+  Make HTML parser functions take const pointers (Nick Wellnhofer),<br />
+  Build test programs only when needed (Nick Wellnhofer),<br />
+  Fix doc/examples/index.py (Nick Wellnhofer),<br />
+  Fix compiler warnings in threads.c (Nick Wellnhofer),<br />
+  Fix empty-body warning in nanohttp.c (Nick Wellnhofer),<br />
+  Fix cast-align warnings (Nick Wellnhofer),<br />
+  Fix unused-parameter warnings (Nick Wellnhofer),<br />
+  Rework entity boundary checks (Nick Wellnhofer),<br />
+  Don't switch encoding for internal parameter entities (Nick Wellnhofer),<br />
+  Merge duplicate code paths handling PE references (Nick Wellnhofer),<br />
+  Test SAX2 callbacks with entity substitution (Nick Wellnhofer),<br />
+  Support catalog and threads tests under --without-sax1 (Nick Wellnhofer),<br />
+  Misc fixes for 'make tests' (Nick Wellnhofer),<br />
+  Initialize keepBlanks in HTML parser (Nick Wellnhofer),<br />
+  Add test cases for bug 758518 (David Kilzer),<br />
+  Fix compiler warning in htmlParseElementInternal (Nick Wellnhofer),<br />
+  Remove useless check in xmlParseAttributeListDecl (Nick Wellnhofer),<br />
+  Allow zero sized memory input buffers (Nick Wellnhofer),<br />
+  Add TODO comment in xmlSwitchEncoding (Nick Wellnhofer),<br />
+  Check for integer overflow in xmlXPathFormatNumber (Nick Wellnhofer),<br />
+  Make Travis print UBSan stacktraces (Nick Wellnhofer),<br />
+  Add .travis.yml (Nick Wellnhofer),<br />
+  Fix expected error output in Python tests (Nick Wellnhofer),<br />
+  Simplify control flow in xmlParseStartTag2 (Nick Wellnhofer),<br />
+  Disable LeakSanitizer when running API tests (Nick Wellnhofer),<br />
+  Avoid out-of-bound array access in API tests (Nick Wellnhofer),<br />
+  Avoid spurious UBSan errors in parser.c (Nick Wellnhofer),<br />
+  Parse small XPath numbers more accurately (Nick Wellnhofer),<br />
+  Rework XPath rounding functions (Nick Wellnhofer),<br />
+  Fix white space in test output (Nick Wellnhofer),<br />
+  Fix axis traversal from attribute and namespace nodes (Nick Wellnhofer),<br />
+  Check for trailing characters in XPath expressions earlier (Nick Wellnhofer),<br />
+  Rework final handling of XPath results (Nick Wellnhofer),<br />
+  Make xmlXPathEvalExpression call xmlXPathEval (Nick Wellnhofer),<br />
+  Remove unused variables (Nick Wellnhofer),<br />
+  Don't print generic error messages in XPath tests (Nick Wellnhofer)<br />
+  </li>
+
+  <li>Cleanups:<br />
+  Fix a couple of misleading indentation errors (Daniel Veillard),<br />
+  Remove unnecessary calls to xmlPopInput (Nick Wellnhofer)<br />
+  </li>
+</ul><h3>2.9.4: May 23 2016</h3><ul>
+  <li>Security:<br />
+  More format string warnings with possible format string vulnerability (David Kilzer),<br />
+  Avoid building recursive entities (Daniel Veillard),<br />
+  Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),<br />
+  Heap-based buffer-underreads due to xmlParseName (David Kilzer),<br />
+  Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),<br />
+  Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),<br />
+  Fix some format string warnings with possible format string vulnerability (David Kilzer),<br />
+  Detect change of encoding when parsing HTML names (Hugh Davenport),<br />
+  Fix inappropriate fetch of entities content (Daniel Veillard),<br />
+  Bug 759398: Heap use-after-free in xmlDictComputeFastKey &lt;https://bugzilla.gnome.org/show_bug.cgi?id=759398&gt; (Pranjal Jumde),<br />
+  Bug 758605: Heap-based buffer overread in xmlDictAddString &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758605&gt; (Pranjal Jumde),<br />
+  Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758588&gt; (David Kilzer),<br />
+  Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup &lt;https://bugzilla.gnome.org/show_bug.cgi?id=757711&gt; (Pranjal Jumde),<br />
+  Add missing increments of recursion depth counter to XML parser. (Peter Simons)<br />
+  </li>
+
+  <li>Documentation:<br />
+  Fix typo: s{ ec -&gt; cr }cipt (Jan Pokorný),<br />
+  Fix typos: dictio{ nn -&gt; n }ar{y,ies} (Jan Pokorný),<br />
+  Fix typos: PATH_{ SEAPARATOR -&gt; SEPARATOR } (Jan Pokorný),<br />
+  Correct a typo. (Shlomi Fish)<br />
+  </li>
+
+  <li>Portability:<br />
+  Correct the usage of LDFLAGS (Mattias Hansson),<br />
+  Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),<br />
+  libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),<br />
+  Fix apibuild for a recently added construct (Daniel Veillard),<br />
+  Use pkg-config to locate zlib when possible (Stewart Brodie),<br />
+  Use pkg-config to locate ICU when possible (Stewart Brodie),<br />
+  Portability to non C99 compliant compilers (Patrick Monnerat),<br />
+  dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),<br />
+  os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),<br />
+  os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),<br />
+  os400: implement CL command XMLCATALOG. (Patrick Monnerat),<br />
+  os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),<br />
+  os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),<br />
+  os400: implement CL command XMLLINT. (Patrick Monnerat),<br />
+  os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),<br />
+  os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),<br />
+  os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),<br />
+  os400: use like() for double type. (Patrick Monnerat),<br />
+  os400: use like() for int type. (Patrick Monnerat),<br />
+  os400: use like() for unsigned int type. (Patrick Monnerat),<br />
+  os400: use like() for enum types. (Patrick Monnerat),<br />
+  Add xz to xml2-config --libs output (Baruch Siach),<br />
+  Bug 760190: configure.ac should be able to build --with-icu without icu-config tool &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760190&gt; (David Kilzer),<br />
+  win32\VC10\config.h and VS 2015 (Bruce Dawson),<br />
+  Add configure maintainer mode (orzen)<br />
+  </li>
+
+  <li>Bug Fixes:<br />
+  Avoid an out of bound access when serializing malformed strings (Daniel Veillard),<br />
+  Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),<br />
+  Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),<br />
+  Bug 763071: heap-buffer-overflow in xmlStrncat &lt;https://bugzilla.gnome.org/show_bug.cgi?id=763071&gt; (Pranjal Jumde),<br />
+  Integer overflow parsing port number in URI (Michael Paddon),<br />
+  Fix an error with regexp on nullable counted char transition (Daniel Veillard),<br />
+  Fix memory leak with XPath namespace nodes (Nick Wellnhofer),<br />
+  Fix namespace axis traversal (Nick Wellnhofer),<br />
+      Fix null pointer deref in docs with no root element (Hugh Davenport),<br />
+  Fix XSD validation of URIs with ampersands (Alex Henrie),<br />
+  xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),<br />
+  xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),<br />
+  xmllint: flush stdout before interactive shell input. (Patrick Monnerat),<br />
+  Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),<br />
+  Fix namespace::node() XPath expression (Nick Wellnhofer),<br />
+  Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),<br />
+  Fix parsing of NCNames in XPath (Nick Wellnhofer),<br />
+  Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),<br />
+  Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),<br />
+  Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760921&gt; (David Kilzer),<br />
+  Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760861&gt; (David Kilzer),<br />
+  error.c: *input-&gt;cur == 0 does not mean no error (Pavel Raiskup),<br />
+  Add missing RNG test files (David Kilzer),<br />
+  Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760183&gt; (David Kilzer),<br />
+  Bug 758572: ASAN crash in make check &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758572&gt; (David Kilzer),<br />
+  Bug 721158: Missing ICU string when doing --version on xmllint &lt;https://bugzilla.gnome.org/show_bug.cgi?id=721158&gt; (David Kilzer),<br />
+  python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),<br />
+  Add autogen.sh to distrib (orzen),<br />
+  Heap-based buffer overread in xmlNextChar (Daniel Veillard)<br />
+  </li>
+
+  <li>Improvements:<br />
+  Add more debugging info to runtest (Daniel Veillard),<br />
+  Implement "runtest -u" mode (David Kilzer),<br />
+  Add a make rule to rebuild for ASAN (Daniel Veillard)<br />
+  </li>
+</ul><h3>v2.9.3: Nov 20 2015</h3><ul>
+  <li>Security:<br />
+  CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),<br />
+  CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),<br />
+  CVE-2015-7499-2 Detect incoherency on GROW (Daniel Veillard),<br />
+  CVE-2015-7499-1 Add xmlHaltParser() to stop the parser (Daniel Veillard),<br />
+  CVE-2015-5312 Another entity expansion issue (David Drysdale),<br />
+  CVE-2015-7497 Avoid an heap buffer overflow in xmlDictComputeFastQKey (David Drysdale),<br />
+  CVE-2015-7498 Avoid processing entities after encoding conversion failures (Daniel Veillard),<br />
+  CVE-2015-8035 Fix XZ compression support loop (Daniel Veillard),<br />
+  CVE-2015-7942-2 Fix an error in previous Conditional section patch (Daniel Veillard),<br />
+  CVE-2015-7942 Another variation of overflow in Conditional sections (Daniel Veillard),<br />
+  CVE-2015-1819 Enforce the reader to run in constant memory (Daniel Veillard)<br />
+  CVE-2015-7941_2 Cleanup conditional section error handling (Daniel Veillard),<br />
+  CVE-2015-7941_1 Stop parsing on entities boundaries errors (Daniel Veillard),<br />
+  </li>
+
+  <li>Documentation:<br />
+  Correct spelling of "calling" (Alex Henrie),<br />
+  Fix a small error in xmllint --format description (Fabien Degomme),<br />
+  Avoid XSS on the search of xmlsoft.org (Daniel Veillard)<br />
+  </li>
+
+  <li>Portability:<br />
+  threads: use forward declarations only for glibc (Michael Heimpold),<br />
+  Update Win32 configure.js to search for configure.ac (Daniel Veillard)<br />
+  </li>
+
+  <li>Bug Fixes:<br />
+  Bug on creating new stream from entity (Daniel Veillard),<br />
+  Fix some loop issues embedding NEXT (Daniel Veillard),<br />
+  Do not print error context when there is none (Daniel Veillard),<br />
+  Avoid extra processing of MarkupDecl when EOF (Hugh Davenport),<br />
+  Fix parsing short unclosed comment uninitialized access (Daniel Veillard),<br />
+  Add missing Null check in xmlParseExternalEntityPrivate (Gaurav Gupta),<br />
+  Fix a bug in CData error handling in the push parser (Daniel Veillard),<br />
+  Fix a bug on name parsing at the end of current input buffer (Daniel Veillard),<br />
+  Fix the spurious ID already defined error (Daniel Veillard),<br />
+  Fix previous change to node sort order (Nick Wellnhofer),<br />
+  Fix a self assignment issue raised by clang (Scott Graham),<br />
+  Fail parsing early on if encoding conversion failed (Daniel Veillard),<br />
+  Do not process encoding values if the declaration if broken (Daniel Veillard),<br />
+  Silence clang's -Wunknown-attribute (Michael Catanzaro),<br />
+  xmlMemUsed is not thread-safe (Martin von Gagern),<br />
+  Fix support for except in nameclasses (Daniel Veillard),<br />
+  Fix order of root nodes (Nick Wellnhofer),<br />
+  Allow attributes on descendant-or-self axis (Nick Wellnhofer),<br />
+  Fix the fix to Windows locking (Steve Nairn),<br />
+  Fix timsort invariant loop re: Envisage article (Christopher Swenson),<br />
+  Don't add IDs in xmlSetTreeDoc (Nick Wellnhofer),<br />
+  Account for ID attributes in xmlSetTreeDoc (Nick Wellnhofer),<br />
+  Remove various unused value assignments (Philip Withnall),<br />
+  Fix missing entities after CVE-2014-3660 fix (Daniel Veillard),<br />
+  Revert "Missing initialization for the catalog module" (Daniel Veillard)<br />
+  </li>
+
+  <li>Improvements:<br />
+  Reuse xmlHaltParser() where it makes sense (Daniel Veillard),<br />
+  xmlStopParser reset errNo (Daniel Veillard),<br />
+  Reenable xz support by default (Daniel Veillard),<br />
+  Recover unescaped less-than character in HTML recovery parsing (Daniel Veillard),<br />
+  Allow HTML serializer to output HTML5 DOCTYPE (Shaun McCance),<br />
+  Regression test for bug #695699 (Nick Wellnhofer),<br />
+  Add a couple of XPath tests (Nick Wellnhofer),<br />
+  Add Python 3 rpm subpackage (Tomas Radej),<br />
+  libxml2-config.cmake.in: update include directories (Samuel Martin),<br />
+  Adding example from bugs 738805 to regression tests (Daniel Veillard)<br />
+  </li>
+
+  <li>Cleanups:<br />
+  </li>
+</ul><h3>2.9.2: Oct 16 2014</h3><ul>
   <li>Security:<br />
   Fix for CVE-2014-3660 billion laugh variant (Daniel Veillard),<br />
   CVE-2014-0191 Do not fetch external parameter entities (Daniel Veillard)<br />
@@ -1207,7 +1598,7 @@
     Hendricks), aliasing bug exposed by gcc4 on s390, xmlTextReaderNext bug
     (Rob Richards), Schemas decimal type fixes (William Brack),
     xmlByteConsumed static buffer (Ben Maurer).</li>
-  <li>improvement: speedup parsing comments and DTDs, dictionnary support for
+  <li>improvement: speedup parsing comments and DTDs, dictionary support for
     hash tables, Schemas Identity constraints (Kasimier), streaming XPath
     subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
     values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
@@ -1397,7 +1788,7 @@
     URI on SYSTEM lookup failure, XInclude parse flags inheritance (William),
     XInclude and XPointer fixes for entities (William), XML parser bug
     reported by Holger Rauch, nanohttp fd leak (William),  regexps char
-    groups '-' handling (William), dictionnary reference counting problems,
+    groups '-' handling (William), dictionary reference counting problems,
     do not close stderr.</li>
   <li>performance patches from Petr Pajas</li>
   <li>Documentation fixes: XML_CATALOG_FILES in man pages (Mike Hommey)</li>
@@ -1452,14 +1843,14 @@
     Fleck), doc (Sven Zimmerman), I/O example.</li>
   <li>Python bindings: fixes (William), enum support (Stéphane Bidoul),
     structured error reporting (Stéphane Bidoul)</li>
-  <li>XInclude: various fixes for conformance, problem related to dictionnary
+  <li>XInclude: various fixes for conformance, problem related to dictionary
     references (William &amp; me), recursion (William)</li>
   <li>xmlWriter: indentation (Lucas Brasilino), memory leaks (Alfred
     Mickautsch),</li>
   <li>xmlSchemas: normalizedString datatype (John Belmonte)</li>
   <li>code cleanup for strings functions (William)</li>
   <li>Windows: compiler patches (Mark Vakoc)</li>
-  <li>Parser optimizations, a few new XPath and dictionnary APIs for future
+  <li>Parser optimizations, a few new XPath and dictionary APIs for future
     XSLT optimizations.</li>
 </ul><h3>2.6.4: Dec 24 2003</h3><ul>
   <li>Windows build fixes (Igor Zlatkovic)</li>
@@ -1544,8 +1935,8 @@
     of change</li>
   <li>Increased the library modularity, far more options can be stripped out,
     a --with-minimum configuration will weight around 160KBytes</li>
-  <li>Use per parser and per document dictionnary, allocate names and small
-    text nodes from the dictionnary</li>
+  <li>Use per parser and per document dictionary, allocate names and small
+    text nodes from the dictionary</li>
   <li>Switch to a SAX2 like parser rewrote most of the XML parser core,
     provides namespace resolution and defaulted attributes, minimize memory
     allocations and copies, namespace checking and specific error handling,
@@ -1592,7 +1983,7 @@
     (William), xmlCleanupParser (Marc Liyanage), CDATA output (William), HTTP
     error handling.</li>
   <li>xmllint options: --dtdvalidfpi for Tobias Reif, --sax1 for compat
-    testing,  --nodict for building without tree dictionnary, --nocdata to
+    testing,  --nodict for building without tree dictionary, --nocdata to
     replace CDATA by text, --nsclean to remove surperfluous  namespace
     declarations</li>
   <li>added xml2-config --libtool-libs option from Kevin P. Fleming</li>
diff --git a/doc/search.php b/doc/search.php
index ce1a25f..c94e87e 100644
--- a/doc/search.php
+++ b/doc/search.php
@@ -102,13 +102,14 @@
     $scope = ltrim ($scope);
     if ($scope == "")
         $scope = "any";
+    $querystr = htmlspecialchars($query, ENT_QUOTES, 'UTF-8');
 
 ?>
 <p> The search service indexes the libxml2 and libxslt APIs and documentation as well as the xml@gnome.org and xslt@gnome.org mailing-list archives. To use it simply provide a set of keywords:
 <p>
 <form action="<?php echo "$PHP_SELF", "?query=", rawurlencode($query) ?>"
       enctype="application/x-www-form-urlencoded" method="GET">
-  <input name="query" type="TEXT" size="50" value="<?php echo $query?>">
+  <input name="query" type="TEXT" size="50" value="<?php echo $querystr?>">
   <select name="scope">
     <option value="any">Search All</option>
     <option value="XML" <?php if ($scope == 'XML') print "selected"?>>XML resources</option>
@@ -446,7 +447,7 @@
 	    }
 	    mysql_close($link);
 	    $nb = count($results);
-	    echo "<h3 align='center'>Found $nb results for query $query</h3>\n";
+	    echo "<h3 align='center'>Found $nb results for query $querystr</h3>\n";
 	    usort($results, "resSort");
 
             if ($nb > 0) {
diff --git a/doc/symbols.xml b/doc/symbols.xml
index ec275e7..99aea71 100644
--- a/doc/symbols.xml
+++ b/doc/symbols.xml
@@ -1765,4 +1765,7 @@
     <symbol file="xpath">xmlXPathNodeEval</symbol>
     <symbol file="xpath">xmlXPathSetContextNode</symbol>
   </release>
+  <release version="2.9.8">
+    <symbol file="hash">xmlHashDefaultDeallocator</symbol>
+  </release>
 </symbols>
diff --git a/doc/xml.html b/doc/xml.html
index 373285d..4059fb7 100644
--- a/doc/xml.html
+++ b/doc/xml.html
@@ -532,7 +532,7 @@
 is still open. Be sure to specify that the bug is for the package libxml2.</p>
 
 <p>For small problems you can try to get help on IRC, the #xml channel on
-irc.gnome.org (port 6667) usually have a few person subscribed which may help
+irc.gnome.org (port 6667) usually has a few people subscribed which may help
 (but there is no guarantee and if a real issue is raised it should go on the
 mailing-list for archival).</p>
 
@@ -709,6 +709,409 @@
 
 <p>Here is the list of public releases:</p>
 
+<h3>v2.9.8: Mar 05 2018</h3>
+<ul>
+  <li>Portability:<br/>
+  python: remove single use of _PyVerify_fd (Patrick Welche),<br/>
+  Build more test executables on Windows/MSVC (Nick Wellnhofer),<br/>
+  Stop including ansidecl.h (Nick Wellnhofer),<br/>
+  Fix libz and liblzma detection (Nick Wellnhofer),<br/>
+  Revert "Compile testapi with -Wno-unused-function" (Nick Wellnhofer)<br/>
+  </li>
+
+  <li>Bug Fixes:<br/>
+  Fix xmlParserEntityCheck (Nick Wellnhofer),<br/>
+  Halt parser in case of encoding error (Nick Wellnhofer),<br/>
+  Clear entity content in case of errors (Nick Wellnhofer),<br/>
+  Change calls to xmlCharEncInput to set flush false when not final call. Having flush incorrectly set to true causes errors for ICU. (Joel Hockey),<br/>
+  Fix buffer over-read in xmlParseNCNameComplex (Nick Wellnhofer),<br/>
+  Fix ICU library filenames on Windows/MSVC (Nick Wellnhofer),<br/>
+  Fix xmlXPathIsNaN broken by recent commit (Nick Wellnhofer),<br/>
+  Fix -Wenum-compare warnings (Nick Wellnhofer),<br/>
+  Fix callback signature in testapi.c (Nick Wellnhofer),<br/>
+  Fix unused parameter warning without ICU (Nick Wellnhofer),<br/>
+  Fix IO callback signatures (Nick Wellnhofer),<br/>
+  Fix misc callback signatures (Nick Wellnhofer),<br/>
+  Fix list callback signatures (Nick Wellnhofer),<br/>
+  Fix hash callback signatures (Nick Wellnhofer),<br/>
+  Refactor name and type signature for xmlNop (Vlad Tsyrklevich),<br/>
+  Fixed ICU to set flush correctly and provide pivot buffer. (Joel Hockey),<br/>
+  Skip EBCDIC tests if EBCDIC isn't supported (Nick Wellnhofer)<br/>
+  </li>
+
+  <li>Improvements:<br/>
+  Disable pointer-overflow UBSan checks under Travis (Nick Wellnhofer),<br/>
+  Improve handling of context input_id (Daniel Veillard),<br/>
+  Add resource file to Windows DLL (ccpaging),<br/>
+  Run Travis tests with -Werror (Nick Wellnhofer),<br/>
+  Build with "-Wall -Wextra" (Nick Wellnhofer),<br/>
+  Fix -Wtautological-pointer-compare warnings (Nick Wellnhofer),<br/>
+  Remove unused AC_CHECKs (Nick Wellnhofer),<br/>
+  Update information about contributing (Nick Wellnhofer),<br/>
+  Fix -Wmisleading-indentation warnings (Nick Wellnhofer),<br/>
+  Don't touch CFLAGS in configure.ac (Nick Wellnhofer),<br/>
+  Ignore function pointer cast warnings (Nick Wellnhofer),<br/>
+  Simplify XPath NaN, inf and -0 handling (Nick Wellnhofer),<br/>
+  Introduce xmlPosixStrdup and update xmlMemStrdup (Nick Wellnhofer),<br/>
+  Add test for ICU flush and pivot buffer (Nick Wellnhofer),<br/>
+  Compile testapi with -Wno-unused-function (Nick Wellnhofer)<br/>
+  </li>
+</ul>
+<h3>2.9.7: Nov 02 2017</h3>
+<ul>
+  <li>Documentation:<br/>
+  xmlcatalog: refresh man page wrt. quering system catalog easily (Jan Pokorný)<br/>
+  </li>
+
+  <li>Portability:<br/>
+  Fix deprecated Travis compiler flag (Nick Wellnhofer),<br/>
+  Add declaration for DllMain (J. Peter Mugaas),<br/>
+  Fix preprocessor conditional in threads.h (J. Peter Mugaas),<br/>
+  Fix pointer comparison warnings on 64-bit Windows (J. Peter Mugaas),<br/>
+  Fix macro redefinition warning (J. Peter Mugaas),<br/>
+  Default to native threads on MinGW-w64 (Nick Wellnhofer),<br/>
+  Simplify Windows IO functions (Nick Wellnhofer),<br/>
+  Fix runtest on Windows (Nick Wellnhofer),<br/>
+  socklen_t is always int on Windows (Nick Wellnhofer),<br/>
+  Don't redefine socket error codes on Windows (Nick Wellnhofer),<br/>
+  Fix pointer/int cast warnings on 64-bit Windows (Nick Wellnhofer),<br/>
+  Fix Windows compiler warnings in xmlCanonicPath (Nick Wellnhofer)<br/>
+  </li>
+
+  <li>Bug Fixes:<br/>
+  xmlcatalog: restore ability to query system catalog easily (Jan Pokorný),<br/>
+  Fix comparison of nodesets to strings (Nick Wellnhofer)<br/>
+  </li>
+
+  <li>Improvements:<br/>
+  Add Makefile rules to rebuild HTML man pages (Nick Wellnhofer),<br/>
+  Fix mixed decls and code in timsort.h (Nick Wellnhofer),<br/>
+  Rework handling of return values in thread tests (Nick Wellnhofer),<br/>
+  Fix unused variable warnings in testrecurse (Nick Wellnhofer),<br/>
+  Fix -Wimplicit-fallthrough warnings (J. Peter Mugaas),<br/>
+  Upgrade timsort.h to latest revision (Nick Wellnhofer),<br/>
+  Increase warning level to /W3 under MSVC (Nick Wellnhofer),<br/>
+  Fix a couple of warnings in dict.c and threads.c (Nick Wellnhofer),<br/>
+  Update .gitignore for Windows (Nick Wellnhofer),<br/>
+  Fix unused variable warnings in nanohttp.c (Nick Wellnhofer),<br/>
+  Fix the Windows header mess (Nick Wellnhofer),<br/>
+  Don't include winsock2.h in xmllint.c (Nick Wellnhofer),<br/>
+  Remove generated file python/setup.py from version control (Nick Wellnhofer),<br/>
+  Use __linux__ macro in generated code (Nick Wellnhofer)<br/>
+  </li>
+
+</ul>
+<h3>v2.9.6: Oct 06 2017</h3>
+<ul>
+  <li>Portability:<br/>
+  Change preprocessor OS tests to __linux__ (Nick Wellnhofer)<br/>
+  </li>
+
+  <li>Bug Fixes:<br/>
+  Fix XPath stack frame logic (Nick Wellnhofer),<br/>
+  Report undefined XPath variable error message (Nick Wellnhofer),<br/>
+  Fix regression with librsvg (Nick Wellnhofer),<br/>
+  Handle more invalid entity values in recovery mode (Nick Wellnhofer),<br/>
+  Fix structured validation errors (Nick Wellnhofer),<br/>
+  Fix memory leak in LZMA decompressor (Nick Wellnhofer),<br/>
+  Set memory limit for LZMA decompression (Nick Wellnhofer),<br/>
+  Handle illegal entity values in recovery mode (Nick Wellnhofer),<br/>
+  Fix debug dump of streaming XPath expressions (Nick Wellnhofer),<br/>
+  Fix memory leak in nanoftp (Nick Wellnhofer),<br/>
+  Fix memory leaks in SAX1 parser (Nick Wellnhofer)<br/>
+  </li>
+</ul>
+<h3>v2.9.5: Sep 04 2017</h3>
+<ul>
+
+  <li>Security:<br/>
+  Detect infinite recursion in parameter entities (Nick Wellnhofer),<br/>
+  Fix handling of parameter-entity references (Nick Wellnhofer),<br/>
+  Disallow namespace nodes in XPointer ranges (Nick Wellnhofer),<br/>
+  Fix XPointer paths beginning with range-to (Nick Wellnhofer)<br/>
+  </li>
+
+  <li>Documentation:<br/>
+  Documentation fixes (Nick Wellnhofer),<br/>
+  Spelling and grammar fixes (Nick Wellnhofer)<br/>
+  </li>
+
+  <li>Portability:<br/>
+  Adding README.zOS to list of extra files for the release (Daniel Veillard),<br/>
+  Description of work needed to compile on zOS (Stéphane Michaut),<br/>
+  Porting libxml2 on zOS encoding of code (Stéphane Michaut),<br/>
+  small changes for OS/400 (Patrick Monnerat),<br/>
+  relaxng.c, xmlschemas.c: Fix build on pre-C99 compilers (Chun-wei Fan)<br/>
+  </li>
+
+  <li>Bug Fixes:<br/>
+  Problem resolving relative URIs (Daniel Veillard),<br/>
+  Fix unwanted warnings when switching encodings (Nick Wellnhofer),<br/>
+  Fix signature of xmlSchemaAugmentImportedIDC (Daniel Veillard),<br/>
+  Heap-buffer-overflow read of size 1 in xmlFAParsePosCharGroup (David Kilzer),<br/>
+  Fix NULL pointer deref in xmlFAParseCharClassEsc (Nick Wellnhofer),<br/>
+  Fix infinite loops with push parser in recovery mode (Nick Wellnhofer),<br/>
+  Send xmllint usage error to stderr (Nick Wellnhofer),<br/>
+  Fix NULL deref in xmlParseExternalEntityPrivate (Nick Wellnhofer),<br/>
+  Make sure not to call IS_BLANK_CH when parsing the DTD (Nick Wellnhofer),<br/>
+  Fix xmlHaltParser (Nick Wellnhofer),<br/>
+  Fix pathological performance when outputting charrefs (Nick Wellnhofer),<br/>
+  Fix invalid-source-encoding warnings in testWriter.c (Nick Wellnhofer),<br/>
+  Fix duplicate SAX callbacks for entity content (David Kilzer),<br/>
+  Treat URIs with scheme as absolute in C14N (Nick Wellnhofer),<br/>
+  Fix copy-paste errors in error messages (Nick Wellnhofer),<br/>
+  Fix sanity check in htmlParseNameComplex (Nick Wellnhofer),<br/>
+  Fix potential infinite loop in xmlStringLenDecodeEntities (Nick Wellnhofer),<br/>
+  Reset parser input pointers on encoding failure (Nick Wellnhofer),<br/>
+  Fix memory leak in xmlParseEntityDecl error path (Nick Wellnhofer),<br/>
+  Fix xmlBuildRelativeURI for URIs starting with './' (Nick Wellnhofer),<br/>
+  Fix type confusion in xmlValidateOneNamespace (Nick Wellnhofer),<br/>
+  Fix memory leak in xmlStringLenGetNodeList (Nick Wellnhofer),<br/>
+  Fix NULL pointer deref in xmlDumpElementContent (Daniel Veillard),<br/>
+  Fix memory leak in xmlBufAttrSerializeTxtContent (Nick Wellnhofer),<br/>
+  Stop parser on unsupported encodings (Nick Wellnhofer),<br/>
+  Check for integer overflow in memory debug code (Nick Wellnhofer),<br/>
+  Fix buffer size checks in xmlSnprintfElementContent (Nick Wellnhofer),<br/>
+  Avoid reparsing in xmlParseStartTag2 (Nick Wellnhofer),<br/>
+  Fix undefined behavior in xmlRegExecPushStringInternal (Nick Wellnhofer),<br/>
+  Check XPath exponents for overflow (Nick Wellnhofer),<br/>
+  Check for overflow in xmlXPathIsPositionalPredicate (Nick Wellnhofer),<br/>
+  Fix spurious error message (Nick Wellnhofer),<br/>
+  Fix memory leak in xmlCanonicPath (Nick Wellnhofer),<br/>
+  Fix memory leak in xmlXPathCompareNodeSetValue (Nick Wellnhofer),<br/>
+  Fix memory leak in pattern error path (Nick Wellnhofer),<br/>
+  Fix memory leak in parser error path (Nick Wellnhofer),<br/>
+  Fix memory leaks in XPointer error paths (Nick Wellnhofer),<br/>
+  Fix memory leak in xmlXPathNodeSetMergeAndClear (Nick Wellnhofer),<br/>
+  Fix memory leak in XPath filter optimizations (Nick Wellnhofer),<br/>
+  Fix memory leaks in XPath error paths (Nick Wellnhofer),<br/>
+  Do not leak the new CData node if adding fails (David Tardon),<br/>
+  Prevent unwanted external entity reference (Neel Mehta),<br/>
+  Increase buffer space for port in HTTP redirect support (Daniel Veillard),<br/>
+  Fix more NULL pointer derefs in xpointer.c (Nick Wellnhofer),<br/>
+  Avoid function/data pointer conversion in xpath.c (Nick Wellnhofer),<br/>
+  Fix format string warnings (Nick Wellnhofer),<br/>
+  Disallow namespace nodes in XPointer points (Nick Wellnhofer),<br/>
+  Fix comparison with root node in xmlXPathCmpNodes (Nick Wellnhofer),<br/>
+  Fix attribute decoding during XML schema validation (Alex Henrie),<br/>
+  Fix NULL pointer deref in XPointer range-to (Nick Wellnhofer)<br/>
+  </li>
+
+  <li>Improvements:<br/>
+  Updating the spec file to reflect Fedora 24 (Daniel Veillard),<br/>
+  Add const in five places to move 1 KiB to .rdata (Bruce Dawson),<br/>
+  Fix missing part of comment for function xmlXPathEvalExpression() (Daniel Veillard),<br/>
+  Get rid of "blanks wrapper" for parameter entities (Nick Wellnhofer),<br/>
+  Simplify handling of parameter entity references (Nick Wellnhofer),<br/>
+  Deduplicate code in encoding.c (Nick Wellnhofer),<br/>
+  Make HTML parser functions take const pointers (Nick Wellnhofer),<br/>
+  Build test programs only when needed (Nick Wellnhofer),<br/>
+  Fix doc/examples/index.py (Nick Wellnhofer),<br/>
+  Fix compiler warnings in threads.c (Nick Wellnhofer),<br/>
+  Fix empty-body warning in nanohttp.c (Nick Wellnhofer),<br/>
+  Fix cast-align warnings (Nick Wellnhofer),<br/>
+  Fix unused-parameter warnings (Nick Wellnhofer),<br/>
+  Rework entity boundary checks (Nick Wellnhofer),<br/>
+  Don't switch encoding for internal parameter entities (Nick Wellnhofer),<br/>
+  Merge duplicate code paths handling PE references (Nick Wellnhofer),<br/>
+  Test SAX2 callbacks with entity substitution (Nick Wellnhofer),<br/>
+  Support catalog and threads tests under --without-sax1 (Nick Wellnhofer),<br/>
+  Misc fixes for 'make tests' (Nick Wellnhofer),<br/>
+  Initialize keepBlanks in HTML parser (Nick Wellnhofer),<br/>
+  Add test cases for bug 758518 (David Kilzer),<br/>
+  Fix compiler warning in htmlParseElementInternal (Nick Wellnhofer),<br/>
+  Remove useless check in xmlParseAttributeListDecl (Nick Wellnhofer),<br/>
+  Allow zero sized memory input buffers (Nick Wellnhofer),<br/>
+  Add TODO comment in xmlSwitchEncoding (Nick Wellnhofer),<br/>
+  Check for integer overflow in xmlXPathFormatNumber (Nick Wellnhofer),<br/>
+  Make Travis print UBSan stacktraces (Nick Wellnhofer),<br/>
+  Add .travis.yml (Nick Wellnhofer),<br/>
+  Fix expected error output in Python tests (Nick Wellnhofer),<br/>
+  Simplify control flow in xmlParseStartTag2 (Nick Wellnhofer),<br/>
+  Disable LeakSanitizer when running API tests (Nick Wellnhofer),<br/>
+  Avoid out-of-bound array access in API tests (Nick Wellnhofer),<br/>
+  Avoid spurious UBSan errors in parser.c (Nick Wellnhofer),<br/>
+  Parse small XPath numbers more accurately (Nick Wellnhofer),<br/>
+  Rework XPath rounding functions (Nick Wellnhofer),<br/>
+  Fix white space in test output (Nick Wellnhofer),<br/>
+  Fix axis traversal from attribute and namespace nodes (Nick Wellnhofer),<br/>
+  Check for trailing characters in XPath expressions earlier (Nick Wellnhofer),<br/>
+  Rework final handling of XPath results (Nick Wellnhofer),<br/>
+  Make xmlXPathEvalExpression call xmlXPathEval (Nick Wellnhofer),<br/>
+  Remove unused variables (Nick Wellnhofer),<br/>
+  Don't print generic error messages in XPath tests (Nick Wellnhofer)<br/>
+  </li>
+
+  <li>Cleanups:<br/>
+  Fix a couple of misleading indentation errors (Daniel Veillard),<br/>
+  Remove unnecessary calls to xmlPopInput (Nick Wellnhofer)<br/>
+  </li>
+</ul>
+<h3>2.9.4: May 23 2016</h3>
+<ul>
+  <li>Security:<br/>
+  More format string warnings with possible format string vulnerability (David Kilzer),<br/>
+  Avoid building recursive entities (Daniel Veillard),<br/>
+  Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),<br/>
+  Heap-based buffer-underreads due to xmlParseName (David Kilzer),<br/>
+  Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),<br/>
+  Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),<br/>
+  Fix some format string warnings with possible format string vulnerability (David Kilzer),<br/>
+  Detect change of encoding when parsing HTML names (Hugh Davenport),<br/>
+  Fix inappropriate fetch of entities content (Daniel Veillard),<br/>
+  Bug 759398: Heap use-after-free in xmlDictComputeFastKey &lt;https://bugzilla.gnome.org/show_bug.cgi?id=759398&gt; (Pranjal Jumde),<br/>
+  Bug 758605: Heap-based buffer overread in xmlDictAddString &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758605&gt; (Pranjal Jumde),<br/>
+  Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758588&gt; (David Kilzer),<br/>
+  Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup &lt;https://bugzilla.gnome.org/show_bug.cgi?id=757711&gt; (Pranjal Jumde),<br/>
+  Add missing increments of recursion depth counter to XML parser. (Peter Simons)<br/>
+  </li>
+
+  <li>Documentation:<br/>
+  Fix typo: s{ ec -&gt; cr }cipt (Jan Pokorný),<br/>
+  Fix typos: dictio{ nn -&gt; n }ar{y,ies} (Jan Pokorný),<br/>
+  Fix typos: PATH_{ SEAPARATOR -&gt; SEPARATOR } (Jan Pokorný),<br/>
+  Correct a typo. (Shlomi Fish)<br/>
+  </li>
+
+  <li>Portability:<br/>
+  Correct the usage of LDFLAGS (Mattias Hansson),<br/>
+  Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),<br/>
+  libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),<br/>
+  Fix apibuild for a recently added construct (Daniel Veillard),<br/>
+  Use pkg-config to locate zlib when possible (Stewart Brodie),<br/>
+  Use pkg-config to locate ICU when possible (Stewart Brodie),<br/>
+  Portability to non C99 compliant compilers (Patrick Monnerat),<br/>
+  dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),<br/>
+  os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),<br/>
+  os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),<br/>
+  os400: implement CL command XMLCATALOG. (Patrick Monnerat),<br/>
+  os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),<br/>
+  os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),<br/>
+  os400: implement CL command XMLLINT. (Patrick Monnerat),<br/>
+  os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),<br/>
+  os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),<br/>
+  os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),<br/>
+  os400: use like() for double type. (Patrick Monnerat),<br/>
+  os400: use like() for int type. (Patrick Monnerat),<br/>
+  os400: use like() for unsigned int type. (Patrick Monnerat),<br/>
+  os400: use like() for enum types. (Patrick Monnerat),<br/>
+  Add xz to xml2-config --libs output (Baruch Siach),<br/>
+  Bug 760190: configure.ac should be able to build --with-icu without icu-config tool &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760190&gt; (David Kilzer),<br/>
+  win32\VC10\config.h and VS 2015 (Bruce Dawson),<br/>
+  Add configure maintainer mode (orzen)<br/>
+  </li>
+
+  <li>Bug Fixes:<br/>
+  Avoid an out of bound access when serializing malformed strings (Daniel Veillard),<br/>
+  Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),<br/>
+  Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),<br/>
+  Bug 763071: heap-buffer-overflow in xmlStrncat &lt;https://bugzilla.gnome.org/show_bug.cgi?id=763071&gt; (Pranjal Jumde),<br/>
+  Integer overflow parsing port number in URI (Michael Paddon),<br/>
+  Fix an error with regexp on nullable counted char transition (Daniel Veillard),<br/>
+  Fix memory leak with XPath namespace nodes (Nick Wellnhofer),<br/>
+  Fix namespace axis traversal (Nick Wellnhofer),<br/>
+      Fix null pointer deref in docs with no root element (Hugh Davenport),<br/>
+  Fix XSD validation of URIs with ampersands (Alex Henrie),<br/>
+  xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),<br/>
+  xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),<br/>
+  xmllint: flush stdout before interactive shell input. (Patrick Monnerat),<br/>
+  Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),<br/>
+  Fix namespace::node() XPath expression (Nick Wellnhofer),<br/>
+  Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),<br/>
+  Fix parsing of NCNames in XPath (Nick Wellnhofer),<br/>
+  Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),<br/>
+  Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),<br/>
+  Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760921&gt; (David Kilzer),<br/>
+  Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760861&gt; (David Kilzer),<br/>
+  error.c: *input-&gt;cur == 0 does not mean no error (Pavel Raiskup),<br/>
+  Add missing RNG test files (David Kilzer),<br/>
+  Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer &lt;https://bugzilla.gnome.org/show_bug.cgi?id=760183&gt; (David Kilzer),<br/>
+  Bug 758572: ASAN crash in make check &lt;https://bugzilla.gnome.org/show_bug.cgi?id=758572&gt; (David Kilzer),<br/>
+  Bug 721158: Missing ICU string when doing --version on xmllint &lt;https://bugzilla.gnome.org/show_bug.cgi?id=721158&gt; (David Kilzer),<br/>
+  python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),<br/>
+  Add autogen.sh to distrib (orzen),<br/>
+  Heap-based buffer overread in xmlNextChar (Daniel Veillard)<br/>
+  </li>
+
+  <li>Improvements:<br/>
+  Add more debugging info to runtest (Daniel Veillard),<br/>
+  Implement "runtest -u" mode (David Kilzer),<br/>
+  Add a make rule to rebuild for ASAN (Daniel Veillard)<br/>
+  </li>
+</ul>
+<h3>v2.9.3: Nov 20 2015</h3>
+<ul>
+  <li>Security:<br/>
+  CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),<br/>
+  CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),<br/>
+  CVE-2015-7499-2 Detect incoherency on GROW (Daniel Veillard),<br/>
+  CVE-2015-7499-1 Add xmlHaltParser() to stop the parser (Daniel Veillard),<br/>
+  CVE-2015-5312 Another entity expansion issue (David Drysdale),<br/>
+  CVE-2015-7497 Avoid an heap buffer overflow in xmlDictComputeFastQKey (David Drysdale),<br/>
+  CVE-2015-7498 Avoid processing entities after encoding conversion failures (Daniel Veillard),<br/>
+  CVE-2015-8035 Fix XZ compression support loop (Daniel Veillard),<br/>
+  CVE-2015-7942-2 Fix an error in previous Conditional section patch (Daniel Veillard),<br/>
+  CVE-2015-7942 Another variation of overflow in Conditional sections (Daniel Veillard),<br/>
+  CVE-2015-1819 Enforce the reader to run in constant memory (Daniel Veillard)<br/>
+  CVE-2015-7941_2 Cleanup conditional section error handling (Daniel Veillard),<br/>
+  CVE-2015-7941_1 Stop parsing on entities boundaries errors (Daniel Veillard),<br/>
+  </li>
+
+  <li>Documentation:<br/>
+  Correct spelling of "calling" (Alex Henrie),<br/>
+  Fix a small error in xmllint --format description (Fabien Degomme),<br/>
+  Avoid XSS on the search of xmlsoft.org (Daniel Veillard)<br/>
+  </li>
+
+  <li>Portability:<br/>
+  threads: use forward declarations only for glibc (Michael Heimpold),<br/>
+  Update Win32 configure.js to search for configure.ac (Daniel Veillard)<br/>
+  </li>
+
+  <li>Bug Fixes:<br/>
+  Bug on creating new stream from entity (Daniel Veillard),<br/>
+  Fix some loop issues embedding NEXT (Daniel Veillard),<br/>
+  Do not print error context when there is none (Daniel Veillard),<br/>
+  Avoid extra processing of MarkupDecl when EOF (Hugh Davenport),<br/>
+  Fix parsing short unclosed comment uninitialized access (Daniel Veillard),<br/>
+  Add missing Null check in xmlParseExternalEntityPrivate (Gaurav Gupta),<br/>
+  Fix a bug in CData error handling in the push parser (Daniel Veillard),<br/>
+  Fix a bug on name parsing at the end of current input buffer (Daniel Veillard),<br/>
+  Fix the spurious ID already defined error (Daniel Veillard),<br/>
+  Fix previous change to node sort order (Nick Wellnhofer),<br/>
+  Fix a self assignment issue raised by clang (Scott Graham),<br/>
+  Fail parsing early on if encoding conversion failed (Daniel Veillard),<br/>
+  Do not process encoding values if the declaration if broken (Daniel Veillard),<br/>
+  Silence clang's -Wunknown-attribute (Michael Catanzaro),<br/>
+  xmlMemUsed is not thread-safe (Martin von Gagern),<br/>
+  Fix support for except in nameclasses (Daniel Veillard),<br/>
+  Fix order of root nodes (Nick Wellnhofer),<br/>
+  Allow attributes on descendant-or-self axis (Nick Wellnhofer),<br/>
+  Fix the fix to Windows locking (Steve Nairn),<br/>
+  Fix timsort invariant loop re: Envisage article (Christopher Swenson),<br/>
+  Don't add IDs in xmlSetTreeDoc (Nick Wellnhofer),<br/>
+  Account for ID attributes in xmlSetTreeDoc (Nick Wellnhofer),<br/>
+  Remove various unused value assignments (Philip Withnall),<br/>
+  Fix missing entities after CVE-2014-3660 fix (Daniel Veillard),<br/>
+  Revert "Missing initialization for the catalog module" (Daniel Veillard)<br/>
+  </li>
+
+  <li>Improvements:<br/>
+  Reuse xmlHaltParser() where it makes sense (Daniel Veillard),<br/>
+  xmlStopParser reset errNo (Daniel Veillard),<br/>
+  Reenable xz support by default (Daniel Veillard),<br/>
+  Recover unescaped less-than character in HTML recovery parsing (Daniel Veillard),<br/>
+  Allow HTML serializer to output HTML5 DOCTYPE (Shaun McCance),<br/>
+  Regression test for bug #695699 (Nick Wellnhofer),<br/>
+  Add a couple of XPath tests (Nick Wellnhofer),<br/>
+  Add Python 3 rpm subpackage (Tomas Radej),<br/>
+  libxml2-config.cmake.in: update include directories (Samuel Martin),<br/>
+  Adding example from bugs 738805 to regression tests (Daniel Veillard)<br/>
+  </li>
+
+  <li>Cleanups:<br/>
+  </li>
+</ul>
 <h3>2.9.2: Oct 16 2014</h3>
 <ul>
   <li>Security:<br/>
@@ -1976,7 +2379,7 @@
     Hendricks), aliasing bug exposed by gcc4 on s390, xmlTextReaderNext bug
     (Rob Richards), Schemas decimal type fixes (William Brack),
     xmlByteConsumed static buffer (Ben Maurer).</li>
-  <li>improvement: speedup parsing comments and DTDs, dictionnary support for
+  <li>improvement: speedup parsing comments and DTDs, dictionary support for
     hash tables, Schemas Identity constraints (Kasimier), streaming XPath
     subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
     values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
@@ -2196,7 +2599,7 @@
     URI on SYSTEM lookup failure, XInclude parse flags inheritance (William),
     XInclude and XPointer fixes for entities (William), XML parser bug
     reported by Holger Rauch, nanohttp fd leak (William),  regexps char
-    groups '-' handling (William), dictionnary reference counting problems,
+    groups '-' handling (William), dictionary reference counting problems,
     do not close stderr.</li>
   <li>performance patches from Petr Pajas</li>
   <li>Documentation fixes: XML_CATALOG_FILES in man pages (Mike Hommey)</li>
@@ -2260,14 +2663,14 @@
     Fleck), doc (Sven Zimmerman), I/O example.</li>
   <li>Python bindings: fixes (William), enum support (Stéphane Bidoul),
     structured error reporting (Stéphane Bidoul)</li>
-  <li>XInclude: various fixes for conformance, problem related to dictionnary
+  <li>XInclude: various fixes for conformance, problem related to dictionary
     references (William &amp; me), recursion (William)</li>
   <li>xmlWriter: indentation (Lucas Brasilino), memory leaks (Alfred
     Mickautsch),</li>
   <li>xmlSchemas: normalizedString datatype (John Belmonte)</li>
   <li>code cleanup for strings functions (William)</li>
   <li>Windows: compiler patches (Mark Vakoc)</li>
-  <li>Parser optimizations, a few new XPath and dictionnary APIs for future
+  <li>Parser optimizations, a few new XPath and dictionary APIs for future
     XSLT optimizations.</li>
 </ul>
 
@@ -2367,8 +2770,8 @@
     of change</li>
   <li>Increased the library modularity, far more options can be stripped out,
     a --with-minimum configuration will weight around 160KBytes</li>
-  <li>Use per parser and per document dictionnary, allocate names and small
-    text nodes from the dictionnary</li>
+  <li>Use per parser and per document dictionary, allocate names and small
+    text nodes from the dictionary</li>
   <li>Switch to a SAX2 like parser rewrote most of the XML parser core,
     provides namespace resolution and defaulted attributes, minimize memory
     allocations and copies, namespace checking and specific error handling,
@@ -2415,7 +2818,7 @@
     (William), xmlCleanupParser (Marc Liyanage), CDATA output (William), HTTP
     error handling.</li>
   <li>xmllint options: --dtdvalidfpi for Tobias Reif, --sax1 for compat
-    testing,  --nodict for building without tree dictionnary, --nocdata to
+    testing,  --nodict for building without tree dictionary, --nocdata to
     replace CDATA by text, --nsclean to remove surperfluous  namespace
     declarations</li>
   <li>added xml2-config --libtool-libs option from Kevin P. Fleming</li>
diff --git a/doc/xmlcatalog.1 b/doc/xmlcatalog.1
index b4a6b22..2fbfaf2 100644
--- a/doc/xmlcatalog.1
+++ b/doc/xmlcatalog.1
@@ -1,7 +1,7 @@
 '\" t
 .\"     Title: xmlcatalog
 .\"    Author: John Fleck <jfleck@inkstain.net>
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
 .\"      Date: $Date$
 .\"    Manual: xmlcatalog Manual
 .\"    Source: libxml2
@@ -34,7 +34,6 @@
 \fBxmlcatalog\fR [\fB\-\-sgml\fR | \fB\-\-shell\fR | \fB\-\-create\fR | \fB\-\-del\ \fR\fB\fIVALUE(S)\fR\fR | [\ \fB\-\-add\ \fR\fB\fITYPE\fR\fR\fB\ \fR\fB\fIORIG\fR\fR\fB\ \fR\fB\fIREPLACE\fR\fR\fB\ \fR\ |\ \fB\-\-add\ \fR\fB\fIFILENAME\fR\fR] | \fB\-\-noout\fR | \fB\-\-no\-super\-update\fR | [\fB\-v\fR\ |\ \fB\-\-verbose\fR]] {\fICATALOGFILE\fR} {\fIENTITIES\fR...}
 .SH "DESCRIPTION"
 .PP
-
 \fBxmlcatalog\fR
 is a command line application allowing users to monitor and manipulate
 XML
@@ -50,7 +49,6 @@
 files\&.
 .SH "OPTIONS"
 .PP
-
 \fBxmlcatalog\fR
 accepts the following options (in alphabetical order):
 .PP
@@ -155,6 +153,19 @@
 .RS 4
 Output debugging information\&.
 .RE
+.PP
+Invoking
+\fBxmlcatalog\fR
+non\-interactively without a designated action (imposed with options like
+\fB\-\-add\fR) will result in a lookup of the catalog entry for
+\fIENTITIES\fR
+in the catalog denoted with
+\fICATALOGFILE\fR\&. The corresponding entries will be output to the command line\&. This mode of operation, together with
+\fB\-\-shell\fR
+mode and non\-modifying (i\&.e\&. without
+\fB\-\-noout\fR) direct actions, allows for a special shortcut of the void
+\fICATALOGFILE\fR
+specification (possibly expressed as "" in the shell environment) appointing the default system catalog\&. That simplifies the handling when its exact location is irrelevant but the respective built\-in still needs to be consulted\&.
 .SH "SHELL COMMANDS"
 .PP
 Invoking
@@ -213,7 +224,7 @@
 .PP
 \fBpublic \fR\fB\fIPUBLIC\-ID\fR\fR
 .RS 4
-Execute a Formal Public Identifier look\-up of the catalog entry for
+Execute a Formal Public Identifier lookup of the catalog entry for
 \fIPUBLIC\-ID\fR\&. The corresponding entry will be output to the command line\&.
 .RE
 .PP
@@ -224,7 +235,7 @@
 .PP
 \fBsystem \fR\fB\fISYSTEM\-ID\fR\fR
 .RS 4
-Execute a Formal Public Identifier look\-up of the catalog entry for
+Execute a Formal Public Identifier lookup of the catalog entry for
 \fISYSTEM\-ID\fR\&. The corresponding entry will be output to the command line\&.
 .RE
 .SH "ENVIRONMENT"
@@ -240,7 +251,6 @@
 .RE
 .SH "DIAGNOSTICS"
 .PP
-
 \fBxmlcatalog\fR
 return codes provide information that can be used when calling it from scripts\&.
 .PP
diff --git a/doc/xmlcatalog_man.html b/doc/xmlcatalog_man.html
index d7b02ba..f72cd47 100644
--- a/doc/xmlcatalog_man.html
+++ b/doc/xmlcatalog_man.html
@@ -1,101 +1,140 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmlcatalog</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"><a name="id2431614"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2>Name</h2><p>xmlcatalog &#8212; Command line tool to parse and manipulate <span class="acronym">XML</span> or
-      <span class="acronym">SGML</span> catalog files.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><tt class="command">xmlcatalog</tt>  [[--shell] |  [--create] |  [--add <i class="replaceable"><tt>type</tt></i>
-	  <i class="replaceable"><tt>orig</tt></i> <i class="replaceable"><tt>replace</tt></i>] |  [--del <i class="replaceable"><tt>values</tt></i>] |  [--noout] |  [--verbose]] [<tt class="option"><i class="replaceable"><tt>catalogfile</tt></i></tt>] [<tt class="option"><i class="replaceable"><tt>entities</tt></i></tt>]</p></div></div><div class="refsect1" lang="en"><a name="introduction"></a><h2>Introduction</h2><p>
-      <span class="application">xmlcatalog</span> is a command line application
-      allowing users to monitor and manipulate <span class="acronym">XML</span> and
-      <span class="acronym">SGML</span> catalogs. It is included in
-      <span class="application">libxml2</span>.
-    </p><p>
-      Its functions can be invoked from a single command from the command line,
-      or it can perform multiple functions in interactive mode. It can operate
-      on both <span class="acronym">XML</span> and <span class="acronym">SGML</span> files.
-    </p></div><div class="refsect1" lang="en"><a name="cloptions"></a><h2>Command Line Options</h2><div class="variablelist"><dl><dt><span class="term"><tt class="option">--shell</tt> <i class="replaceable"><tt>filename</tt></i></span></dt><dd>
-	    Run a shell
-	    allowing interactive queries on catalog file
-	    <i class="replaceable"><tt>filename</tt></i>.
-	  </dd><dt><span class="term"><tt class="option">--create</tt> <i class="replaceable"><tt>filename</tt></i></span></dt><dd>
-	    Create a new
-	    <span class="acronym">XML</span> catalog. Outputs to stdout, ignoring
-	    <i class="replaceable"><tt>filename</tt></i> unless <tt class="option">--noout</tt> is
-	    used, in which case it creates a new catalog file
-	    <i class="replaceable"><tt>filename</tt></i>.
-	  </dd><dt><span class="term"><tt class="option">--add</tt> <i class="replaceable"><tt>'type'</tt></i> <i class="replaceable"><tt>'orig'</tt></i> <i class="replaceable"><tt>'replace'</tt></i> <i class="replaceable"><tt>filename</tt></i></span></dt><dd><p>
-	    Add an entry to catalog file
-	    <tt class="filename">filename</tt>. <i class="replaceable"><tt>type</tt></i>
-	    indicates the type of entry. Possible types are 'public', 'system', 'uri',
-	    'rewriteSystem', 'rewriteURI', 'delegatePublic', 'delegateSystem',
-	    'delegateURI' and 'nextCatalog'. <i class="replaceable"><tt>'orig'</tt></i> is the original
-	    reference to be replaced, and <i class="replaceable"><tt>'replace'</tt></i>
-	    is the <span class="acronym">URI</span> of the replacement entity to be
-	    used. The <tt class="option">--add</tt> option will not overwrite
-	    <i class="replaceable"><tt>filename</tt></i>, outputing to stdout, unless
-	    <tt class="option">--noout</tt> is used. The <tt class="option">--add</tt> will
-	    always take three parameters even if some of the
-	    <span class="acronym">XML</span> catalog constructs will have only a single
-	    argument.
-
-	  </p><p>
-	    If the <tt class="option">--add</tt> option is used following the
-	    <tt class="option">--sgml</tt> option, only a single argument, a
-	    <i class="replaceable"><tt>filename</tt></i>, is used. This is used to add
-	    the name of a catalog file to an <span class="acronym">SGML</span>
-	    supercatalog, a file that contains references to other included
-	    <span class="acronym">SGML</span> catalog files.
-	  </p></dd><dt><span class="term"><tt class="option">--del</tt> <i class="replaceable"><tt>'values'</tt></i> <i class="replaceable"><tt>filename</tt></i></span></dt><dd>
-	    Remove entries from the catalog file
-	    <i class="replaceable"><tt>filename</tt></i> matching
-	    <i class="replaceable"><tt>'values'</tt></i>. The <tt class="option">--del</tt> option
-	    will not overwrite <i class="replaceable"><tt>filename</tt></i>, outputing to
-	    stdout, unless <tt class="option">--noout</tt> is used.
-	  </dd><dt><span class="term"><tt class="option">--noout</tt></span></dt><dd>
-	    Save output to the named file rather than
-	    outputing to stdout.
-	  </dd><dt><span class="term"><tt class="option">--sgml</tt></span></dt><dd>
-	    Uses SGML Super catalogs for --add and --del options
-	  </dd><dt><span class="term"><tt class="option">-v</tt> or <tt class="option">--verbose</tt></span></dt><dd>
-	    output debugging
-	    information.
-	  </dd></dl></div></div><div class="refsect1" lang="en"><a name="shell"></a><h2>Shell Commands</h2><p>Invoking <span class="application">xmlcatalog</span> with the
-      <tt class="option">--shell</tt> <i class="replaceable"><tt>filename</tt></i> option opens
-    a command line shell allowing interactive access to the catalog file
-      identified by <i class="replaceable"><tt>filename</tt></i>. Invoking the shell
-    provides a command line prompt after which commands can be entered.
-    </p><div class="variablelist"><dl><dt><span class="term"><tt class="option">public</tt> <i class="replaceable"><tt>'PublicID'</tt></i></span></dt><dd>
-	    Execute a
-	    public identifier lookup of the catalog entry for
-	    <i class="replaceable"><tt>'PublicID'</tt></i>. The corresponding entry will be
-	    output to the command line.
-	  </dd><dt><span class="term"><tt class="option">system</tt> <i class="replaceable"><tt>'SystemID'</tt></i></span></dt><dd>
-	    Execute a
-	    public identifier lookup of the catalog entry for
-	    <i class="replaceable"><tt>'SystemID'</tt></i>. The corresponding entry will be
-	    output to the command line.
-	  </dd><dt><span class="term"><tt class="option">add </tt> <i class="replaceable"><tt>'type'</tt></i> <i class="replaceable"><tt>'orig'</tt></i> <i class="replaceable"><tt>'replace'</tt></i></span></dt><dd>
-	    Add an entry to the catalog
-	    file. <i class="replaceable"><tt>type</tt></i> indicates the type of
-	    entry. Possible types are 'public', 'system', 'uri', 'rewriteSystem', 'rewriteURI',
-	    'delegatePublic', 'delegateSystem', 'delegateURI' and 'nextCatalog'. <i class="replaceable"><tt>'orig'</tt></i>
-	    is the original reference to  be replaced, and
-	    <i class="replaceable"><tt>'replace'</tt></i> is the <span class="acronym">URI</span> of the
-	    replacement entity to be used.
-	  </dd><dt><span class="term"><tt class="option">del</tt> <i class="replaceable"><tt>'values'</tt></i></span></dt><dd>
-	    Remove the
-	    catalog entry corresponding to <i class="replaceable"><tt>'values'</tt></i>.
-	  </dd><dt><span class="term"><tt class="option">dump</tt></span></dt><dd>
-	    Print the current catalog.
-	  </dd><dt><span class="term"><tt class="option">debug</tt></span></dt><dd>
-	    Print debugging statements showing the steps
-	    <span class="application">xmlcatalog</span> is executing.
-	  </dd><dt><span class="term"><tt class="option">quiet</tt></span></dt><dd>
-	    Stop printing debugging statements.
-	  </dd><dt><span class="term"><tt class="option">exit</tt></span></dt><dd>
-	    Quit the shell.
-	  </dd></dl></div></div><div class="refsect1" lang="en"><a name="return"></a><h2>Return values</h2><p><span class="application">xmlcatalog</span>'s return codes provide
-    information that can be used when calling it from scripts.</p><p>0: normal</p><p>1: Failed to remove an entry from the catalog</p><p>2: Failed to save to the catalog, check file permissions</p><p>3: Failed to add an entry to the catalog</p><p>4: Failed to lookup and entry in the catalog</p></div><div class="refsect1" lang="en"><h2>Catalogs</h2><p>Catalog behavior can be changed by redirecting
-     queries to the user's own set of catalogs. This can be done by setting the
-     <tt class="varname">XML_CATALOG_FILES</tt> environment variable to a list of
-     catalogs. An empty one should deactivate loading the default
-      <tt class="filename">/etc/xml/catalog</tt> default catalog.</p></div><div class="refsect1" lang="en"><h2>References</h2><p><a href="http://www.xmlsoft.org/" target="_top">libxml web page</a></p><p><a href="http://www.xmlsoft.org/catalog.html" target="_top"><span class="application">libxml</span>
-    catalog support web page:</a></p><p><a href="http://www.jclark.com/sp/catalog.htm" target="_top">James Clark's
-    <span class="acronym">SGML</span> catalog page:</a></p><p><a href="http://www.oasis-open.org/committees/entity/spec.html" target="_top"><span class="acronym">OASIS</span>
-    <span class="acronym">XML</span> catalog specification: </a></p></div></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmlcatalog</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry"><a name="idm45940765506544"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>xmlcatalog &#8212; 
+		Command line tool to parse and manipulate <acronym class="acronym">XML</acronym>
+		or <acronym class="acronym">SGML</acronym> catalog files.
+	</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">xmlcatalog</code>  [ <code class="option">--sgml</code>  |   <code class="option">--shell</code>  |   <code class="option">--create</code>  |   <code class="option">--del <em class="replaceable"><code>VALUE(S)</code></em></code>  |   
+			[ 
+					<code class="option">--add
+					 <em class="replaceable"><code>TYPE</code></em>
+					 <em class="replaceable"><code>ORIG</code></em>
+					 <em class="replaceable"><code>REPLACE</code></em>
+					</code>
+				  |   <code class="option">--add <em class="replaceable"><code>FILENAME</code></em></code> ]		
+		  |   <code class="option">--noout</code>  |   <code class="option">--no-super-update</code>  |   
+			[ <code class="option">-v</code>  |   <code class="option">--verbose</code> ]
+		 ] {<em class="replaceable"><code>CATALOGFILE</code></em>} {<em class="replaceable"><code>ENTITIES</code></em>...}</p></div></div><div class="refsect1"><a name="description"></a><h2>DESCRIPTION</h2><p>
+		<span class="command"><strong>xmlcatalog</strong></span> is a command line application allowing users to monitor and
+		manipulate <acronym class="acronym">XML</acronym> and <acronym class="acronym">SGML</acronym> catalogs. It
+		is included in <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>.
+	</p><p>
+		Its functions can be invoked from a single command from the command line,
+		or it can perform multiple functions in interactive mode. It can operate
+		on both <acronym class="acronym">XML</acronym> and <acronym class="acronym">SGML</acronym> files.
+	</p></div><div class="refsect1"><a name="options"></a><h2>OPTIONS</h2><p>
+		<span class="command"><strong>xmlcatalog</strong></span> accepts the following options (in alphabetical order):
+	</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+		<code class="option">--add
+		 <em class="replaceable"><code>TYPE</code></em>
+		 <em class="replaceable"><code>ORIG</code></em>
+		 <em class="replaceable"><code>REPLACE</code></em>
+		</code>
+	</span></dt><dd><p>
+			Add an entry to <code class="filename">CATALOGFILE</code>. <em class="replaceable"><code>TYPE</code></em>
+			indicates the type of entry. Possible types are: <span class="simplelist"><em class="parameter"><code>public</code></em>, <em class="parameter"><code>system</code></em>, <em class="parameter"><code>uri</code></em>, <em class="parameter"><code>rewriteSystem</code></em>, <em class="parameter"><code>rewriteURI</code></em>, <em class="parameter"><code>delegatePublic</code></em>, <em class="parameter"><code>delegateSystem</code></em>, <em class="parameter"><code>delegateURI</code></em>, <em class="parameter"><code>nextCatalog</code></em></span>. <em class="replaceable"><code>ORIG</code></em> is the original
+			reference to be replaced, and <em class="replaceable"><code>REPLACE</code></em>
+			is the <acronym class="acronym">URI</acronym> of the replacement entity to be
+			used. The <code class="option">--add</code> option will not overwrite
+			<code class="filename">CATALOGFILE</code>, outputting
+			to <code class="filename">stdout</code>, unless
+			<code class="option">--noout</code> is used. The <code class="option">--add</code> will
+			always take three parameters even if some of the <acronym class="acronym">XML</acronym>
+			catalog constructs will have only a single argument.
+		</p></dd><dt><span class="term"><code class="option">--add <em class="replaceable"><code>FILENAME</code></em></code></span></dt><dd><p>
+			If the <code class="option">--add</code> option is used following
+			the <code class="option">--sgml</code> option, only a single argument,
+			a <em class="replaceable"><code>FILENAME</code></em>, is used. This is used to add
+			the name of a catalog file to an <acronym class="acronym">SGML</acronym> supercatalog,
+			a file that contains references to other included <acronym class="acronym">SGML</acronym>
+			catalog files.
+		</p></dd><dt><span class="term"><code class="option">--create</code></span></dt><dd><p>
+			Create a new <acronym class="acronym">XML</acronym> catalog. Outputs
+			to <code class="filename">stdout</code>,
+			ignoring <em class="replaceable"><code>filename</code></em> unless <code class="option">--noout</code> is
+			used, in which case it creates a new catalog
+			file <em class="replaceable"><code>filename</code></em>.
+		</p></dd><dt><span class="term"><code class="option">--del <em class="replaceable"><code>VALUE(S)</code></em></code></span></dt><dd><p>
+			Remove entries from <em class="replaceable"><code>CATALOGFILE</code></em>
+			matching <em class="replaceable"><code>VALUE(S)</code></em>. The <code class="option">--del</code>
+			option will not overwrite <em class="replaceable"><code>CATALOGFILE</code></em>,
+			outputting to <code class="filename">stdout</code>,
+			unless <code class="option">--noout</code> is used.
+		</p></dd><dt><span class="term"><code class="option">--noout</code></span></dt><dd><p>
+			Save output to the named file rather than outputting
+			to <code class="filename">stdout</code>.
+		</p></dd><dt><span class="term"><code class="option">--no-super-update</code></span></dt><dd><p>
+			Do not update the <acronym class="acronym">SGML</acronym> super catalog.
+		</p></dd><dt><span class="term"><code class="option">--shell</code></span></dt><dd><p>
+			Run a shell allowing interactive queries on catalog
+			file <em class="replaceable"><code>CATALOGFILE</code></em>. For the set of available
+			commands see <a class="xref" href="#shell" title="SHELL COMMANDS">the section called &#8220;SHELL COMMANDS&#8221;</a>.
+		</p></dd><dt><span class="term"><code class="option">--sgml</code></span></dt><dd><p>
+			Uses <acronym class="acronym">SGML</acronym> super catalogs for <code class="option">--add</code>
+			and <code class="option">--del</code> options.
+		</p></dd><dt><span class="term"><code class="option">-v</code>, </span><span class="term"><code class="option">--verbose</code></span></dt><dd><p>Output debugging information.</p></dd></dl></div><p>
+		Invoking <span class="command"><strong>xmlcatalog</strong></span> non-interactively without a designated action
+		(imposed with options like <code class="option">--add</code>) will result in a lookup
+		of the catalog entry for <em class="replaceable"><code>ENTITIES</code></em> in the
+		catalog denoted with <em class="replaceable"><code>CATALOGFILE</code></em>. The
+		corresponding entries will be output to the command line. This mode of
+		operation, together with <code class="option">--shell</code> mode and non-modifying
+		(i.e. without <code class="option">--noout</code>) direct actions, allows for
+		a special shortcut of the void <em class="replaceable"><code>CATALOGFILE</code></em>
+		specification (possibly expressed as "" in the shell
+		environment) appointing the default system catalog. That simplifies the
+		handling when its exact location is irrelevant but the respective built-in
+		still needs to be consulted.
+	</p></div><div class="refsect1"><a name="shell"></a><h2>SHELL COMMANDS</h2><p>
+		Invoking <span class="command"><strong>xmlcatalog</strong></span> with
+		the <code class="option">--shell <em class="replaceable"><code>CATALOGFILE</code></em></code> option opens
+		a command line shell allowing interactive access to the catalog file
+		identified by <em class="replaceable"><code>CATALOGFILE</code></em>. Invoking the shell
+		provides a command line prompt after which the following commands (described in
+		alphabetical order) can be entered.
+	</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+		<code class="option">add
+		 <em class="replaceable"><code>TYPE</code></em>
+		 <em class="replaceable"><code>ORIG</code></em>
+		 <em class="replaceable"><code>REPLACE</code></em>
+		</code>
+	</span></dt><dd><p>
+			Add an entry to the catalog file. <em class="replaceable"><code>TYPE</code></em>
+			indicates the type of entry. Possible types are: <span class="simplelist"><em class="parameter"><code>public</code></em>, <em class="parameter"><code>system</code></em>, <em class="parameter"><code>uri</code></em>, <em class="parameter"><code>rewriteSystem</code></em>, <em class="parameter"><code>rewriteURI</code></em>, <em class="parameter"><code>delegatePublic</code></em>, <em class="parameter"><code>delegateSystem</code></em>, <em class="parameter"><code>delegateURI</code></em>, <em class="parameter"><code>nextCatalog</code></em></span>. <em class="replaceable"><code>ORIG</code></em> is the original
+			reference to be replaced, and <em class="replaceable"><code>REPLACE</code></em>
+			is the <acronym class="acronym">URI</acronym> of the replacement entity to be
+			used. The <code class="option">--add</code> option will not overwrite
+			<code class="filename">CATALOGFILE</code>, outputting
+			to <code class="filename">stdout</code>, unless
+			<code class="option">--noout</code> is used. The <code class="option">--add</code> will
+			always take three parameters even if some of the <acronym class="acronym">XML</acronym>
+			catalog constructs will have only a single argument.
+		</p></dd><dt><span class="term"><code class="option">debug</code></span></dt><dd><p>
+			Print debugging statements showing the steps <span class="command"><strong>xmlcatalog</strong></span> is executing.
+		</p></dd><dt><span class="term"><code class="option">del <em class="replaceable"><code>VALUE(S)</code></em></code></span></dt><dd><p>
+			Remove the catalog entry corresponding to <em class="replaceable"><code>VALUE(S)</code></em>.
+		</p></dd><dt><span class="term"><code class="option">dump</code></span></dt><dd><p>Print the current catalog.</p></dd><dt><span class="term"><code class="option">exit</code></span></dt><dd><p>Quit the shell.</p></dd><dt><span class="term"><code class="option">public <em class="replaceable"><code>PUBLIC-ID</code></em></code></span></dt><dd><p>
+			Execute a Formal Public Identifier lookup of the catalog entry
+			for <em class="replaceable"><code>PUBLIC-ID</code></em>. The corresponding entry will be
+			output to the command line.
+		</p></dd><dt><span class="term"><code class="option">quiet</code></span></dt><dd><p>Stop printing debugging statements.</p></dd><dt><span class="term"><code class="option">system <em class="replaceable"><code>SYSTEM-ID</code></em></code></span></dt><dd><p>
+			Execute a Formal Public Identifier lookup of the catalog entry
+			for <em class="replaceable"><code>SYSTEM-ID</code></em>. The corresponding entry will be
+			output to the command line.
+		</p></dd></dl></div></div><div class="refsect1"><a name="environment"></a><h2>ENVIRONMENT</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="envar">XML_CATALOG_FILES</code></span></dt><dd><p><acronym class="acronym">XML</acronym> catalog behavior can be changed by redirecting
+			queries to the user's own set of catalogs. This can be done by setting
+			the <code class="envar">XML_CATALOG_FILES</code> environment variable to a list
+			of catalogs. An empty one should deactivate loading the
+			default <code class="filename">/etc/xml/catalog</code> catalog.
+		</p></dd></dl></div></div><div class="refsect1"><a name="diagnostics"></a><h2>DIAGNOSTICS</h2><p>
+		<span class="command"><strong>xmlcatalog</strong></span> return codes provide information that can be used when
+		calling it from scripts.
+	</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="errorcode">0</span></span></dt><dd><p>No error</p></dd><dt><span class="term"><span class="errorcode">1</span></span></dt><dd><p>Failed to remove an entry from the catalog</p></dd><dt><span class="term"><span class="errorcode">2</span></span></dt><dd><p>Failed to save to the catalog, check file permissions</p></dd><dt><span class="term"><span class="errorcode">3</span></span></dt><dd><p>Failed to add an entry to the catalog</p></dd><dt><span class="term"><span class="errorcode">4</span></span></dt><dd><p>Failed to look up an entry in the catalog</p></dd></dl></div></div><div class="refsect1"><a name="seealso"></a><h2>SEE ALSO</h2><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>
+	</p><p>
+		More information can be found at
+		</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> web page <a class="ulink" href="http://www.xmlsoft.org/" target="_top">http://www.xmlsoft.org/</a>
+				</p></li><li class="listitem"><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> catalog support web page
+					at <a class="ulink" href="http://www.xmlsoft.org/catalog.html" target="_top">http://www.xmlsoft.org/catalog.html</a>
+				</p></li><li class="listitem"><p>James Clark's <acronym class="acronym">SGML</acronym> catalog
+					page <a class="ulink" href="http://www.jclark.com/sp/catalog.htm" target="_top">http://www.jclark.com/sp/catalog.htm</a>
+				</p></li><li class="listitem"><p><acronym class="acronym">OASIS</acronym> <acronym class="acronym">XML</acronym> catalog specification
+					<a class="ulink" href="http://www.oasis-open.org/committees/entity/spec.html" target="_top">http://www.oasis-open.org/committees/entity/spec.html</a>
+				</p></li></ul></div><p>
+	</p></div></div></body></html>
diff --git a/doc/xmlcatalog_man.xml b/doc/xmlcatalog_man.xml
index 049ed8f..b3ce8b2 100644
--- a/doc/xmlcatalog_man.xml
+++ b/doc/xmlcatalog_man.xml
@@ -230,6 +230,21 @@
 		</varlistentry>
 	
 	</variablelist>
+
+	<para>
+		Invoking &xmlcatalog; non-interactively without a designated action
+		(imposed with options like <option>--add</option>) will result in a lookup
+		of the catalog entry for <replaceable>ENTITIES</replaceable> in the
+		catalog denoted with <replaceable>CATALOGFILE</replaceable>. The
+		corresponding entries will be output to the command line. This mode of
+		operation, together with <option>--shell</option> mode and non-modifying
+		(i.e. without <option>--noout</option>) direct actions, allows for
+		a special shortcut of the void <replaceable>CATALOGFILE</replaceable>
+		specification (possibly expressed as &quot;&quot; in the shell
+		environment) appointing the default system catalog. That simplifies the
+		handling when its exact location is irrelevant but the respective built-in
+		still needs to be consulted.
+	</para>
 </refsect1>
 
 <refsect1 id="shell">
@@ -315,7 +330,7 @@
 	<term><option>public <replaceable>PUBLIC-ID</replaceable></option></term>
 	<listitem>
 		<para>
-			Execute a Formal Public Identifier look-up of the catalog entry
+			Execute a Formal Public Identifier lookup of the catalog entry
 			for <replaceable>PUBLIC-ID</replaceable>. The corresponding entry will be
 			output to the command line.
 		</para>
@@ -333,7 +348,7 @@
 	<term><option>system <replaceable>SYSTEM-ID</replaceable></option></term>
 	<listitem>
 		<para>
-			Execute a Formal Public Identifier look-up of the catalog entry
+			Execute a Formal Public Identifier lookup of the catalog entry
 			for <replaceable>SYSTEM-ID</replaceable>. The corresponding entry will be
 			output to the command line.
 		</para>
diff --git a/doc/xmllint.html b/doc/xmllint.html
index 0a55877..5fc52c5 100644
--- a/doc/xmllint.html
+++ b/doc/xmllint.html
@@ -1,175 +1,162 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmllint</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"><a name="id2876302"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2>Name</h2><p>xmllint &#8212; command line <span class="acronym">XML</span> tool</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><tt class="command">xmllint</tt>  [[--version] |  [--debug] |  [--shell] |  [--debugent] |  [--copy] |  [--recover] |  [--noent] |  [--noout] |  [--nonet] |  [--htmlout] |  [--nowrap] |  [--valid] |  [--postvalid] |  [--dtdvalid <i class="replaceable"><tt>URL</tt></i>] |  [--dtdvalidfpi <i class="replaceable"><tt>FPI</tt></i>] |  [--timing] |  [--output <i class="replaceable"><tt>file</tt></i>] |  [--repeat] |  [--insert] |  [--compress] |  [--html] |  [--xmlout] |  [--push] |  [--memory] |  [--maxmem <i class="replaceable"><tt>nbbytes</tt></i>] |  [--nowarning] |  [--noblanks] |  [--nocdata] |  [--format] |  [--encode <i class="replaceable"><tt>encoding</tt></i>] |  [--dropdtd] |  [--nsclean] |  [--testIO] |  [--catalogs] |  [--nocatalogs] |  [--auto] |  [--xinclude] |  [--noxincludenode] |  [--loaddtd] |  [--dtdattr] |  [--stream] |  [--walker] |  [--pattern <i class="replaceable"><tt>patternvalue</tt></i>] |  [--chkregister] |  [--relaxng] |  [--schema] |  [--c14n]] [<tt class="option"><i class="replaceable"><tt>xmlfile</tt></i></tt>]</p></div></div><div class="refsect1" lang="en"><a name="introduction"></a><h2>Introduction</h2><p>
-      The xmllint program parses one or more XML files, specified on the
-      command line as <i class="replaceable"><tt>xmlfile</tt></i>. It prints various
-      types of output, depending upon the options selected. It is useful for
-      detecting errors both in <span class="acronym">XML</span> code and in the
-      <span class="acronym">XML</span> parser itself.
-    </p><p>
-      It is included in <span class="application">libxml2</span>.
-    </p></div><div class="refsect1" lang="en"><a name="options"></a><h2>Options</h2><div class="variablelist"><dl><dt><span class="term"><tt class="option">--version</tt></span></dt><dd>
-	    Display the version of
-	    <span class="application">libxml2</span> used.
-	  </dd><dt><span class="term"><tt class="option">--debug</tt></span></dt><dd>
-	    Parse a file and output an annotated tree of the
-	    in-memory version of the document.
-	  </dd><dt><span class="term"><tt class="option">--shell</tt></span></dt><dd>
-	    Run a navigating shell. Details on available commands in shell mode
-	    are below.
-	  </dd><dt><span class="term"><tt class="option">--debugent</tt></span></dt><dd>
-	    Debug the entities defined in the document.
-	  </dd><dt><span class="term"><tt class="option">--copy</tt> </span></dt><dd>
-	    Test the internal copy implementation.
-	  </dd><dt><span class="term"><tt class="option">--recover</tt></span></dt><dd>
-	    Output any parsable portions of an invalid
-	    document.
-	  </dd><dt><span class="term"><tt class="option">--noent</tt></span></dt><dd>
-	    Substitute entity values for entity
-	    references. By default, <span class="application">xmllint</span> leaves entity
-	    references in place.
-	  </dd><dt><span class="term"><tt class="option">--nocdata</tt></span></dt><dd>
-	    Substitute CDATA section by equivalent text nodes.
-	  </dd><dt><span class="term"><tt class="option">--nsclean</tt></span></dt><dd>
-	    Remove redundant namespace declarations.
-	  </dd><dt><span class="term"><tt class="option">--noout</tt></span></dt><dd>
-	    Suppress output. By default,
-	    <span class="application">xmllint</span> outputs the result tree.
-	  </dd><dt><span class="term"><tt class="option">--htmlout</tt></span></dt><dd>
-	    Output results as an <span class="acronym">HTML</span>
-	    file. This causes <span class="application">xmllint</span> to output
-	    the necessary <span class="acronym">HTML</span> tags surrounding the result tree
-	    output so the results can be displayed in a browser. 
-	  </dd><dt><span class="term"><tt class="option">--nowrap </tt></span></dt><dd>
-	    Do not output HTML doc wrapper.
-	  </dd><dt><span class="term"><tt class="option">--valid </tt></span></dt><dd>
-	    Determine if the document is a valid instance
-	    of the included Document Type Definition (<span class="acronym">DTD</span>). A
-	    <span class="acronym">DTD</span> to be validated against also can be specified at
-	    the command line using the <tt class="option">--dtdvalid</tt> option. By default,
-	    <span class="application">xmllint</span> also checks to determine if the
-	    document is well-formed.
-	  </dd><dt><span class="term"><tt class="option">--postvalid</tt></span></dt><dd>
-	    Validate after parsing is completed.
-	  </dd><dt><span class="term"> <tt class="option">--dtdvalid</tt> <i class="replaceable"><tt>URL</tt></i></span></dt><dd>
-	    Use the
-      <span class="acronym">DTD</span> specified by <i class="replaceable"><tt>URL</tt></i> for
-      validation.
-	  </dd><dt><span class="term"> <tt class="option">--dtdvalidfpi</tt> <i class="replaceable"><tt>FPI</tt></i></span></dt><dd>
-	    Use the
-      <span class="acronym">DTD</span> specified by the Public Identifier
-      <i class="replaceable"><tt>FPI</tt></i> for validation, note that this
-      will require a Catalog exporting that Public Identifier to work.
-	  </dd><dt><span class="term"><tt class="option">--timing</tt></span></dt><dd>
-	    Output information about the time it takes
-	    <span class="application">xmllint</span> to perform the various steps.
-	  </dd><dt><span class="term"><tt class="option">--output</tt> <i class="replaceable"><tt>file</tt></i></span></dt><dd>Define a file path where xmllint will save the result of
-	  parsing. Usually the programs build a tree and save it on stdout, with
-	  this option the result XML instance will be saved onto a file.</dd><dt><span class="term"><tt class="option">--repeat</tt></span></dt><dd>
-	    Repeat 100 times, for timing or profiling.
-	  </dd><dt><span class="term"><tt class="option">--insert</tt></span></dt><dd>
-	    Test for valid insertions.
-	  </dd><dt><span class="term"><tt class="option">--compress</tt></span></dt><dd>
-	    Turn on gzip compression of output.
-	  </dd><dt><span class="term"><tt class="option">--html</tt></span></dt><dd>
-	    Use the <span class="acronym">HTML</span> parser.
-	  </dd><dt><span class="term"><tt class="option">--xmlout</tt></span></dt><dd>Used in conjunction with <tt class="option">--html</tt>. Usually
-  when HTML is parsed the document is saved with the HTML serializer, but with
-  this option the resulting document is saved with the XML serializer. This is
-  primarily used to generate XHTML from HTML input.</dd><dt><span class="term"><tt class="option">--push</tt></span></dt><dd>
-	    Use the push mode of the parser.
-	  </dd><dt><span class="term"><tt class="option">--memory</tt></span></dt><dd>
-	   Parse from memory.
-	  </dd><dt><span class="term"><tt class="option">--maxmem</tt> <i class="replaceable"><tt>nnbytes</tt></i></span></dt><dd>Test the parser memory
-  support. <i class="replaceable"><tt>nnbytes</tt></i> is the maximum number of bytes the
-  library is allowed to allocate. This can also be used to make sure batch
-  processing of XML files will not exhaust the virtual memory of the server
-  running them.</dd><dt><span class="term"><tt class="option">--nowarning</tt></span></dt><dd>
-	   Do not emit warnings from the parser and/or validator.
-	  </dd><dt><span class="term"><tt class="option">--noblanks</tt></span></dt><dd>
-	   Drop ignorable blank spaces.
-	  </dd><dt><span class="term"><tt class="option">--format</tt></span></dt><dd>
-	   Reformat and reindent the output. The $XMLLINT_INDENT
-	   environment variable controls the indentation (default 
-	   value is two spaces "  ").
-	  </dd><dt><span class="term"><tt class="option">--testIO</tt></span></dt><dd>
-	   Test user input/output support.
-	  </dd><dt><span class="term"><tt class="option">--encode</tt> <i class="replaceable"><tt>encoding</tt></i></span></dt><dd>
-	   Output in the given encoding.
-	  </dd><dt><span class="term"><tt class="option">--catalogs</tt></span></dt><dd>
-	   Use the catalogs from $SGML_CATALOG_FILES. Otherwise /etc/xml/catalog
-	   is used by default.
-	  </dd><dt><span class="term"><tt class="option">--nocatalogs</tt></span></dt><dd>
-	   Do not use any catalogs.
-	  </dd><dt><span class="term"><tt class="option">--auto</tt></span></dt><dd>
-	   Generate a small document for testing purposes.
-	  </dd><dt><span class="term"><tt class="option">--xinclude</tt></span></dt><dd>
-	   Do XInclude processing.
-	  </dd><dt><span class="term"><tt class="option">--noxincludenode</tt></span></dt><dd>
-	   Do XInclude processing but do not generate XInclude start and end
-	   nodes.
-	  </dd><dt><span class="term"><tt class="option">--loaddtd</tt></span></dt><dd>
-	   Fetch external DTD.
-	  </dd><dt><span class="term"><tt class="option">--dtdattr</tt></span></dt><dd>
-	   Fetch external DTD and populate the tree with inherited attributes.
-	  </dd><dt><span class="term"><tt class="option">--dropdtd</tt></span></dt><dd>
-	    Remove <span class="acronym">DTD</span> from output.
-	  </dd><dt><span class="term"><tt class="option">--stream</tt></span></dt><dd>Use streaming API - useful when  used  in combination with
-              --relaxng or --valid options for validation of files that are
-	    too large to be held in memory.</dd><dt><span class="term"><tt class="option">--walker</tt></span></dt><dd>Test the walker module, which is a reader interface but for a
-  document tree, instead of using the reader API on an unparsed document it
-  works on a existing in-memory tree. Used in debugging.</dd><dt><span class="term"><tt class="option">--chkregister</tt></span></dt><dd>Turn on node registration. Useful for developers testing
-	  libxml2 node tracking code.</dd><dt><span class="term"><tt class="option">--pattern</tt> <i class="replaceable"><tt>patternvalue</tt></i></span></dt><dd>Used to exercise the pattern recognition engine, which can be
-	  used with the reader interface to the parser. It allows to select some
-	  nodes in the document based on an XPath (subset) expression. Used for
-	  debugging.</dd><dt><span class="term"><tt class="option">--relaxng</tt> <i class="replaceable"><tt>schema</tt></i></span></dt><dd>Use RelaxNG file named <i class="replaceable"><tt>schema</tt></i> for
-	  validation.</dd><dt><span class="term"><tt class="option">--schema</tt> <i class="replaceable"><tt>schema</tt></i></span></dt><dd>Use a W3C XML Schema file named <i class="replaceable"><tt>schema</tt></i> for validation.</dd><dt><span class="term">
-      <tt class="option">--c14n</tt></span></dt><dd>Use the W3C XML Canonicalisation (C14N) to
-serialize the result of parsing to stdout. It keeps comments in
-the result.</dd></dl></div></div><div class="refsect1" lang="en"><a name="shell"></a><h2>Shell</h2><p>
-      <span class="application">xmllint</span> offers an interactive shell mode
-      invoked with the <tt class="option">--shell</tt> command. Available commands in
-      shell mode include:
-    </p><div class="variablelist"><dl><dt><span class="term"><tt class="option">base</tt></span></dt><dd>
-	    display XML base of the node
-	  </dd><dt><span class="term"><tt class="option">bye</tt></span></dt><dd>
-	    leave shell
-	  </dd><dt><span class="term"><tt class="option">cat <i class="replaceable"><tt>node</tt></i></tt></span></dt><dd>
-	    Display node if given or current node.
-	  </dd><dt><span class="term"><tt class="option">cd <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
-	    Change the current node to <i class="replaceable"><tt>path</tt></i> (if given
-	    and unique) or root if no argument given.
-	  </dd><dt><span class="term"><tt class="option">dir <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
-	    Dumps information about the node (namespace, attributes, content).
-	  </dd><dt><span class="term"><tt class="option">du <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
-	    Show the structure of the subtree under path or the current node.
-	  </dd><dt><span class="term"><tt class="option">exit</tt></span></dt><dd>
-	    Leave the shell.
-	  </dd><dt><span class="term"><tt class="option">help</tt></span></dt><dd>
-	    Show this help.
-	  </dd><dt><span class="term"><tt class="option">free</tt></span></dt><dd>
-	    Display memory usage.
-	  </dd><dt><span class="term"><tt class="option">load <i class="replaceable"><tt>name</tt></i></tt></span></dt><dd>
-	    Load a new document with the given name.
-	  </dd><dt><span class="term"><tt class="option">ls <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
-	    List contents of <i class="replaceable"><tt>path</tt></i> (if given) or the
-	    current directory.
-	  </dd><dt><span class="term"><tt class="option">pwd</tt></span></dt><dd>
-	    Display the path to the current node.
-	  </dd><dt><span class="term"><tt class="option">quit</tt></span></dt><dd>
-	    Leave the shell.
-	  </dd><dt><span class="term"><tt class="option">save <i class="replaceable"><tt>name</tt></i></tt></span></dt><dd>
-	    Saves the current document to <i class="replaceable"><tt>name</tt></i> if
-	    given or to the original name.
-	  </dd><dt><span class="term"><tt class="option">validate</tt></span></dt><dd>
-	    Check the document for error.
-	  </dd><dt><span class="term"><tt class="option">write <i class="replaceable"><tt>name</tt></i></tt></span></dt><dd>
-	    Write the current node to the given filename.
-	  </dd></dl></div></div><div class="refsect1" lang="en"><h2>Catalogs</h2><p>Catalog behavior can be changed by redirecting
-     queries to the user's own set of catalogs. This can be done by setting the
-     <tt class="varname">XML_CATALOG_FILES</tt> environment variable to a list of
-     catalogs. An empty one should deactivate loading the default
-      <tt class="filename">/etc/xml/catalog</tt> default catalog.</p></div><div class="refsect1" lang="en"><h2>Debugging Catalogs</h2><p>Setting the environment variable <tt class="varname">XML_DEBUG_CATALOG</tt>
-    using the command <b class="command">"export XML_DEBUG_CATALOG="</b>
-    outputs debugging information related to catalog operations.</p></div><div class="refsect1" lang="en"><h2>Error Return Codes</h2><p>On the completion of execution, <span class="application">Xmllint</span>
-    returns the following error codes:</p><div class="variablelist"><dl><dt><span class="term">0</span></dt><dd>No error</dd><dt><span class="term">1</span></dt><dd>Unclassified</dd><dt><span class="term">2</span></dt><dd>Error in DTD</dd><dt><span class="term">3</span></dt><dd>Validation error</dd><dt><span class="term">4</span></dt><dd>Validation error</dd><dt><span class="term">5</span></dt><dd>Error in schema compilation</dd><dt><span class="term">6</span></dt><dd>Error writing output</dd><dt><span class="term">7</span></dt><dd>Error in pattern (generated when
-	  [<span class="optional">--pattern</span>] option is used)</dd><dt><span class="term">8</span></dt><dd>Error in Reader registration (generated when
-	  [<span class="optional">--chkregister</span>] option is used)</dd><dt><span class="term">9</span></dt><dd>Out of memory error</dd></dl></div></div></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmllint</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry"><a name="idm1"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>xmllint &#8212; command line <acronym class="acronym">XML</acronym> tool</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">xmllint</code>  [ <code class="option">--version</code>  |   <code class="option">--debug</code>  |   <code class="option">--shell</code>  |   <code class="option">--xpath "<em class="replaceable"><code>XPath_expression</code></em>"</code>  |   <code class="option">--debugent</code>  |   <code class="option">--copy</code>  |   <code class="option">--recover</code>  |   <code class="option">--noent</code>  |   <code class="option">--noout</code>  |   <code class="option">--nonet</code>  |   <code class="option">--path "<em class="replaceable"><code>PATH(S)</code></em>"</code>  |   <code class="option">--load-trace</code>  |   <code class="option">--htmlout</code>  |   <code class="option">--nowrap</code>  |   <code class="option">--valid</code>  |   <code class="option">--postvalid</code>  |   <code class="option">--dtdvalid <em class="replaceable"><code>URL</code></em></code>  |   <code class="option">--dtdvalidfpi <em class="replaceable"><code>FPI</code></em></code>  |   <code class="option">--timing</code>  |   <code class="option">--output <em class="replaceable"><code>FILE</code></em></code>  |   <code class="option">--repeat</code>  |   <code class="option">--insert</code>  |   <code class="option">--compress</code>  |   <code class="option">--html</code>  |   <code class="option">--xmlout</code>  |   <code class="option">--push</code>  |   <code class="option">--memory</code>  |   <code class="option">--maxmem <em class="replaceable"><code>NBBYTES</code></em></code>  |   <code class="option">--nowarning</code>  |   <code class="option">--noblanks</code>  |   <code class="option">--nocdata</code>  |   <code class="option">--format</code>  |   <code class="option">--encode <em class="replaceable"><code>ENCODING</code></em></code>  |   <code class="option">--dropdtd</code>  |   <code class="option">--nsclean</code>  |   <code class="option">--testIO</code>  |   <code class="option">--catalogs</code>  |   <code class="option">--nocatalogs</code>  |   <code class="option">--auto</code>  |   <code class="option">--xinclude</code>  |   <code class="option">--noxincludenode</code>  |   <code class="option">--loaddtd</code>  |   <code class="option">--dtdattr</code>  |   <code class="option">--stream</code>  |   <code class="option">--walker</code>  |   <code class="option">--pattern <em class="replaceable"><code>PATTERNVALUE</code></em></code>  |   <code class="option">--chkregister</code>  |   <code class="option">--relaxng <em class="replaceable"><code>SCHEMA</code></em></code>  |   <code class="option">--schema <em class="replaceable"><code>SCHEMA</code></em></code>  |   <code class="option">--c14n</code> ] { <em class="replaceable"><code>XML-FILE(S)</code></em>...  |   - }</p></div><div class="cmdsynopsis"><p><code class="command">xmllint</code>   <code class="option">--help</code> </p></div></div><div class="refsect1"><a name="description"></a><h2>DESCRIPTION</h2><p>
+		The <span class="command"><strong>xmllint</strong></span> program parses one or more <acronym class="acronym">XML</acronym> files,
+		specified on the command line as <em class="replaceable"><code>XML-FILE</code></em>
+		(or the standard input if the filename provided
+		is <span class="bold"><strong>-</strong></span> ). It prints various types of
+		output, depending upon the options selected. It is useful for detecting
+		errors both in <acronym class="acronym">XML</acronym> code and in
+		the <acronym class="acronym">XML</acronym> parser itself.
+	</p><p><span class="command"><strong>xmllint</strong></span> is included in <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>.</p></div><div class="refsect1"><a name="options"></a><h2>OPTIONS</h2><p>
+		<span class="command"><strong>xmllint</strong></span> accepts the following options (in alphabetical order):
+	</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="option">--auto</code></span></dt><dd><p>Generate a small document for testing purposes.</p></dd><dt><span class="term"><code class="option">--catalogs</code></span></dt><dd><p>
+			Use the <acronym class="acronym">SGML</acronym> catalog(s) from <code class="envar">SGML_CATALOG_FILES</code>.
+			Otherwise <acronym class="acronym">XML</acronym> catalogs starting
+			from <code class="filename">/etc/xml/catalog</code> are used by default.
+		</p></dd><dt><span class="term"><code class="option">--chkregister</code></span></dt><dd><p>
+			Turn on node registration. Useful for developers testing <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> node tracking code.
+		</p></dd><dt><span class="term"><code class="option">--compress</code></span></dt><dd><p>
+			Turn on <span class="citerefentry"><span class="refentrytitle">gzip</span>(1)</span> compression of output.
+		</p></dd><dt><span class="term"><code class="option">--copy</code></span></dt><dd><p>Test the internal copy implementation.</p></dd><dt><span class="term"><code class="option">--c14n</code></span></dt><dd><p>
+			Use the W3C <acronym class="acronym">XML</acronym> Canonicalisation (<acronym class="acronym">C14N</acronym>) to
+			serialize the result of parsing to <code class="filename">stdout</code>.
+			It keeps comments in the result.
+		</p></dd><dt><span class="term"><code class="option">--dtdvalid <em class="replaceable"><code>URL</code></em></code></span></dt><dd><p>
+			Use the <acronym class="acronym">DTD</acronym> specified by
+			an <em class="replaceable"><code>URL</code></em> for validation.
+		</p></dd><dt><span class="term"><code class="option">--dtdvalidfpi <em class="replaceable"><code>FPI</code></em></code></span></dt><dd><p>
+			Use the <acronym class="acronym">DTD</acronym> specified by a Formal Public
+			Identifier <em class="replaceable"><code>FPI</code></em> for validation, note that this
+			will require a catalog exporting that Formal Public Identifier to work.
+		</p></dd><dt><span class="term"><code class="option">--debug</code></span></dt><dd><p>
+			Parse a file and output an annotated tree of the
+			in-memory version of the document.
+		</p></dd><dt><span class="term"><code class="option">--debugent</code></span></dt><dd><p>Debug the entities defined in the document.</p></dd><dt><span class="term"><code class="option">--dropdtd</code></span></dt><dd><p>Remove <acronym class="acronym">DTD</acronym> from output.</p></dd><dt><span class="term"><code class="option">--dtdattr</code></span></dt><dd><p>
+			Fetch external <acronym class="acronym">DTD</acronym> and populate the tree with
+			inherited attributes.
+		</p></dd><dt><span class="term"><code class="option">--encode <em class="replaceable"><code>ENCODING</code></em></code></span></dt><dd><p>Output in the given encoding. Note that this works for full document not fragments or result from XPath queries.</p></dd><dt><span class="term"><code class="option">--format</code></span></dt><dd><p>
+			Reformat and reindent the output. The <code class="envar">XMLLINT_INDENT</code>
+			environment variable controls the indentation. The default value is two
+			spaces "  ").
+		</p></dd><dt><span class="term"><code class="option">--help</code></span></dt><dd><p>Print out a short usage summary for <span class="command"><strong>xmllint</strong></span>.</p></dd><dt><span class="term"><code class="option">--html</code></span></dt><dd><p>Use the <acronym class="acronym">HTML</acronym> parser.</p></dd><dt><span class="term"><code class="option">--htmlout</code></span></dt><dd><p>
+			Output results as an <acronym class="acronym">HTML</acronym> file. This
+			causes <span class="command"><strong>xmllint</strong></span> to output the necessary <acronym class="acronym">HTML</acronym>
+			tags surrounding the result tree output so the results can be
+			displayed/viewed in a browser.
+		</p></dd><dt><span class="term"><code class="option">--insert</code></span></dt><dd><p>Test for valid insertions.</p></dd><dt><span class="term"><code class="option">--loaddtd</code></span></dt><dd><p>Fetch an external <acronym class="acronym">DTD</acronym>.</p></dd><dt><span class="term"><code class="option">--load-trace</code></span></dt><dd><p>
+			Display all the documents loaded during the processing
+			to <code class="filename">stderr</code>.
+		</p></dd><dt><span class="term"><code class="option">--maxmem <em class="replaceable"><code>NNBYTES</code></em></code></span></dt><dd><p>
+			Test the parser memory support. <em class="replaceable"><code>NNBYTES</code></em>
+			is the maximum number of bytes the library is allowed to allocate.
+			This can also be used to make sure batch processing
+			of <acronym class="acronym">XML</acronym> files will not exhaust the virtual memory
+			of the server running them.
+		</p></dd><dt><span class="term"><code class="option">--memory</code></span></dt><dd><p>Parse from memory.</p></dd><dt><span class="term"><code class="option">--noblanks</code></span></dt><dd><p>Drop ignorable blank spaces.</p></dd><dt><span class="term"><code class="option">--nocatalogs</code></span></dt><dd><p>Do not use any catalogs.</p></dd><dt><span class="term"><code class="option">--nocdata</code></span></dt><dd><p>Substitute CDATA section by equivalent text nodes.</p></dd><dt><span class="term"><code class="option">--noent</code></span></dt><dd><p>
+			Substitute entity values for entity references. By default, <span class="command"><strong>xmllint</strong></span>
+			leaves entity references in place.
+		</p></dd><dt><span class="term"><code class="option">--nonet</code></span></dt><dd><p>
+			Do not use the Internet to fetch <acronym class="acronym">DTD</acronym>s or entities.
+		</p></dd><dt><span class="term"><code class="option">--noout</code></span></dt><dd><p>
+			Suppress output. By default, <span class="command"><strong>xmllint</strong></span> outputs the result tree.
+		</p></dd><dt><span class="term"><code class="option">--nowarning</code></span></dt><dd><p>Do not emit warnings from the parser and/or validator.</p></dd><dt><span class="term"><code class="option">--nowrap</code></span></dt><dd><p>Do not output <acronym class="acronym">HTML</acronym> doc wrapper.</p></dd><dt><span class="term"><code class="option">--noxincludenode</code></span></dt><dd><p>
+			Do XInclude processing but do not generate XInclude start and end nodes.
+		</p></dd><dt><span class="term"><code class="option">--nsclean</code></span></dt><dd><p>Remove redundant namespace declarations.</p></dd><dt><span class="term"><code class="option">--output <em class="replaceable"><code>FILE</code></em></code></span></dt><dd><p>
+			Define a file path where <span class="command"><strong>xmllint</strong></span> will save the result of parsing.
+			Usually the programs build a tree and save it
+			on <code class="filename">stdout</code>, with this option
+			the result <acronym class="acronym">XML</acronym> instance will be saved onto a file.
+		</p></dd><dt><span class="term"><code class="option">--path "<em class="replaceable"><code>PATH(S)</code></em>"</code></span></dt><dd><p>
+			Use the (space- or colon-separated) list of filesystem paths specified
+			by <em class="replaceable"><code>PATHS</code></em> to load <acronym class="acronym">DTD</acronym>s or
+			entities. Enclose space-separated lists by quotation marks.
+		</p></dd><dt><span class="term"><code class="option">--pattern <em class="replaceable"><code>PATTERNVALUE</code></em></code></span></dt><dd><p>
+			Used to exercise the pattern recognition engine, which can be used
+			with the reader interface to the parser. It allows to select some
+			nodes in the document based on an XPath (subset) expression. Used
+			for debugging.
+		</p></dd><dt><span class="term"><code class="option">--postvalid</code></span></dt><dd><p>Validate after parsing has completed.</p></dd><dt><span class="term"><code class="option">--push</code></span></dt><dd><p>Use the push mode of the parser.</p></dd><dt><span class="term"><code class="option">--recover</code></span></dt><dd><p>Output any parsable portions of an invalid document.</p></dd><dt><span class="term"><code class="option">--relaxng <em class="replaceable"><code>SCHEMA</code></em></code></span></dt><dd><p>
+			Use RelaxNG file named <em class="replaceable"><code>SCHEMA</code></em>
+			for validation.
+		</p></dd><dt><span class="term"><code class="option">--repeat</code></span></dt><dd><p>Repeat 100 times, for timing or profiling.</p></dd><dt><span class="term"><code class="option">--schema <em class="replaceable"><code>SCHEMA</code></em></code></span></dt><dd><p>
+			Use a W3C <acronym class="acronym">XML</acronym> Schema file
+			named <em class="replaceable"><code>SCHEMA</code></em> for validation.
+		</p></dd><dt><span class="term"><code class="option">--shell</code></span></dt><dd><p>
+			Run a navigating shell. Details on available commands in shell mode
+			are below (see <a class="xref" href="#shell" title="SHELL COMMANDS">the section called &#8220;SHELL COMMANDS&#8221;</a>).
+		</p></dd><dt><span class="term"><code class="option">--xpath "<em class="replaceable"><code>XPath_expression</code></em>"</code></span></dt><dd><p>
+			Run an XPath expression given as argument and print the
+			result. In case of a nodeset result, each node in the
+			node set is serialized in full in the output. In case
+			of an empty node set the "XPath set is empty" result
+			will be shown and an error exit code will be returned.
+		</p></dd><dt><span class="term"><code class="option">--stream</code></span></dt><dd><p>
+			Use streaming <acronym class="acronym">API</acronym> - useful when used in combination
+			with <code class="option">--relaxng</code> or <code class="option">--valid</code> options
+			for validation of files that are too large to be held in memory.
+		</p></dd><dt><span class="term"><code class="option">--testIO</code></span></dt><dd><p>Test user input/output support.</p></dd><dt><span class="term"><code class="option">--timing</code></span></dt><dd><p>
+			Output information about the time it takes <span class="command"><strong>xmllint</strong></span> to perform the
+			various steps.
+		</p></dd><dt><span class="term"><code class="option">--valid</code></span></dt><dd><p>
+			Determine if the document is a valid instance of the included
+			Document Type Definition (<acronym class="acronym">DTD</acronym>).
+			A <acronym class="acronym">DTD</acronym> to be validated against also can be
+			specified at the command line using the <code class="option">--dtdvalid</code>
+			option. By default, <span class="command"><strong>xmllint</strong></span> also checks to determine if the
+			document is well-formed.
+		</p></dd><dt><span class="term"><code class="option">--version</code></span></dt><dd><p>
+			Display the version of <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> used.
+		</p></dd><dt><span class="term"><code class="option">--walker</code></span></dt><dd><p>
+			Test the walker module, which is a reader interface but for a
+			document tree, instead of using the reader <acronym class="acronym">API</acronym> on
+			an unparsed document it works on an existing in-memory tree. Used for
+			debugging.
+		</p></dd><dt><span class="term"><code class="option">--xinclude</code></span></dt><dd><p>Do XInclude processing.</p></dd><dt><span class="term"><code class="option">--xmlout</code></span></dt><dd><p>
+			Used in conjunction with <code class="option">--html</code>. Usually
+			when <acronym class="acronym">HTML</acronym> is parsed the document is saved with
+			the <acronym class="acronym">HTML</acronym> serializer. But with this option the
+			resulting document is saved with the <acronym class="acronym">XML</acronym>
+			serializer. This is primarily used to
+			generate <acronym class="acronym">XHTML</acronym> from <acronym class="acronym">HTML</acronym> input.
+		</p></dd></dl></div></div><div class="refsect1"><a name="shell"></a><h2>SHELL COMMANDS</h2><p>
+		<span class="command"><strong>xmllint</strong></span> offers an interactive shell mode invoked with
+		the <code class="option">--shell</code> command. Available commands in shell mode
+		include (in alphabetical order):
+	</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="command"><strong>base</strong></span></span></dt><dd><p>Display <acronym class="acronym">XML</acronym> base of the node.</p></dd><dt><span class="term"><span class="command"><strong>bye</strong></span></span></dt><dd><p>Leave the shell.</p></dd><dt><span class="term"><span class="command"><strong>cat <em class="replaceable"><code>NODE</code></em></strong></span></span></dt><dd><p>Display the given node or the current one.</p></dd><dt><span class="term"><span class="command"><strong>cd <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>
+			Change the current node to the given path (if unique) or root if no
+			argument is given.
+		</p></dd><dt><span class="term"><span class="command"><strong>dir <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>
+			Dumps information about the node (namespace, attributes, content).
+		</p></dd><dt><span class="term"><span class="command"><strong>du <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>
+			Show the structure of the subtree under the given path or the current node.
+		</p></dd><dt><span class="term"><span class="command"><strong>exit</strong></span></span></dt><dd><p>Leave the shell.</p></dd><dt><span class="term"><span class="command"><strong>help</strong></span></span></dt><dd><p>Show this help.</p></dd><dt><span class="term"><span class="command"><strong>free</strong></span></span></dt><dd><p>Display memory usage.</p></dd><dt><span class="term"><span class="command"><strong>load <em class="replaceable"><code>FILENAME</code></em></strong></span></span></dt><dd><p>Load a new document with the given filename.</p></dd><dt><span class="term"><span class="command"><strong>ls <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>List contents of the given path or the current directory.</p></dd><dt><span class="term"><span class="command"><strong>pwd</strong></span></span></dt><dd><p>Display the path to the current node.</p></dd><dt><span class="term"><span class="command"><strong>quit</strong></span></span></dt><dd><p>Leave the shell.</p></dd><dt><span class="term"><span class="command"><strong>save <em class="replaceable"><code>FILENAME</code></em></strong></span></span></dt><dd><p>
+			Save the current document to the given filename or to the original name.
+		</p></dd><dt><span class="term"><code class="option">validate</code></span></dt><dd><p>Check the document for errors.</p></dd><dt><span class="term"><span class="command"><strong>write <em class="replaceable"><code>FILENAME</code></em></strong></span></span></dt><dd><p>Write the current node to the given filename.</p></dd></dl></div></div><div class="refsect1"><a name="environment"></a><h2>ENVIRONMENT</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="envar">SGML_CATALOG_FILES</code></span></dt><dd><p><acronym class="acronym">SGML</acronym> catalog behavior can be changed by redirecting
+			queries to the user's own set of catalogs. This can be done by setting
+			the <code class="envar">SGML_CATALOG_FILES</code> environment variable to a list
+			of catalogs. An empty one should deactivate loading the
+			default <code class="filename">/etc/sgml/catalog</code> catalog.
+		</p></dd><dt><span class="term"><code class="envar">XML_CATALOG_FILES</code></span></dt><dd><p><acronym class="acronym">XML</acronym> catalog behavior can be changed by redirecting
+			queries to the user's own set of catalogs. This can be done by setting
+			the <code class="envar">XML_CATALOG_FILES</code> environment variable to a list
+			of catalogs. An empty one should deactivate loading the
+			default <code class="filename">/etc/xml/catalog</code> catalog.
+		</p></dd><dt><span class="term"><code class="envar">XML_DEBUG_CATALOG</code></span></dt><dd><p>Setting the environment variable <code class="envar">XML_DEBUG_CATALOG</code>
+			to <em class="parameter"><code>non-zero</code></em> using the <span class="command"><strong>export</strong></span>
+			command outputs debugging information related to catalog operations.
+		</p></dd><dt><span class="term"><code class="envar">XMLLINT_INDENT</code></span></dt><dd><p>Setting the environment variable <code class="envar">XMLLINT_INDENT</code>
+			controls the indentation. The default value is two spaces "  ".
+		</p></dd></dl></div></div><div class="refsect1"><a name="diagnostics"></a><h2>DIAGNOSTICS</h2><p>
+		<span class="command"><strong>xmllint</strong></span> return codes provide information that can be used when
+		calling it from scripts.
+	</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="errorcode">0</span></span></dt><dd><p>No error</p></dd><dt><span class="term"><span class="errorcode">1</span></span></dt><dd><p>Unclassified</p></dd><dt><span class="term"><span class="errorcode">2</span></span></dt><dd><p>Error in <acronym class="acronym">DTD</acronym></p></dd><dt><span class="term"><span class="errorcode">3</span></span></dt><dd><p>Validation error</p></dd><dt><span class="term"><span class="errorcode">4</span></span></dt><dd><p>Validation error</p></dd><dt><span class="term"><span class="errorcode">5</span></span></dt><dd><p>Error in schema compilation</p></dd><dt><span class="term"><span class="errorcode">6</span></span></dt><dd><p>Error writing output</p></dd><dt><span class="term"><span class="errorcode">7</span></span></dt><dd><p>
+			Error in pattern (generated when <code class="option">--pattern</code> option is used)
+		</p></dd><dt><span class="term"><span class="errorcode">8</span></span></dt><dd><p>
+			Error in Reader registration (generated
+			when <code class="option">--chkregister</code> option is used)
+		</p></dd><dt><span class="term"><span class="errorcode">9</span></span></dt><dd><p>Out of memory error</p></dd></dl></div></div><div class="refsect1"><a name="seealso"></a><h2>SEE ALSO</h2><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>
+	</p><p>
+		More information can be found at
+		</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> web page <a class="ulink" href="http://www.xmlsoft.org/" target="_top">http://www.xmlsoft.org/</a>
+				</p></li><li class="listitem"><p>W3C <acronym class="acronym">XSLT</acronym> page <a class="ulink" href="http://www.w3.org/TR/xslt" target="_top">http://www.w3.org/TR/xslt</a>
+				</p></li></ul></div><p>
+	</p></div></div></body></html>
diff --git a/elfgcchack.h b/elfgcchack.h
index 8c52884..5ac93bf 100644
--- a/elfgcchack.h
+++ b/elfgcchack.h
@@ -11,7 +11,7 @@
 #ifdef IN_LIBXML
 #ifdef __GNUC__
 #ifdef PIC
-#ifdef linux
+#ifdef __linux__
 #if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
 
 #include "libxml/c14n.h"
diff --git a/encoding.c b/encoding.c
index e49c7f8..de7b511 100644
--- a/encoding.c
+++ b/encoding.c
@@ -110,6 +110,9 @@
   if (conv == NULL)
     return NULL;
 
+  conv->pivot_source = conv->pivot_buf;
+  conv->pivot_target = conv->pivot_buf;
+
   conv->uconv = ucnv_open(name, &status);
   if (U_FAILURE(status))
     goto error;
@@ -354,8 +357,14 @@
 {
     int len;
 
-    if ((out == NULL) || (inb == NULL) || (outlen == NULL) || (inlenb == NULL))
+    if ((out == NULL) || (outlen == NULL) || (inlenb == NULL))
 	return(-1);
+    if (inb == NULL) {
+        /* inb == NULL means output is initialized. */
+        *outlen = 0;
+        *inlenb = 0;
+        return(0);
+    }
     if (*outlen > *inlenb) {
 	len = *inlenb;
     } else {
@@ -1844,6 +1853,7 @@
  * @outlen:  the length of @out
  * @in:  a pointer to an array of ISO Latin 1 chars
  * @inlen:  the length of @in
+ * @flush: if true, indicates end of input
  *
  * Returns 0 if success, or
  *     -1 by lack of space, or
@@ -1857,7 +1867,7 @@
  */
 static int
 xmlUconvWrapper(uconv_t *cd, int toUnicode, unsigned char *out, int *outlen,
-                const unsigned char *in, int *inlen) {
+                const unsigned char *in, int *inlen, int flush) {
     const char *ucv_in = (const char *) in;
     char *ucv_out = (char *) out;
     UErrorCode err = U_ZERO_ERROR;
@@ -1867,33 +1877,31 @@
         return(-1);
     }
 
-    /*
-     * TODO(jungshik)
-     * 1. is ucnv_convert(To|From)Algorithmic better?
-     * 2. had we better use an explicit pivot buffer?
-     * 3. error returned comes from 'fromUnicode' only even
-     *    when toUnicode is true !
-     */
     if (toUnicode) {
         /* encoding => UTF-16 => UTF-8 */
         ucnv_convertEx(cd->utf8, cd->uconv, &ucv_out, ucv_out + *outlen,
-                       &ucv_in, ucv_in + *inlen, NULL, NULL, NULL, NULL,
-                       0, TRUE, &err);
+                       &ucv_in, ucv_in + *inlen, cd->pivot_buf,
+                       &cd->pivot_source, &cd->pivot_target,
+                       cd->pivot_buf + ICU_PIVOT_BUF_SIZE, 0, flush, &err);
     } else {
         /* UTF-8 => UTF-16 => encoding */
         ucnv_convertEx(cd->uconv, cd->utf8, &ucv_out, ucv_out + *outlen,
-                       &ucv_in, ucv_in + *inlen, NULL, NULL, NULL, NULL,
-                       0, TRUE, &err);
+                       &ucv_in, ucv_in + *inlen, cd->pivot_buf,
+                       &cd->pivot_source, &cd->pivot_target,
+                       cd->pivot_buf + ICU_PIVOT_BUF_SIZE, 0, flush, &err);
     }
     *inlen = ucv_in - (const char*) in;
     *outlen = ucv_out - (char *) out;
-    if (U_SUCCESS(err))
+    if (U_SUCCESS(err)) {
+        /* reset pivot buf if this is the last call for input (flush==TRUE) */
+        if (flush)
+            cd->pivot_source = cd->pivot_target = cd->pivot_buf;
         return 0;
+    }
     if (err == U_BUFFER_OVERFLOW_ERROR)
         return -1;
     if (err == U_INVALID_CHAR_FOUND || err == U_ILLEGAL_CHAR_FOUND)
         return -2;
-    /* if (err == U_TRUNCATED_CHAR_FOUND) */
     return -3;
 }
 #endif /* LIBXML_ICU_ENABLED */
@@ -1904,6 +1912,64 @@
  *									*
  ************************************************************************/
 
+static int
+xmlEncInputChunk(xmlCharEncodingHandler *handler, unsigned char *out,
+                 int *outlen, const unsigned char *in, int *inlen, int flush) {
+    int ret;
+    (void)flush;
+
+    if (handler->input != NULL) {
+        ret = handler->input(out, outlen, in, inlen);
+    }
+#ifdef LIBXML_ICONV_ENABLED
+    else if (handler->iconv_in != NULL) {
+        ret = xmlIconvWrapper(handler->iconv_in, out, outlen, in, inlen);
+    }
+#endif /* LIBXML_ICONV_ENABLED */
+#ifdef LIBXML_ICU_ENABLED
+    else if (handler->uconv_in != NULL) {
+        ret = xmlUconvWrapper(handler->uconv_in, 1, out, outlen, in, inlen,
+                              flush);
+    }
+#endif /* LIBXML_ICU_ENABLED */
+    else {
+        *outlen = 0;
+        *inlen = 0;
+        ret = -2;
+    }
+
+    return(ret);
+}
+
+/* Returns -4 if no output function was found. */
+static int
+xmlEncOutputChunk(xmlCharEncodingHandler *handler, unsigned char *out,
+                  int *outlen, const unsigned char *in, int *inlen) {
+    int ret;
+
+    if (handler->output != NULL) {
+        ret = handler->output(out, outlen, in, inlen);
+    }
+#ifdef LIBXML_ICONV_ENABLED
+    else if (handler->iconv_out != NULL) {
+        ret = xmlIconvWrapper(handler->iconv_out, out, outlen, in, inlen);
+    }
+#endif /* LIBXML_ICONV_ENABLED */
+#ifdef LIBXML_ICU_ENABLED
+    else if (handler->uconv_out != NULL) {
+        ret = xmlUconvWrapper(handler->uconv_out, 0, out, outlen, in, inlen,
+                              TRUE);
+    }
+#endif /* LIBXML_ICU_ENABLED */
+    else {
+        *outlen = 0;
+        *inlen = 0;
+        ret = -4;
+    }
+
+    return(ret);
+}
+
 /**
  * xmlCharEncFirstLineInt:
  * @handler:	char enconding transformation data structure
@@ -1922,7 +1988,7 @@
 int
 xmlCharEncFirstLineInt(xmlCharEncodingHandler *handler, xmlBufferPtr out,
                        xmlBufferPtr in, int len) {
-    int ret = -2;
+    int ret;
     int written;
     int toconv;
 
@@ -1953,33 +2019,13 @@
 	written = out->size - out->use - 1;
     }
 
-    if (handler->input != NULL) {
-	ret = handler->input(&out->content[out->use], &written,
-	                     in->content, &toconv);
-	xmlBufferShrink(in, toconv);
-	out->use += written;
-	out->content[out->use] = 0;
-    }
-#ifdef LIBXML_ICONV_ENABLED
-    else if (handler->iconv_in != NULL) {
-	ret = xmlIconvWrapper(handler->iconv_in, &out->content[out->use],
-	                      &written, in->content, &toconv);
-	xmlBufferShrink(in, toconv);
-	out->use += written;
-	out->content[out->use] = 0;
-	if (ret == -1) ret = -3;
-    }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
-    else if (handler->uconv_in != NULL) {
-	ret = xmlUconvWrapper(handler->uconv_in, 1, &out->content[out->use],
-	                      &written, in->content, &toconv);
-	xmlBufferShrink(in, toconv);
-	out->use += written;
-	out->content[out->use] = 0;
-	if (ret == -1) ret = -3;
-    }
-#endif /* LIBXML_ICU_ENABLED */
+    ret = xmlEncInputChunk(handler, &out->content[out->use], &written,
+                           in->content, &toconv, 0);
+    xmlBufferShrink(in, toconv);
+    out->use += written;
+    out->content[out->use] = 0;
+    if (ret == -1) ret = -3;
+
 #ifdef DEBUG_ENCODING
     switch (ret) {
         case 0:
@@ -2049,7 +2095,7 @@
 int
 xmlCharEncFirstLineInput(xmlParserInputBufferPtr input, int len)
 {
-    int ret = -2;
+    int ret;
     size_t written;
     size_t toconv;
     int c_in;
@@ -2091,32 +2137,13 @@
 
     c_in = toconv;
     c_out = written;
-    if (input->encoder->input != NULL) {
-        ret = input->encoder->input(xmlBufEnd(out), &c_out,
-                                    xmlBufContent(in), &c_in);
-        xmlBufShrink(in, c_in);
-        xmlBufAddLen(out, c_out);
-    }
-#ifdef LIBXML_ICONV_ENABLED
-    else if (input->encoder->iconv_in != NULL) {
-        ret = xmlIconvWrapper(input->encoder->iconv_in, xmlBufEnd(out),
-                              &c_out, xmlBufContent(in), &c_in);
-        xmlBufShrink(in, c_in);
-        xmlBufAddLen(out, c_out);
-        if (ret == -1)
-            ret = -3;
-    }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
-    else if (input->encoder->uconv_in != NULL) {
-        ret = xmlUconvWrapper(input->encoder->uconv_in, 1, xmlBufEnd(out),
-                              &c_out, xmlBufContent(in), &c_in);
-        xmlBufShrink(in, c_in);
-        xmlBufAddLen(out, c_out);
-        if (ret == -1)
-            ret = -3;
-    }
-#endif /* LIBXML_ICU_ENABLED */
+    ret = xmlEncInputChunk(input->encoder, xmlBufEnd(out), &c_out,
+                           xmlBufContent(in), &c_in, 0);
+    xmlBufShrink(in, c_in);
+    xmlBufAddLen(out, c_out);
+    if (ret == -1)
+        ret = -3;
+
     switch (ret) {
         case 0:
 #ifdef DEBUG_ENCODING
@@ -2175,7 +2202,7 @@
 int
 xmlCharEncInput(xmlParserInputBufferPtr input, int flush)
 {
-    int ret = -2;
+    int ret;
     size_t written;
     size_t toconv;
     int c_in;
@@ -2208,32 +2235,13 @@
 
     c_in = toconv;
     c_out = written;
-    if (input->encoder->input != NULL) {
-        ret = input->encoder->input(xmlBufEnd(out), &c_out,
-                                    xmlBufContent(in), &c_in);
-        xmlBufShrink(in, c_in);
-        xmlBufAddLen(out, c_out);
-    }
-#ifdef LIBXML_ICONV_ENABLED
-    else if (input->encoder->iconv_in != NULL) {
-        ret = xmlIconvWrapper(input->encoder->iconv_in, xmlBufEnd(out),
-                              &c_out, xmlBufContent(in), &c_in);
-        xmlBufShrink(in, c_in);
-        xmlBufAddLen(out, c_out);
-        if (ret == -1)
-            ret = -3;
-    }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
-    else if (input->encoder->uconv_in != NULL) {
-        ret = xmlUconvWrapper(input->encoder->uconv_in, 1, xmlBufEnd(out),
-                              &c_out, xmlBufContent(in), &c_in);
-        xmlBufShrink(in, c_in);
-        xmlBufAddLen(out, c_out);
-        if (ret == -1)
-            ret = -3;
-    }
-#endif /* LIBXML_ICU_ENABLED */
+    ret = xmlEncInputChunk(input->encoder, xmlBufEnd(out), &c_out,
+                           xmlBufContent(in), &c_in, flush);
+    xmlBufShrink(in, c_in);
+    xmlBufAddLen(out, c_out);
+    if (ret == -1)
+        ret = -3;
+
     switch (ret) {
         case 0:
 #ifdef DEBUG_ENCODING
@@ -2294,7 +2302,7 @@
 xmlCharEncInFunc(xmlCharEncodingHandler * handler, xmlBufferPtr out,
                  xmlBufferPtr in)
 {
-    int ret = -2;
+    int ret;
     int written;
     int toconv;
 
@@ -2313,35 +2321,14 @@
         xmlBufferGrow(out, out->size + toconv * 2);
         written = out->size - out->use - 1;
     }
-    if (handler->input != NULL) {
-        ret = handler->input(&out->content[out->use], &written,
-                             in->content, &toconv);
-        xmlBufferShrink(in, toconv);
-        out->use += written;
-        out->content[out->use] = 0;
-    }
-#ifdef LIBXML_ICONV_ENABLED
-    else if (handler->iconv_in != NULL) {
-        ret = xmlIconvWrapper(handler->iconv_in, &out->content[out->use],
-                              &written, in->content, &toconv);
-        xmlBufferShrink(in, toconv);
-        out->use += written;
-        out->content[out->use] = 0;
-        if (ret == -1)
-            ret = -3;
-    }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
-    else if (handler->uconv_in != NULL) {
-        ret = xmlUconvWrapper(handler->uconv_in, 1, &out->content[out->use],
-                              &written, in->content, &toconv);
-        xmlBufferShrink(in, toconv);
-        out->use += written;
-        out->content[out->use] = 0;
-        if (ret == -1)
-            ret = -3;
-    }
-#endif /* LIBXML_ICU_ENABLED */
+    ret = xmlEncInputChunk(handler, &out->content[out->use], &written,
+                           in->content, &toconv, 1);
+    xmlBufferShrink(in, toconv);
+    out->use += written;
+    out->content[out->use] = 0;
+    if (ret == -1)
+        ret = -3;
+
     switch (ret) {
         case 0:
 #ifdef DEBUG_ENCODING
@@ -2405,7 +2392,7 @@
 int
 xmlCharEncOutput(xmlOutputBufferPtr output, int init)
 {
-    int ret = -2;
+    int ret;
     size_t written;
     size_t writtentot = 0;
     size_t toconv;
@@ -2413,7 +2400,6 @@
     int c_out;
     xmlBufPtr in;
     xmlBufPtr out;
-    int charref_len = 0;
 
     if ((output == NULL) || (output->encoder == NULL) ||
         (output->buffer == NULL) || (output->conv == NULL))
@@ -2433,26 +2419,10 @@
     if (init) {
         c_in = 0;
         c_out = written;
-        if (output->encoder->output != NULL) {
-            ret = output->encoder->output(xmlBufEnd(out), &c_out,
-                                          NULL, &c_in);
-            if (ret > 0) /* Gennady: check return value */
-                xmlBufAddLen(out, c_out);
-        }
-#ifdef LIBXML_ICONV_ENABLED
-        else if (output->encoder->iconv_out != NULL) {
-            ret = xmlIconvWrapper(output->encoder->iconv_out, xmlBufEnd(out),
-                                  &c_out, NULL, &c_in);
-            xmlBufAddLen(out, c_out);
-        }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
-        else if (output->encoder->uconv_out != NULL) {
-            ret = xmlUconvWrapper(output->encoder->uconv_out, 0, xmlBufEnd(out),
-                                  &c_out, NULL, &c_in);
-            xmlBufAddLen(out, c_out);
-        }
-#endif /* LIBXML_ICU_ENABLED */
+        /* TODO: Check return value. */
+        xmlEncOutputChunk(output->encoder, xmlBufEnd(out), &c_out,
+                          NULL, &c_in);
+        xmlBufAddLen(out, c_out);
 #ifdef DEBUG_ENCODING
 	xmlGenericError(xmlGenericErrorContext,
 		"initialized encoder\n");
@@ -2477,57 +2447,17 @@
 
     c_in = toconv;
     c_out = written;
-    if (output->encoder->output != NULL) {
-        ret = output->encoder->output(xmlBufEnd(out), &c_out,
-                                      xmlBufContent(in), &c_in);
+    ret = xmlEncOutputChunk(output->encoder, xmlBufEnd(out), &c_out,
+                            xmlBufContent(in), &c_in);
+    xmlBufShrink(in, c_in);
+    xmlBufAddLen(out, c_out);
+    writtentot += c_out;
+    if (ret == -1) {
         if (c_out > 0) {
-            xmlBufShrink(in, c_in);
-            xmlBufAddLen(out, c_out);
-            writtentot += c_out;
+            /* Can be a limitation of iconv or uconv */
+            goto retry;
         }
-    }
-#ifdef LIBXML_ICONV_ENABLED
-    else if (output->encoder->iconv_out != NULL) {
-        ret = xmlIconvWrapper(output->encoder->iconv_out, xmlBufEnd(out),
-                              &c_out, xmlBufContent(in), &c_in);
-        xmlBufShrink(in, c_in);
-        xmlBufAddLen(out, c_out);
-        writtentot += c_out;
-        if (ret == -1) {
-            if (c_out > 0) {
-                /*
-                 * Can be a limitation of iconv
-                 */
-                charref_len = 0;
-                goto retry;
-            }
-            ret = -3;
-        }
-    }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
-    else if (output->encoder->uconv_out != NULL) {
-        ret = xmlUconvWrapper(output->encoder->uconv_out, 0, xmlBufEnd(out),
-                              &c_out, xmlBufContent(in), &c_in);
-        xmlBufShrink(in, c_in);
-        xmlBufAddLen(out, c_out);
-        writtentot += c_out;
-        if (ret == -1) {
-            if (c_out > 0) {
-                /*
-                 * Can be a limitation of uconv
-                 */
-                charref_len = 0;
-                goto retry;
-            }
-            ret = -3;
-        }
-    }
-#endif /* LIBXML_ICU_ENABLED */
-    else {
-        xmlEncodingErr(XML_I18N_NO_OUTPUT,
-                       "xmlCharEncOutFunc: no output function !\n", NULL);
-        return(-1);
+        ret = -3;
     }
 
     if (ret >= 0) output += ret;
@@ -2555,47 +2485,44 @@
 	            c_in, c_out, (int) xmlBufUse(in));
 #endif
 	    break;
+        case -4:
+            xmlEncodingErr(XML_I18N_NO_OUTPUT,
+                           "xmlCharEncOutFunc: no output function !\n", NULL);
+            ret = -1;
+            break;
         case -2: {
+	    xmlChar charref[20];
 	    int len = (int) xmlBufUse(in);
             xmlChar *content = xmlBufContent(in);
-	    int cur;
+	    int cur, charrefLen;
 
 	    cur = xmlGetUTF8Char(content, &len);
-	    if ((charref_len != 0) && (c_out < charref_len)) {
-		/*
-		 * We attempted to insert a character reference and failed.
-		 * Undo what was written and skip the remaining charref.
-		 */
-                xmlBufErase(out, c_out);
-		writtentot -= c_out;
-		xmlBufShrink(in, charref_len - c_out);
-		charref_len = 0;
-
-		ret = -1;
+	    if (cur <= 0)
                 break;
-	    } else if (cur > 0) {
-		xmlChar charref[20];
 
 #ifdef DEBUG_ENCODING
-		xmlGenericError(xmlGenericErrorContext,
-			"handling output conversion error\n");
-		xmlGenericError(xmlGenericErrorContext,
-			"Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
-			content[0], content[1],
-			content[2], content[3]);
+            xmlGenericError(xmlGenericErrorContext,
+                    "handling output conversion error\n");
+            xmlGenericError(xmlGenericErrorContext,
+                    "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
+                    content[0], content[1],
+                    content[2], content[3]);
 #endif
-		/*
-		 * Removes the UTF8 sequence, and replace it by a charref
-		 * and continue the transcoding phase, hoping the error
-		 * did not mangle the encoder state.
-		 */
-		charref_len = snprintf((char *) &charref[0], sizeof(charref),
-				 "&#%d;", cur);
-		xmlBufShrink(in, len);
-		xmlBufAddHead(in, charref, -1);
+            /*
+             * Removes the UTF8 sequence, and replace it by a charref
+             * and continue the transcoding phase, hoping the error
+             * did not mangle the encoder state.
+             */
+            charrefLen = snprintf((char *) &charref[0], sizeof(charref),
+                             "&#%d;", cur);
+            xmlBufShrink(in, len);
+            xmlBufGrow(out, charrefLen * 4);
+            c_out = xmlBufAvail(out) - 1;
+            c_in = charrefLen;
+            ret = xmlEncOutputChunk(output->encoder, xmlBufEnd(out), &c_out,
+                                    charref, &c_in);
 
-		goto retry;
-	    } else {
+	    if ((ret < 0) || (c_in != charrefLen)) {
 		char buf[50];
 
 		snprintf(&buf[0], 49, "0x%02X 0x%02X 0x%02X 0x%02X",
@@ -2607,8 +2534,12 @@
 			       buf);
 		if (xmlBufGetAllocationScheme(in) != XML_BUFFER_ALLOC_IMMUTABLE)
 		    content[0] = ' ';
+                break;
 	    }
-	    break;
+
+            xmlBufAddLen(out, c_out);
+            writtentot += c_out;
+            goto retry;
 	}
     }
     return(ret);
@@ -2636,12 +2567,11 @@
 int
 xmlCharEncOutFunc(xmlCharEncodingHandler *handler, xmlBufferPtr out,
                   xmlBufferPtr in) {
-    int ret = -2;
+    int ret;
     int written;
     int writtentot = 0;
     int toconv;
     int output = 0;
-    int charref_len = 0;
 
     if (handler == NULL) return(-1);
     if (out == NULL) return(-1);
@@ -2658,31 +2588,11 @@
      */
     if (in == NULL) {
         toconv = 0;
-	if (handler->output != NULL) {
-	    ret = handler->output(&out->content[out->use], &written,
-				  NULL, &toconv);
-	    if (ret >= 0) { /* Gennady: check return value */
-		out->use += written;
-		out->content[out->use] = 0;
-	    }
-	}
-#ifdef LIBXML_ICONV_ENABLED
-	else if (handler->iconv_out != NULL) {
-	    ret = xmlIconvWrapper(handler->iconv_out, &out->content[out->use],
-				  &written, NULL, &toconv);
-	    out->use += written;
-	    out->content[out->use] = 0;
-	}
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
-	else if (handler->uconv_out != NULL) {
-	    ret = xmlUconvWrapper(handler->uconv_out, 0,
-                              &out->content[out->use],
-				              &written, NULL, &toconv);
-	    out->use += written;
-	    out->content[out->use] = 0;
-	}
-#endif /* LIBXML_ICU_ENABLED */
+        /* TODO: Check return value. */
+        xmlEncOutputChunk(handler, &out->content[out->use], &written,
+                          NULL, &toconv);
+        out->use += written;
+        out->content[out->use] = 0;
 #ifdef DEBUG_ENCODING
 	xmlGenericError(xmlGenericErrorContext,
 		"initialized encoder\n");
@@ -2700,61 +2610,18 @@
         xmlBufferGrow(out, toconv * 4);
 	written = out->size - out->use - 1;
     }
-    if (handler->output != NULL) {
-	ret = handler->output(&out->content[out->use], &written,
-	                      in->content, &toconv);
-	if (written > 0) {
-	    xmlBufferShrink(in, toconv);
-	    out->use += written;
-	    writtentot += written;
-	}
-	out->content[out->use] = 0;
-    }
-#ifdef LIBXML_ICONV_ENABLED
-    else if (handler->iconv_out != NULL) {
-	ret = xmlIconvWrapper(handler->iconv_out, &out->content[out->use],
-	                      &written, in->content, &toconv);
-	xmlBufferShrink(in, toconv);
-	out->use += written;
-	writtentot += written;
-	out->content[out->use] = 0;
-	if (ret == -1) {
-	    if (written > 0) {
-		/*
-		 * Can be a limitation of iconv
-		 */
-                charref_len = 0;
-		goto retry;
-	    }
-	    ret = -3;
-	}
-    }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
-    else if (handler->uconv_out != NULL) {
-	ret = xmlUconvWrapper(handler->uconv_out, 0,
-                              &out->content[out->use],
-	                      &written, in->content, &toconv);
-	xmlBufferShrink(in, toconv);
-	out->use += written;
-	writtentot += written;
-	out->content[out->use] = 0;
-	if (ret == -1) {
-	    if (written > 0) {
-		/*
-		 * Can be a limitation of iconv
-		 */
-                charref_len = 0;
-		goto retry;
-	    }
-	    ret = -3;
-	}
-    }
-#endif /* LIBXML_ICU_ENABLED */
-    else {
-	xmlEncodingErr(XML_I18N_NO_OUTPUT,
-		       "xmlCharEncOutFunc: no output function !\n", NULL);
-	return(-1);
+    ret = xmlEncOutputChunk(handler, &out->content[out->use], &written,
+                            in->content, &toconv);
+    xmlBufferShrink(in, toconv);
+    out->use += written;
+    writtentot += written;
+    out->content[out->use] = 0;
+    if (ret == -1) {
+        if (written > 0) {
+            /* Can be a limitation of iconv or uconv */
+            goto retry;
+        }
+        ret = -3;
     }
 
     if (ret >= 0) output += ret;
@@ -2782,47 +2649,44 @@
 	            toconv, written, in->use);
 #endif
 	    break;
+        case -4:
+	    xmlEncodingErr(XML_I18N_NO_OUTPUT,
+		           "xmlCharEncOutFunc: no output function !\n", NULL);
+	    ret = -1;
+            break;
         case -2: {
+	    xmlChar charref[20];
 	    int len = in->use;
 	    const xmlChar *utf = (const xmlChar *) in->content;
-	    int cur;
+	    int cur, charrefLen;
 
 	    cur = xmlGetUTF8Char(utf, &len);
-	    if ((charref_len != 0) && (written < charref_len)) {
-		/*
-		 * We attempted to insert a character reference and failed.
-		 * Undo what was written and skip the remaining charref.
-		 */
-		out->use -= written;
-		writtentot -= written;
-		xmlBufferShrink(in, charref_len - written);
-		charref_len = 0;
-
-		ret = -1;
+	    if (cur <= 0)
                 break;
-	    } else if (cur > 0) {
-		xmlChar charref[20];
 
 #ifdef DEBUG_ENCODING
-		xmlGenericError(xmlGenericErrorContext,
-			"handling output conversion error\n");
-		xmlGenericError(xmlGenericErrorContext,
-			"Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
-			in->content[0], in->content[1],
-			in->content[2], in->content[3]);
+            xmlGenericError(xmlGenericErrorContext,
+                    "handling output conversion error\n");
+            xmlGenericError(xmlGenericErrorContext,
+                    "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
+                    in->content[0], in->content[1],
+                    in->content[2], in->content[3]);
 #endif
-		/*
-		 * Removes the UTF8 sequence, and replace it by a charref
-		 * and continue the transcoding phase, hoping the error
-		 * did not mangle the encoder state.
-		 */
-		charref_len = snprintf((char *) &charref[0], sizeof(charref),
-				 "&#%d;", cur);
-		xmlBufferShrink(in, len);
-		xmlBufferAddHead(in, charref, -1);
+            /*
+             * Removes the UTF8 sequence, and replace it by a charref
+             * and continue the transcoding phase, hoping the error
+             * did not mangle the encoder state.
+             */
+            charrefLen = snprintf((char *) &charref[0], sizeof(charref),
+                             "&#%d;", cur);
+            xmlBufferShrink(in, len);
+            xmlBufferGrow(out, charrefLen * 4);
+	    written = out->size - out->use - 1;
+            toconv = charrefLen;
+            ret = xmlEncOutputChunk(handler, &out->content[out->use], &written,
+                                    charref, &toconv);
 
-		goto retry;
-	    } else {
+	    if ((ret < 0) || (toconv != charrefLen)) {
 		char buf[50];
 
 		snprintf(&buf[0], 49, "0x%02X 0x%02X 0x%02X 0x%02X",
@@ -2834,8 +2698,13 @@
 			       buf);
 		if (in->alloc != XML_BUFFER_ALLOC_IMMUTABLE)
 		    in->content[0] = ' ';
+	        break;
 	    }
-	    break;
+
+            out->use += written;
+            writtentot += written;
+            out->content[out->use] = 0;
+            goto retry;
 	}
     }
     return(ret);
@@ -2954,54 +2823,20 @@
 
 	    int ret;
 
-	    if (handler->output != NULL) {
-	        do {
-		    toconv = in->end - cur;
-		    written = 32000;
-		    ret = handler->output(&convbuf[0], &written,
-				      cur, &toconv);
-		    if (ret == -1) return(-1);
-		    unused += written;
-		    cur += toconv;
-		} while (ret == -2);
-#ifdef LIBXML_ICONV_ENABLED
-	    } else if (handler->iconv_out != NULL) {
-	        do {
-		    toconv = in->end - cur;
-		    written = 32000;
-		    ret = xmlIconvWrapper(handler->iconv_out, &convbuf[0],
-	                      &written, cur, &toconv);
-		    if (ret < 0) {
-		        if (written > 0)
-			    ret = -2;
-			else
-			    return(-1);
-		    }
-		    unused += written;
-		    cur += toconv;
-		} while (ret == -2);
-#endif
-#ifdef LIBXML_ICU_ENABLED
-	    } else if (handler->uconv_out != NULL) {
-	        do {
-		    toconv = in->end - cur;
-		    written = 32000;
-		    ret = xmlUconvWrapper(handler->uconv_out, 0, &convbuf[0],
-	                      &written, cur, &toconv);
-		    if (ret < 0) {
-		        if (written > 0)
-			    ret = -2;
-			else
-			    return(-1);
-		    }
-		    unused += written;
-		    cur += toconv;
-		} while (ret == -2);
-#endif
-            } else {
-	        /* could not find a converter */
-	        return(-1);
-	    }
+            do {
+                toconv = in->end - cur;
+                written = 32000;
+                ret = xmlEncOutputChunk(handler, &convbuf[0], &written,
+                                        cur, &toconv);
+                if (ret < 0) {
+                    if (written > 0)
+                        ret = -2;
+                    else
+                        return(-1);
+                }
+                unused += written;
+                cur += toconv;
+            } while (ret == -2);
 	}
 	if (in->buf->rawconsumed < unused)
 	    return(-1);
diff --git a/entities.c b/entities.c
index 64808ff..43549bc 100644
--- a/entities.c
+++ b/entities.c
@@ -6,6 +6,11 @@
  * daniel@veillard.com
  */
 
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
 #define IN_LIBXML
 #include "libxml.h"
 
@@ -880,10 +885,9 @@
  * Deallocate the memory used by an entities in the hash table.
  */
 static void
-xmlFreeEntityWrapper(xmlEntityPtr entity,
-	               const xmlChar *name ATTRIBUTE_UNUSED) {
+xmlFreeEntityWrapper(void *entity, const xmlChar *name ATTRIBUTE_UNUSED) {
     if (entity != NULL)
-	xmlFreeEntity(entity);
+	xmlFreeEntity((xmlEntityPtr) entity);
 }
 
 /**
@@ -894,7 +898,7 @@
  */
 void
 xmlFreeEntitiesTable(xmlEntitiesTablePtr table) {
-    xmlHashFree(table, (xmlHashDeallocator) xmlFreeEntityWrapper);
+    xmlHashFree(table, xmlFreeEntityWrapper);
 }
 
 #ifdef LIBXML_TREE_ENABLED
@@ -906,8 +910,9 @@
  *
  * Returns the new xmlEntitiesPtr or NULL in case of error.
  */
-static xmlEntityPtr
-xmlCopyEntity(xmlEntityPtr ent) {
+static void *
+xmlCopyEntity(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlEntityPtr ent = (xmlEntityPtr) payload;
     xmlEntityPtr cur;
 
     cur = (xmlEntityPtr) xmlMalloc(sizeof(xmlEntity));
@@ -944,7 +949,7 @@
  */
 xmlEntitiesTablePtr
 xmlCopyEntitiesTable(xmlEntitiesTablePtr table) {
-    return(xmlHashCopy(table, (xmlHashCopier) xmlCopyEntity));
+    return(xmlHashCopy(table, xmlCopyEntity));
 }
 #endif /* LIBXML_TREE_ENABLED */
 
@@ -1085,8 +1090,9 @@
  * When using the hash table scan function, arguments need to be reversed
  */
 static void
-xmlDumpEntityDeclScan(xmlEntityPtr ent, xmlBufferPtr buf) {
-    xmlDumpEntityDecl(buf, ent);
+xmlDumpEntityDeclScan(void *ent, void *buf,
+                      const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlDumpEntityDecl((xmlBufferPtr) buf, (xmlEntityPtr) ent);
 }
 
 /**
@@ -1098,7 +1104,7 @@
  */
 void
 xmlDumpEntitiesTable(xmlBufferPtr buf, xmlEntitiesTablePtr table) {
-    xmlHashScan(table, (xmlHashScanner)xmlDumpEntityDeclScan, buf);
+    xmlHashScan(table, xmlDumpEntityDeclScan, buf);
 }
 #endif /* LIBXML_OUTPUT_ENABLED */
 #define bottom_entities
diff --git a/error.c b/error.c
index 9606f13..50e9e6f 100644
--- a/error.c
+++ b/error.c
@@ -853,7 +853,7 @@
  * Get the last global error registered. This is per thread if compiled
  * with thread support.
  *
- * Returns NULL if no error occured or a pointer to the error
+ * Returns NULL if no error occurred or a pointer to the error
  */
 xmlErrorPtr
 xmlGetLastError(void)
@@ -910,7 +910,7 @@
  *
  * Get the last parsing error registered.
  *
- * Returns NULL if no error occured or a pointer to the error
+ * Returns NULL if no error occurred or a pointer to the error
  */
 xmlErrorPtr
 xmlCtxtGetLastError(void *ctx)
diff --git a/example/Makefile.am b/example/Makefile.am
index 488ee6e..49bca39 100644
--- a/example/Makefile.am
+++ b/example/Makefile.am
@@ -1,4 +1,4 @@
-noinst_PROGRAMS	= gjobread
+check_PROGRAMS = gjobread
 
 AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)/include
 AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS)
diff --git a/example/gjobread.c b/example/gjobread.c
index d3f6d57..a435ca4 100644
--- a/example/gjobread.c
+++ b/example/gjobread.c
@@ -177,7 +177,7 @@
 
 
 static gJobPtr
-parseGjobFile(char *filename) {
+parseGjobFile(char *filename ATTRIBUTE_UNUSED) {
     xmlDocPtr doc;
     gJobPtr ret;
     jobPtr curjob;
diff --git a/genUnicode.py b/genUnicode.py
index 56e4e9b..4487eeb 100755
--- a/genUnicode.py
+++ b/genUnicode.py
@@ -267,14 +267,14 @@
 } xmlUnicodeRange;
 
 typedef struct {
-    xmlUnicodeRange *table;
+    const xmlUnicodeRange *table;
     int		    numentries;
 } xmlUnicodeNameTable;
 
 
 static xmlIntFunc *xmlUnicodeLookup(xmlUnicodeNameTable *tptr, const char *tname);
 
-static xmlUnicodeRange xmlUnicodeBlocks[] = {
+static const xmlUnicodeRange xmlUnicodeBlocks[] = {
 """ % (webpage, date, sources));
 
 flag = 0
diff --git a/gentest.py b/gentest.py
index f178620..e4a8932 100755
--- a/gentest.py
+++ b/gentest.py
@@ -782,6 +782,24 @@
 	test.write("        %s = gen_%s(n_%s, %d);\n" % (nam, type, nam, i))
 	i = i + 1;
 
+    # add checks to avoid out-of-bounds array access
+    i = 0;
+    for arg in t_args:
+        (nam, type, rtype, crtype, info) = arg;
+        # assume that "size", "len", and "start" parameters apply to either
+        # the nearest preceding or following char pointer
+        if type == "int" and (nam == "size" or nam == "len" or nam == "start"):
+            for j in range(i - 1, -1, -1) + range(i + 1, len(t_args)):
+                (bnam, btype) = t_args[j][:2]
+                if btype == "const_char_ptr" or btype == "const_xmlChar_ptr":
+                    test.write(
+                        "        if ((%s != NULL) &&\n"
+                        "            (%s > (int) strlen((const char *) %s) + 1))\n"
+                        "            continue;\n"
+                        % (bnam, nam, bnam))
+                    break
+	i = i + 1;
+
     # do the call, and clanup the result
     if extra_pre_call.has_key(name):
 	test.write("        %s\n"% (extra_pre_call[name]))
diff --git a/globals.c b/globals.c
index e351b03..20b4308 100644
--- a/globals.c
+++ b/globals.c
@@ -92,7 +92,7 @@
  *
  * The variable holding the libxml free() implementation
  */
-xmlFreeFunc xmlFree = (xmlFreeFunc) free;
+xmlFreeFunc xmlFree = free;
 /**
  * xmlMalloc:
  * @size:  the size requested in bytes
@@ -101,7 +101,7 @@
  *
  * Returns a pointer to the newly allocated block or NULL in case of error
  */
-xmlMallocFunc xmlMalloc = (xmlMallocFunc) malloc;
+xmlMallocFunc xmlMalloc = malloc;
 /**
  * xmlMallocAtomic:
  * @size:  the size requested in bytes
@@ -112,7 +112,7 @@
  *
  * Returns a pointer to the newly allocated block or NULL in case of error
  */
-xmlMallocFunc xmlMallocAtomic = (xmlMallocFunc) malloc;
+xmlMallocFunc xmlMallocAtomic = malloc;
 /**
  * xmlRealloc:
  * @mem: an already allocated block of memory
@@ -122,7 +122,19 @@
  *
  * Returns a pointer to the newly reallocated block or NULL in case of error
  */
-xmlReallocFunc xmlRealloc = (xmlReallocFunc) realloc;
+xmlReallocFunc xmlRealloc = realloc;
+/**
+ * xmlPosixStrdup
+ * @cur:  the input char *
+ *
+ * a strdup implementation with a type signature matching POSIX
+ *
+ * Returns a new xmlChar * or NULL
+ */
+static char *
+xmlPosixStrdup(const char *cur) {
+    return((char*) xmlCharStrdup(cur));
+}
 /**
  * xmlMemStrdup:
  * @str: a zero terminated string
@@ -131,7 +143,7 @@
  *
  * Returns the copy of the string or NULL in case of error
  */
-xmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
+xmlStrdupFunc xmlMemStrdup = xmlPosixStrdup;
 #endif /* DEBUG_MEMORY_LOCATION || DEBUG_MEMORY */
 
 #include <libxml/threads.h>
diff --git a/hash.c b/hash.c
index f9a2017..b0b4abc 100644
--- a/hash.c
+++ b/hash.c
@@ -168,7 +168,7 @@
  *
  * Create a new xmlHashTablePtr.
  *
- * Returns the newly created object, or NULL if an error occured.
+ * Returns the newly created object, or NULL if an error occurred.
  */
 xmlHashTablePtr
 xmlHashCreate(int size) {
@@ -202,7 +202,7 @@
  *
  * Create a new xmlHashTablePtr which will use @dict as the internal dictionary
  *
- * Returns the newly created object, or NULL if an error occured.
+ * Returns the newly created object, or NULL if an error occurred.
  */
 xmlHashTablePtr
 xmlHashCreateDict(int size, xmlDictPtr dict) {
@@ -361,6 +361,18 @@
 }
 
 /**
+ * xmlHashDefaultDeallocator:
+ * @entry: the hash table entry
+ * @name: the entry's name
+ *
+ * Free a hash table entry with xmlFree.
+ */
+void
+xmlHashDefaultDeallocator(void *entry, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlFree(entry);
+}
+
+/**
  * xmlHashAddEntry:
  * @table: the hash table
  * @name: the name of the userdata
@@ -912,8 +924,11 @@
 xmlHashScan3(xmlHashTablePtr table, const xmlChar *name,
 	     const xmlChar *name2, const xmlChar *name3,
 	     xmlHashScanner f, void *data) {
-    xmlHashScanFull3 (table, name, name2, name3,
-		      (xmlHashScannerFull) f, data);
+    stubData stubdata;
+    stubdata.data = data;
+    stubdata.hashscanner = f;
+    xmlHashScanFull3(table, name, name2, name3, stubHashScannerFull,
+                     &stubdata);
 }
 
 /**
diff --git a/include/libxml/HTMLparser.h b/include/libxml/HTMLparser.h
index 551186c..1d4fec2 100644
--- a/include/libxml/HTMLparser.h
+++ b/include/libxml/HTMLparser.h
@@ -115,12 +115,12 @@
 XMLPUBFUN int XMLCALL
 			htmlParseDocument(htmlParserCtxtPtr ctxt);
 XMLPUBFUN htmlDocPtr XMLCALL
-			htmlSAXParseDoc	(xmlChar *cur,
+			htmlSAXParseDoc	(const xmlChar *cur,
 					 const char *encoding,
 					 htmlSAXHandlerPtr sax,
 					 void *userData);
 XMLPUBFUN htmlDocPtr XMLCALL
-			htmlParseDoc	(xmlChar *cur,
+			htmlParseDoc	(const xmlChar *cur,
 					 const char *encoding);
 XMLPUBFUN htmlDocPtr XMLCALL
 			htmlSAXParseFile(const char *filename,
diff --git a/include/libxml/encoding.h b/include/libxml/encoding.h
index 7967cc6..c875af6 100644
--- a/include/libxml/encoding.h
+++ b/include/libxml/encoding.h
@@ -129,9 +129,14 @@
  * If iconv is supported, there are two extra fields.
  */
 #ifdef LIBXML_ICU_ENABLED
+/* Size of pivot buffer, same as icu/source/common/ucnv.cpp CHUNK_SIZE */
+#define ICU_PIVOT_BUF_SIZE 1024
 struct _uconv_t {
   UConverter *uconv; /* for conversion between an encoding and UTF-16 */
   UConverter *utf8; /* for conversion between UTF-8 and UTF-16 */
+  UChar      pivot_buf[ICU_PIVOT_BUF_SIZE];
+  UChar      *pivot_source;
+  UChar      *pivot_target;
 };
 typedef struct _uconv_t uconv_t;
 #endif
diff --git a/include/libxml/hash.h b/include/libxml/hash.h
index dc8ab7e..6352874 100644
--- a/include/libxml/hash.h
+++ b/include/libxml/hash.h
@@ -66,7 +66,7 @@
  *
  * Callback to free data from a hash.
  */
-typedef void (*xmlHashDeallocator)(void *payload, xmlChar *name);
+typedef void (*xmlHashDeallocator)(void *payload, const xmlChar *name);
 /**
  * xmlHashCopier:
  * @payload:  the data in the hash
@@ -76,7 +76,7 @@
  *
  * Returns a copy of the data or NULL in case of error.
  */
-typedef void *(*xmlHashCopier)(void *payload, xmlChar *name);
+typedef void *(*xmlHashCopier)(void *payload, const xmlChar *name);
 /**
  * xmlHashScanner:
  * @payload:  the data in the hash
@@ -85,7 +85,7 @@
  *
  * Callback when scanning data in a hash with the simple scanner.
  */
-typedef void (*xmlHashScanner)(void *payload, void *data, xmlChar *name);
+typedef void (*xmlHashScanner)(void *payload, void *data, const xmlChar *name);
 /**
  * xmlHashScannerFull:
  * @payload:  the data in the hash
@@ -111,6 +111,9 @@
 XMLPUBFUN void XMLCALL
 			xmlHashFree	(xmlHashTablePtr table,
 					 xmlHashDeallocator f);
+XMLPUBFUN void XMLCALL
+			xmlHashDefaultDeallocator(void *entry,
+					 const xmlChar *name);
 
 /*
  * Add a new entry to the hash table.
diff --git a/include/libxml/list.h b/include/libxml/list.h
index 0504e0c..3211c75 100644
--- a/include/libxml/list.h
+++ b/include/libxml/list.h
@@ -49,7 +49,7 @@
  *
  * Returns 0 to stop walking the list, 1 otherwise.
  */
-typedef int (*xmlListWalker) (const void *data, const void *user);
+typedef int (*xmlListWalker) (const void *data, void *user);
 
 /* Creation/Deletion */
 XMLPUBFUN xmlListPtr XMLCALL
@@ -110,11 +110,11 @@
 XMLPUBFUN void XMLCALL
 		xmlListWalk		(xmlListPtr l,
 					 xmlListWalker walker,
-					 const void *user);
+					 void *user);
 XMLPUBFUN void XMLCALL
 		xmlListReverseWalk	(xmlListPtr l,
 					 xmlListWalker walker,
-					 const void *user);
+					 void *user);
 XMLPUBFUN void XMLCALL
 		xmlListMerge		(xmlListPtr l1,
 					 xmlListPtr l2);
diff --git a/include/libxml/nanoftp.h b/include/libxml/nanoftp.h
index abb4bf7..7335faf 100644
--- a/include/libxml/nanoftp.h
+++ b/include/libxml/nanoftp.h
@@ -16,7 +16,7 @@
 #ifdef LIBXML_FTP_ENABLED
 
 /* Needed for portability to Windows 64 bits */
-#if defined(__MINGW32__) || defined(_WIN32_WCE)
+#if defined(_WIN32) && !defined(__CYGWIN__)
 #include <winsock2.h>
 #else
 /**
diff --git a/include/libxml/schemasInternals.h b/include/libxml/schemasInternals.h
index c7cf552..6fb7113 100644
--- a/include/libxml/schemasInternals.h
+++ b/include/libxml/schemasInternals.h
@@ -3,7 +3,7 @@
  * Description: internal interfaces for the XML Schemas handling
  *              and schema validity checking
  *		The Schemas development is a Work In Progress.
- *              Some of those interfaces are not garanteed to be API or ABI stable !
+ *              Some of those interfaces are not guaranteed to be API or ABI stable !
  *
  * Copy: See Copyright for the status of this software.
  *
diff --git a/include/libxml/threads.h b/include/libxml/threads.h
index d31f16a..9969ae7 100644
--- a/include/libxml/threads.h
+++ b/include/libxml/threads.h
@@ -72,8 +72,13 @@
 XMLPUBFUN xmlGlobalStatePtr XMLCALL
 			xmlGetGlobalState(void);
 
-#if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && defined(LIBXML_STATIC_FOR_DLL)
-int XMLCALL xmlDllMain(void *hinstDLL, unsigned long fdwReason, void *lpvReserved);
+#ifdef HAVE_PTHREAD_H
+#elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
+#if defined(LIBXML_STATIC_FOR_DLL)
+int XMLCALL
+xmlDllMain(void *hinstDLL, unsigned long fdwReason,
+           void *lpvReserved);
+#endif
 #endif
 
 #ifdef __cplusplus
diff --git a/include/libxml/xmlreader.h b/include/libxml/xmlreader.h
index 2c99e3a..e8a8bcc 100644
--- a/include/libxml/xmlreader.h
+++ b/include/libxml/xmlreader.h
@@ -393,7 +393,7 @@
  * @arg: the user argument
  * @msg: the message
  * @severity: the severity of the error
- * @locator: a locator indicating where the error occured
+ * @locator: a locator indicating where the error occurred
  *
  * Signature of an error callback from a reader parser
  */
diff --git a/include/libxml/xmlversion.h b/include/libxml/xmlversion.h
index 62f4408..eb18ea0 100644
--- a/include/libxml/xmlversion.h
+++ b/include/libxml/xmlversion.h
@@ -201,7 +201,12 @@
  *
  * Whether the HTML support is configured in
  */
-#if 1
+// BEGIN android-changed
+// Was: #if 1
+// HTML support has security vulnerabilities (b/27338391)
+// and is not needed in Android.
+#if 0
+// END android-changed
 #define LIBXML_HTML_ENABLED
 #endif
 
@@ -281,9 +286,14 @@
  * LIBXML_ICU_ENABLED:
  *
  * Whether icu support is available
+ *
+ * This is disabled when libxml2 is built for the VNDK.
+ * libicuuc.so isn't available in the VNDK.
  */
-#if 1
+#ifndef __ANDROID_VNDK__
 #define LIBXML_ICU_ENABLED
+#else
+#undef LIBXML_ICU_ENABLED
 #endif
 
 /**
@@ -435,7 +445,7 @@
  */
 
 #ifndef LIBXML_ATTR_ALLOC_SIZE
-# if (!defined(__clang__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))))
+# if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
 #  define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
 # else
 #  define LIBXML_ATTR_ALLOC_SIZE(x)
diff --git a/include/libxml/xmlversion.h.in b/include/libxml/xmlversion.h.in
index 00a836f..d10f975 100644
--- a/include/libxml/xmlversion.h.in
+++ b/include/libxml/xmlversion.h.in
@@ -410,9 +410,6 @@
 #endif
 
 #ifdef __GNUC__
-#ifdef HAVE_ANSIDECL_H
-#include <ansidecl.h>
-#endif
 
 /**
  * ATTRIBUTE_UNUSED:
@@ -435,7 +432,7 @@
  */
 
 #ifndef LIBXML_ATTR_ALLOC_SIZE
-# if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
+# if (!defined(__clang__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))))
 #  define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
 # else
 #  define LIBXML_ATTR_ALLOC_SIZE(x)
diff --git a/include/libxml/xmlwin32version.h b/include/libxml/xmlwin32version.h
index 9641241..e0f2b38 100644
--- a/include/libxml/xmlwin32version.h
+++ b/include/libxml/xmlwin32version.h
@@ -214,9 +214,6 @@
  * Macro used to signal to GCC unused function parameters
  */
 #ifdef __GNUC__
-#ifdef HAVE_ANSIDECL_H
-#include <ansidecl.h>
-#endif
 #ifndef ATTRIBUTE_UNUSED
 #define ATTRIBUTE_UNUSED
 #endif
diff --git a/include/libxml/xmlwin32version.h.in b/include/libxml/xmlwin32version.h.in
index 375f3a4..2176ad1 100644
--- a/include/libxml/xmlwin32version.h.in
+++ b/include/libxml/xmlwin32version.h.in
@@ -243,9 +243,6 @@
 #endif
 
 #ifdef __GNUC__
-#ifdef HAVE_ANSIDECL_H
-#include <ansidecl.h>
-#endif
 
 /**
  * ATTRIBUTE_UNUSED:
diff --git a/include/win32config.h b/include/win32config.h
index 40cf7df..7fc7403 100644
--- a/include/win32config.h
+++ b/include/win32config.h
@@ -10,11 +10,9 @@
 
 #if defined(_WIN32_WCE)
 #undef HAVE_ERRNO_H
-#include <windows.h>
 #include "wincecompat.h"
 #else
 #define HAVE_SYS_STAT_H
-#define HAVE__STAT
 #define HAVE_STAT
 #define HAVE_STDLIB_H
 #define HAVE_TIME_H
@@ -29,10 +27,6 @@
 #define ICONV_CONST const
 #endif
 
-#ifdef NEED_SOCKETS
-#include <wsockcompat.h>
-#endif
-
 /*
  * Windows platforms may define except 
  */
diff --git a/include/wsockcompat.h b/include/wsockcompat.h
index e6a1a99..0484ee3 100644
--- a/include/wsockcompat.h
+++ b/include/wsockcompat.h
@@ -8,7 +8,7 @@
 #ifdef _WIN32_WCE
 #include <winsock.h>
 #else
-#undef HAVE_ERRNO_H
+#include <errno.h>
 #include <winsock2.h>
 
 /* the following is a workaround a problem for 'inline' keyword in said
@@ -27,60 +27,23 @@
 #endif
 #endif
 
-#if defined( __MINGW32__ ) || defined( _MSC_VER )
-/* Include <errno.h> here to ensure that it doesn't get included later
- * (e.g. by iconv.h) and overwrites the definition of EWOULDBLOCK. */
-#include <errno.h>
-#undef EWOULDBLOCK
+#undef XML_SOCKLEN_T
+#define XML_SOCKLEN_T int
+
+#ifndef ECONNRESET
+#define ECONNRESET WSAECONNRESET
 #endif
-
-#if !defined SOCKLEN_T
-#define SOCKLEN_T int
+#ifndef EINPROGRESS
+#define EINPROGRESS WSAEINPROGRESS
 #endif
-
-#define EWOULDBLOCK             WSAEWOULDBLOCK
-#define ESHUTDOWN               WSAESHUTDOWN
-
-#if (!defined(_MSC_VER) || (_MSC_VER < 1600))
-#define EINPROGRESS             WSAEINPROGRESS
-#define EALREADY                WSAEALREADY
-#define ENOTSOCK                WSAENOTSOCK
-#define EDESTADDRREQ            WSAEDESTADDRREQ
-#define EMSGSIZE                WSAEMSGSIZE
-#define EPROTOTYPE              WSAEPROTOTYPE
-#define ENOPROTOOPT             WSAENOPROTOOPT
-#define EPROTONOSUPPORT         WSAEPROTONOSUPPORT
-#define ESOCKTNOSUPPORT         WSAESOCKTNOSUPPORT
-#define EOPNOTSUPP              WSAEOPNOTSUPP
-#define EPFNOSUPPORT            WSAEPFNOSUPPORT
-#define EAFNOSUPPORT            WSAEAFNOSUPPORT
-#define EADDRINUSE              WSAEADDRINUSE
-#define EADDRNOTAVAIL           WSAEADDRNOTAVAIL
-#define ENETDOWN                WSAENETDOWN
-#define ENETUNREACH             WSAENETUNREACH
-#define ENETRESET               WSAENETRESET
-#define ECONNABORTED            WSAECONNABORTED
-#define ECONNRESET              WSAECONNRESET
-#define ENOBUFS                 WSAENOBUFS
-#define EISCONN                 WSAEISCONN
-#define ENOTCONN                WSAENOTCONN
-#define ETOOMANYREFS            WSAETOOMANYREFS
-#define ETIMEDOUT               WSAETIMEDOUT
-#define ECONNREFUSED            WSAECONNREFUSED
-#define ELOOP                   WSAELOOP
-#define EHOSTDOWN               WSAEHOSTDOWN
-#define EHOSTUNREACH            WSAEHOSTUNREACH
-#define EPROCLIM                WSAEPROCLIM
-#define EUSERS                  WSAEUSERS
-#define EDQUOT                  WSAEDQUOT
-#define ESTALE                  WSAESTALE
-#define EREMOTE                 WSAEREMOTE
-/* These cause conflicts with the codes from errno.h. Since they are 
-   not used in the relevant code (nanoftp, nanohttp), we can leave 
-   them disabled.
-#define ENAMETOOLONG            WSAENAMETOOLONG
-#define ENOTEMPTY               WSAENOTEMPTY
-*/
-#endif /* _MSC_VER */
+#ifndef EINTR
+#define EINTR WSAEINTR
+#endif
+#ifndef ESHUTDOWN
+#define ESHUTDOWN WSAESHUTDOWN
+#endif
+#ifndef EWOULDBLOCK
+#define EWOULDBLOCK WSAEWOULDBLOCK
+#endif
 
 #endif /* __XML_WSOCKCOMPAT_H__ */
diff --git a/libxml.h b/libxml.h
index 88e515f..64e30f7 100644
--- a/libxml.h
+++ b/libxml.h
@@ -60,6 +60,18 @@
 #include "trio.h"
 #endif
 
+#if defined(__clang__) || \
+    (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406))
+#define XML_IGNORE_PEDANTIC_WARNINGS \
+    _Pragma("GCC diagnostic push") \
+    _Pragma("GCC diagnostic ignored \"-Wpedantic\"")
+#define XML_POP_WARNINGS \
+    _Pragma("GCC diagnostic pop")
+#else
+#define XML_IGNORE_PEDANTIC_WARNINGS
+#define XML_POP_WARNINGS
+#endif
+
 /*
  * Internal variable indicating if a callback has been registered for
  * node creation/destruction. It avoids spending a lot of time in locking
@@ -96,12 +108,12 @@
 #endif
 
 XMLPUBFUN xmlChar * XMLCALL xmlEscapeFormatString(xmlChar **msg);
-int xmlNop(void);
+int xmlInputReadCallbackNop(void *context, char *buffer, int len);
 
 #ifdef IN_LIBXML
 #ifdef __GNUC__
 #ifdef PIC
-#ifdef linux
+#ifdef __linux__
 #if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
 #include "elfgcchack.h"
 #endif
@@ -109,7 +121,7 @@
 #endif
 #endif
 #endif
-#if !defined(PIC) && !defined(NOLIBTOOL)
+#if !defined(PIC) && !defined(NOLIBTOOL) && !defined(LIBXML_STATIC)
 #  define LIBXML_STATIC
 #endif
 #endif /* ! __XML_LIBXML_H__ */
diff --git a/libxml.m4 b/libxml.m4
index 68cd824..2d7a6f5 100644
--- a/libxml.m4
+++ b/libxml.m4
@@ -170,7 +170,7 @@
           echo "*** If you have an old version installed, it is best to remove it, although"
           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
         [ echo "*** The test program failed to compile or link. See the file config.log for the"
-          echo "*** exact error that occured. This usually means LIBXML was incorrectly installed"
+          echo "*** exact error that occurred. This usually means LIBXML was incorrectly installed"
           echo "*** or that you have moved LIBXML since it was installed. In the latter case, you"
           echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ])
           CPPFLAGS="$ac_save_CPPFLAGS"
diff --git a/libxml.spec.in b/libxml.spec.in
index 242a4fe..d5f5ccb 100644
--- a/libxml.spec.in
+++ b/libxml.spec.in
@@ -1,3 +1,5 @@
+%global with_python3 1
+
 Summary: Library providing XML and HTML support
 Name: libxml2
 Version: @VERSION@
@@ -6,7 +8,13 @@
 Group: Development/Libraries
 Source: ftp://xmlsoft.org/libxml2/libxml2-%{version}.tar.gz
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
-BuildRequires: python python-devel zlib-devel pkgconfig xz-devel
+BuildRequires: python-devel
+%if 0%{?with_python3}
+BuildRequires: python3-devel
+%endif # with_python3
+BuildRequires: zlib-devel
+BuildRequires: pkgconfig
+BuildRequires: xz-devel
 URL: http://xmlsoft.org/
 
 %description
@@ -49,14 +57,17 @@
 Static library for libxml2 provided for specific uses or shaving a few
 microseconds when parsing, do not link to them for generic purpose packages.
 
-%package python
+%package -n python-%{name}
+%{?python_provide:%python_provide python-%{name}}
 Summary: Python bindings for the libxml2 library
 Group: Development/Libraries
 Requires: libxml2 = %{version}-%{release}
+Obsoletes: %{name}-python < %{version}-%{release}
+Provides: %{name}-python = %{version}-%{release}
 
-%description python
-The libxml2-python package contains a module that permits applications
-written in the Python programming language to use the interface
+%description -n python-%{name}
+The libxml2-python package contains a Python 2 module that permits applications
+written in the Python programming language, version 2, to use the interface
 supplied by the libxml2 library to manipulate XML files.
 
 This library allows to manipulate XML files. It includes support
@@ -64,18 +75,50 @@
 this includes parsing and validation even with complex DTDs, either
 at parse time or later once the document has been modified.
 
+%if 0%{?with_python3}
+%package -n python3-%{name}
+Summary: Python 3 bindings for the libxml2 library
+Group: Development/Libraries
+Requires: libxml2 = %{version}-%{release}
+Obsoletes: %{name}-python3 < %{version}-%{release}
+Provides: %{name}-python3 = %{version}-%{release}
+
+%description -n python3-%{name}
+The libxml2-python3 package contains a Python 3 module that permits
+applications written in the Python programming language, version 3, to use the
+interface supplied by the libxml2 library to manipulate XML files.
+
+This library allows to manipulate XML files. It includes support
+to read, modify and write XML and HTML files. There is DTDs support
+this includes parsing and validation even with complex DTDs, either
+at parse time or later once the document has been modified.
+%endif # with_python3
+
 %prep
 %setup -q
 
+mkdir py3doc
+cp doc/*.py py3doc
+sed -i 's|#!/usr/bin/python |#!%{__python3} |' py3doc/*.py
+
 %build
 %configure
 make %{_smp_mflags}
 
+find doc -type f -exec chmod 0644 \{\} \;
+
 %install
 rm -fr %{buildroot}
 
 make install DESTDIR=%{buildroot}
 
+%if 0%{?with_python3}
+make clean
+%configure --with-python=%{__python3}
+make install DESTDIR=%{buildroot}
+%endif # with_python3
+
+
 rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
 rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.a
 rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la
@@ -133,18 +176,32 @@
 
 %{_libdir}/*a
 
-%files python
+%files -n python-%{name}
 %defattr(-, root, root)
 
-%{_libdir}/python*/site-packages/libxml2.py*
-%{_libdir}/python*/site-packages/drv_libxml2.py*
-%{_libdir}/python*/site-packages/libxml2mod*
+%{_libdir}/python2*/site-packages/libxml2.py*
+%{_libdir}/python2*/site-packages/drv_libxml2.py*
+%{_libdir}/python2*/site-packages/libxml2mod*
 %doc python/TODO
 %doc python/libxml2class.txt
 %doc python/tests/*.py
 %doc doc/*.py
 %doc doc/python.html
 
+%if 0%{?with_python3}
+%files -n python3-%{name}
+%defattr(-, root, root)
+
+%{_libdir}/python3*/site-packages/libxml2.py*
+%{_libdir}/python3*/site-packages/drv_libxml2.py*
+%{_libdir}/python3*/site-packages/__pycache__/*py*
+%{_libdir}/python3*/site-packages/libxml2mod*
+%doc python/TODO
+%doc python/libxml2class.txt
+%doc py3doc/*.py
+%doc doc/python.html
+%endif # with_python3
+
 %changelog
 * @RELDATE@ Daniel Veillard <veillard@redhat.com>
 - upstream release @VERSION@ see http://xmlsoft.org/news.html
diff --git a/libxml2-config.cmake.in b/libxml2-config.cmake.in
index ac29329..6b16fc2 100644
--- a/libxml2-config.cmake.in
+++ b/libxml2-config.cmake.in
@@ -21,7 +21,7 @@
 set(LIBXML2_VERSION_MICRO  @LIBXML_MICRO_VERSION@)
 set(LIBXML2_VERSION_STRING "@VERSION@")
 set(LIBXML2_INSTALL_PREFIX ${_libxml2_rootdir})
-set(LIBXML2_INCLUDE_DIRS   ${_libxml2_rootdir}/include)
+set(LIBXML2_INCLUDE_DIRS   ${_libxml2_rootdir}/include ${_libxml2_rootdir}/include/libxml2)
 set(LIBXML2_LIBRARY_DIR    ${_libxml2_rootdir}/lib)
 set(LIBXML2_LIBRARIES      -L${LIBXML2_LIBRARY_DIR} -lxml2)
 
diff --git a/libxml2.syms b/libxml2.syms
index 370dcf1..9889cb2 100644
--- a/libxml2.syms
+++ b/libxml2.syms
@@ -2279,3 +2279,10 @@
   xmlXPathSetContextNode;
 } LIBXML2_2.9.0;
 
+LIBXML2_2.9.8 {
+    global:
+
+# hash
+  xmlHashDefaultDeallocator;
+} LIBXML2_2.9.1;
+
diff --git a/list.c b/list.c
index d33d928..24da6b1 100644
--- a/list.c
+++ b/list.c
@@ -347,7 +347,7 @@
  *
  * Remove the first instance associated to data in the list
  *
- * Returns 1 if a deallocation occured, or 0 if not found
+ * Returns 1 if a deallocation occurred, or 0 if not found
  */
 int
 xmlListRemoveFirst(xmlListPtr l, void *data)
@@ -372,7 +372,7 @@
  *
  * Remove the last instance associated to data in the list
  *
- * Returns 1 if a deallocation occured, or 0 if not found
+ * Returns 1 if a deallocation occurred, or 0 if not found
  */
 int
 xmlListRemoveLast(xmlListPtr l, void *data)
@@ -673,7 +673,7 @@
  * apply the walker function to it
  */
 void
-xmlListWalk(xmlListPtr l, xmlListWalker walker, const void *user) {
+xmlListWalk(xmlListPtr l, xmlListWalker walker, void *user) {
     xmlLinkPtr lk;
 
     if ((l == NULL) || (walker == NULL))
@@ -694,7 +694,7 @@
  * apply the walker function to it
  */
 void
-xmlListReverseWalk(xmlListPtr l, xmlListWalker walker, const void *user) {
+xmlListReverseWalk(xmlListPtr l, xmlListWalker walker, void *user) {
     xmlLinkPtr lk;
 
     if ((l == NULL) || (walker == NULL))
diff --git a/macos/src/config-mac.h b/macos/src/config-mac.h
index e9a8f9d..ca6f993 100644
--- a/macos/src/config-mac.h
+++ b/macos/src/config-mac.h
@@ -21,27 +21,9 @@
 #define HAVE_PTHREAD_H
 #define LIBXML_THREAD_ENABLED
 
-/* Define if you have the _stat function.  */
-#define HAVE__STAT
-
-/* Define if you have the class function.  */
-#undef HAVE_CLASS
-
-/* Define if you have the finite function.  */
-#undef HAVE_FINITE
-
-/* Define if you have the fp_class function.  */
-#undef HAVE_FP_CLASS
-
-/* Define if you have the fpclass function.  */
-#undef HAVE_FPCLASS
-
 /* Define if you have the fprintf function.  */
 #define HAVE_FPRINTF
 
-/* Define if you have the isnand function.  */
-#undef HAVE_ISNAND
-
 /* Define if you have the localtime function.  */
 #define HAVE_LOCALTIME
 
@@ -63,18 +45,9 @@
 /* Define if you have the stat function.  */
 #define HAVE_STAT
 
-/* Define if you have the strdup function.  */
-#define HAVE_STRDUP
-
-/* Define if you have the strerror function.  */
-#define HAVE_STRERROR
-
 /* Define if you have the strftime function.  */
 #define HAVE_STRFTIME
 
-/* Define if you have the strndup function.  */
-#define HAVE_STRNDUP
-
 /* Define if you have the vfprintf function.  */
 #define HAVE_VFPRINTF
 
@@ -84,9 +57,6 @@
 /* Define if you have the vsprintf function.  */
 #define HAVE_VSPRINTF
 
-/* Define if you have the <ansidecl.h> header file.  */
-#define HAVE_ANSIDECL_H
-
 /* Define if you have the <arpa/inet.h> header file.  */
 #define HAVE_ARPA_INET_H
 
@@ -108,21 +78,12 @@
 /* Define if you have the <float.h> header file.  */
 #define HAVE_FLOAT_H
 
-/* Define if you have the <fp_class.h> header file.  */
-#define HAVE_FP_CLASS_H
-
-/* Define if you have the <ieeefp.h> header file.  */
-#define HAVE_IEEEFP_H
-
 /* Define if you have the <malloc.h> header file.  */
 #undef HAVE_MALLOC_H
 
 /* Define if you have the <math.h> header file.  */
 #define HAVE_MATH_H
 
-/* Define if you have the <nan.h> header file.  */
-#define HAVE_NAN_H
-
 /* Define if you have the <ndir.h> header file.  */
 #define HAVE_NDIR_H
 
@@ -174,9 +135,6 @@
 /* Define if you have the <unistd.h> header file.  */
 #define HAVE_UNISTD_H
 
-/* Define if you have the <zlib.h> header file.  */
-#undef HAVE_ZLIB_H
-
 /* Name of package */
 #define PACKAGE
 
diff --git a/nanoftp.c b/nanoftp.c
index 2135ab9..54fa026 100644
--- a/nanoftp.c
+++ b/nanoftp.c
@@ -12,8 +12,6 @@
 #define HAVE_NETINET_IN_H
 #define HAVE_NETDB_H
 #define HAVE_SYS_TIME_H
-#else /* TESTING */
-#define NEED_SOCKETS
 #endif /* TESTING */
 
 #define IN_LIBXML
@@ -77,14 +75,8 @@
 #endif
 
 
-#if defined(__MINGW32__) || defined(_WIN32_WCE)
-#ifndef _WINSOCKAPI_
-#define _WINSOCKAPI_
-#endif
+#if defined(_WIN32) && !defined(__CYGWIN__)
 #include <wsockcompat.h>
-#include <winsock2.h>
-#undef XML_SOCKLEN_T
-#define XML_SOCKLEN_T unsigned int
 #endif
 
 /**
@@ -511,6 +503,8 @@
     if (ctxt->hostname != NULL) xmlFree(ctxt->hostname);
     if (ctxt->protocol != NULL) xmlFree(ctxt->protocol);
     if (ctxt->path != NULL) xmlFree(ctxt->path);
+    if (ctxt->user != NULL) xmlFree(ctxt->user);
+    if (ctxt->passwd != NULL) xmlFree(ctxt->passwd);
     ctxt->passive = 1;
     if (ctxt->controlFd != INVALID_SOCKET) closesocket(ctxt->controlFd);
     ctxt->controlFd = INVALID_SOCKET;
@@ -907,7 +901,7 @@
 	    __xmlIOErr(XML_FROM_FTP, 0, "getaddrinfo failed");
 	    return (-1);
 	}
-	if (tmp->ai_addrlen > sizeof(ctxt->ftpAddr)) {
+	if ((size_t)tmp->ai_addrlen > sizeof(ctxt->ftpAddr)) {
 	    if (result)
 		freeaddrinfo (result);
 	    __xmlIOErr(XML_FROM_FTP, 0, "gethostbyname address mismatch");
@@ -1042,6 +1036,7 @@
 		case 2:
 		    if (proxyPasswd == NULL)
 			break;
+                    /* Falls through. */
 		case 3:
 		    if (proxyPasswd != NULL)
 			snprintf(buf, sizeof(buf), "PASS %s\r\n", proxyPasswd);
@@ -1111,6 +1106,7 @@
 		    ctxt->controlFd = INVALID_SOCKET;
 		    return(-1);
 		}
+                /* Falls through. */
 	    case 2:
 		/* USER user@host command */
 		if (ctxt->user == NULL)
@@ -1164,6 +1160,7 @@
 		    ctxt->controlFd = INVALID_SOCKET;
 		    return(-1);
 		}
+                /* Falls through. */
 	    case 3:
 		/*
 		 * If you need support for other Proxy authentication scheme
@@ -1212,6 +1209,7 @@
 	case 3:
 	    __xmlIOErr(XML_FROM_FTP, XML_FTP_ACCNT,
 		       "FTP server asking for ACCNT on anonymous\n");
+           /* Falls through. */
 	case 1:
 	case 4:
 	case 5:
diff --git a/nanohttp.c b/nanohttp.c
index e109ad7..2143718 100644
--- a/nanohttp.c
+++ b/nanohttp.c
@@ -11,7 +11,6 @@
  * daniel@veillard.com
  */
 
-#define NEED_SOCKETS
 #define IN_LIBXML
 #include "libxml.h"
 
@@ -64,7 +63,7 @@
 #ifdef HAVE_STRINGS_H
 #include <strings.h>
 #endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 #include <zlib.h>
 #endif
 
@@ -74,14 +73,8 @@
 #define XML_SOCKLEN_T unsigned int
 #endif
 
-#if defined(__MINGW32__) || defined(_WIN32_WCE)
-#ifndef _WINSOCKAPI_
-#define _WINSOCKAPI_
-#endif
+#if defined(_WIN32) && !defined(__CYGWIN__)
 #include <wsockcompat.h>
-#include <winsock2.h>
-#undef XML_SOCKLEN_T
-#define XML_SOCKLEN_T unsigned int
 #endif
 
 #include <libxml/globals.h>
@@ -152,7 +145,7 @@
     char *authHeader;	/* contents of {WWW,Proxy}-Authenticate header */
     char *encoding;	/* encoding extracted from the contentType */
     char *mimeType;	/* Mime-Type extracted from the contentType */
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     z_stream *strm;	/* Zlib stream object */
     int usesGzip;	/* "Content-Encoding: gzip" was detected */
 #endif
@@ -182,7 +175,21 @@
  */
 static int socket_errno(void) {
 #ifdef _WINSOCKAPI_
-    return(WSAGetLastError());
+    int err = WSAGetLastError();
+    switch(err) {
+        case WSAECONNRESET:
+            return(ECONNRESET);
+        case WSAEINPROGRESS:
+            return(EINPROGRESS);
+        case WSAEINTR:
+            return(EINTR);
+        case WSAESHUTDOWN:
+            return(ESHUTDOWN);
+        case WSAEWOULDBLOCK:
+            return(EWOULDBLOCK);
+        default:
+            return(err);
+    }
 #else
     return(errno);
 #endif
@@ -427,7 +434,7 @@
     if (ctxt->mimeType != NULL) xmlFree(ctxt->mimeType);
     if (ctxt->location != NULL) xmlFree(ctxt->location);
     if (ctxt->authHeader != NULL) xmlFree(ctxt->authHeader);
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     if (ctxt->strm != NULL) {
 	inflateEnd(ctxt->strm);
 	xmlFree(ctxt->strm);
@@ -629,7 +636,7 @@
 
         if ((select(ctxt->fd + 1, &rfd, NULL, NULL, &tv) < 1)
 #if defined(EINTR)
-            && (errno != EINTR)
+            && (socket_errno() != EINTR)
 #endif
             )
             return (0);
@@ -810,7 +817,7 @@
 	if (ctxt->authHeader != NULL)
 	    xmlFree(ctxt->authHeader);
 	ctxt->authHeader = xmlMemStrdup(cur);
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     } else if ( !xmlStrncasecmp( BAD_CAST line, BAD_CAST"Content-Encoding:", 17) ) {
 	cur += 17;
 	while ((*cur == ' ') || (*cur == '\t')) cur++;
@@ -1038,16 +1045,13 @@
 static SOCKET
 xmlNanoHTTPConnectHost(const char *host, int port)
 {
-    struct hostent *h;
     struct sockaddr *addr = NULL;
-    struct in_addr ia;
     struct sockaddr_in sockin;
 
 #ifdef SUPPORT_IP6
     struct in6_addr ia6;
     struct sockaddr_in6 sockin6;
 #endif
-    int i;
     SOCKET s;
 
     memset (&sockin, 0, sizeof(sockin));
@@ -1084,7 +1088,7 @@
 
 	for (res = result; res; res = res->ai_next) {
 	    if (res->ai_family == AF_INET) {
-		if (res->ai_addrlen > sizeof(sockin)) {
+		if ((size_t)res->ai_addrlen > sizeof(sockin)) {
 		    __xmlIOErr(XML_FROM_HTTP, 0, "address size mismatch\n");
 		    freeaddrinfo (result);
 		    return INVALID_SOCKET;
@@ -1094,7 +1098,7 @@
 		addr = (struct sockaddr *)&sockin;
 #ifdef SUPPORT_IP6
 	    } else if (have_ipv6 () && (res->ai_family == AF_INET6)) {
-		if (res->ai_addrlen > sizeof(sockin6)) {
+		if ((size_t)res->ai_addrlen > sizeof(sockin6)) {
 		    __xmlIOErr(XML_FROM_HTTP, 0, "address size mismatch\n");
 		    freeaddrinfo (result);
 		    return INVALID_SOCKET;
@@ -1122,6 +1126,10 @@
 #endif
 #if !defined(HAVE_GETADDRINFO) || !defined(_WIN32)
     {
+        struct hostent *h;
+        struct in_addr ia;
+        int i;
+
 	h = gethostbyname (GETHOSTBYNAME_ARG_CAST host);
 	if (h == NULL) {
 
@@ -1130,7 +1138,7 @@
  * extraction code. it work on Linux, if it work on your platform
  * and one want to enable it, send me the defined(foobar) needed
  */
-#if defined(HAVE_NETDB_H) && defined(HOST_NOT_FOUND) && defined(linux)
+#if defined(HAVE_NETDB_H) && defined(HOST_NOT_FOUND) && defined(__linux__)
 	    const char *h_err_txt = "";
 
 	    switch (h_errno) {
@@ -1265,7 +1273,7 @@
 int
 xmlNanoHTTPRead(void *ctx, void *dest, int len) {
     xmlNanoHTTPCtxtPtr ctxt = (xmlNanoHTTPCtxtPtr) ctx;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     int bytes_read = 0;
     int orig_avail_in;
     int z_ret;
@@ -1275,7 +1283,7 @@
     if (dest == NULL) return(-1);
     if (len <= 0) return(0);
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     if (ctxt->usesGzip == 1) {
         if (ctxt->strm == NULL) return(0);
 
@@ -1416,16 +1424,16 @@
 	/* 1 for '?' */
 	blen += strlen(ctxt->query) + 1;
     blen += strlen(method) + strlen(ctxt->path) + 24;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     /* reserve for possible 'Accept-Encoding: gzip' string */
     blen += 23;
 #endif
     if (ctxt->port != 80) {
 	/* reserve space for ':xxxxx', incl. potential proxy */
 	if (proxy)
-	    blen += 12;
+	    blen += 17;
 	else
-	    blen += 6;
+	    blen += 11;
     }
     bp = (char*)xmlMallocAtomic(blen);
     if ( bp == NULL ) {
@@ -1460,7 +1468,7 @@
 		    ctxt->hostname, ctxt->port);
     }
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     p += snprintf(p, blen - (p - bp), "Accept-Encoding: gzip\r\n");
 #endif
 
@@ -1534,7 +1542,8 @@
 	xmlGenericError(xmlGenericErrorContext,
 		"\nRedirect to: %s\n", ctxt->location);
 #endif
-	while ( xmlNanoHTTPRecv(ctxt) > 0 ) ;
+	while ( xmlNanoHTTPRecv(ctxt) > 0 )
+            ;
         if (nbRedirects < XML_NANO_HTTP_MAX_REDIR) {
 	    nbRedirects++;
 	    if (redirURL != NULL)
diff --git a/optim/hash_dict.txt b/optim/hash_dict.txt
index f655deb..a447b7e 100644
--- a/optim/hash_dict.txt
+++ b/optim/hash_dict.txt
@@ -1,4 +1,4 @@
-Reuses a dictionnary for the hash table to reduce the string compare
+Reuses a dictionary for the hash table to reduce the string compare
 costs. Not worth it unless validating big DTDs
 
 		without		with
diff --git a/os400/README400 b/os400/README400
index 6c16de9..fff923c 100644
--- a/os400/README400
+++ b/os400/README400
@@ -185,15 +185,27 @@
                              va_list args);
 
 
+xmllint and xmlcatalog programs:
+
+  These programs are fully implemented at the qshell level, with standard
+command line options. Links to these are installed in sub-directory bin of
+the IFS installation directory.
+  CL command interfaces to these programs are also provided with limited
+support. In particular, interactive mode is not supported and argument count
+and lengths are limited by the CL command syntax.
+
 
 ILE/RPG binding:
 
   All standard types and procedures are provided. Since ILE/RPG does not
-support macros, they have not been ported, with the exceptions of the more
-useful ones and the global/threaded variables access macros. These variables
-can be read with function get_xxx(void), where xxxx is the name of the
-variable; they may be set by calling function set_xxxx(value), where value is
-of the same type as the variable.
+support macros, they have not been ported. However some of them are emulated
+as functions: these are the more useful ones (xmlXPathNodeSetGetLength,
+xmlXPathNodeSetItem, xmlXPathNodeSetIsEmpty, htmlDefaultSubelement,
+htmlElementAllowedHereDesc, htmlRequiredAttrs) and the global/threaded
+variables access macros. These variables can be read with function
+get_xxx(void), where xxxx is the name of the variable; they may be set by
+calling function set_xxxx(value), where value is of the same type as the
+variable.
 
   The C va_list is not implemented as such in ILE/RPG. Functions implementing
 va_list and associated methods are provided:
diff --git a/os400/dlfcn/dlfcn.c b/os400/dlfcn/dlfcn.c
index 1488e12..77190b3 100644
--- a/os400/dlfcn/dlfcn.c
+++ b/os400/dlfcn/dlfcn.c
@@ -375,7 +375,7 @@
                         case 2:
                                 if (tail[1] != '.')
                                         break;
-                                        
+
                                 pathlen = dlparentpath(path, pathlen);
 
                         case 1:
diff --git a/os400/initscript.sh b/os400/initscript.sh
index fb80507..42ce54d 100644
--- a/os400/initscript.sh
+++ b/os400/initscript.sh
@@ -50,7 +50,7 @@
 setenv DEBUG            '*ALL'          # Debug level.
 setenv OPTIMIZE         '10'            # Optimisation level.
 setenv OUTPUT           '*NONE'         # Compilation output option.
-setenv TGTRLS           'V5R3M0'        # Target OS release.
+setenv TGTRLS           'V6R1M0'        # Target OS release.
 setenv IFSDIR           '/libxml2'      # Installation IFS directory.
 
 
@@ -165,15 +165,38 @@
 }
 
 
-#       make_module module_name source_name [additional_definitions]
+#       make_module [option] module_name source_name
 #
 #       Compile source name into ASCII module if needed.
 #       As side effect, append the module name to variable MODULES.
 #       Set LINK to "YES" if the module has been compiled.
+#       Options are:
+#         --define <additional definitions>
+#         --ebcdic
+#         --sysiconv
 
 make_module()
 
 {
+        DEFN=
+        EBCDIC=
+        SYSICONV=
+        while true
+        do      case "${1}" in
+                --define)
+                        DEFN="${2}"
+                        shift
+                        ;;
+                --ebcdic)
+                        EBCDIC=yes
+                        ;;
+                --sysiconv)
+                        SYSICONV=yes
+                        ;;
+                *)      break
+                esac
+                shift
+        done
         MODULES="${MODULES} ${1}"
         MODIFSNAME="${LIBIFSNAME}/${1}.MODULE"
         action_needed "${MODIFSNAME}" "${2}" || return 0;
@@ -185,7 +208,7 @@
         #               the source file and we compile that temporary file.
 
         rm -f __tmpsrcf.c
-        if [ "${4}" != 'ebcdic' ]
+        if [ -z "${EBCDIC}" ]
         then    echo "#line 1 \"${2}\"" >> __tmpsrcf.c
                 echo "#pragma convert(819)" >> __tmpsrcf.c
                 echo '#include "wrappers.h"' >> __tmpsrcf.c
@@ -194,11 +217,13 @@
         cat "${2}" >> __tmpsrcf.c
         CMD="CRTCMOD MODULE(${TARGETLIB}/${1}) SRCSTMF('__tmpsrcf.c')"
 #       CMD="${CMD} OPTION(*INCDIRFIRST *SHOWINC *SHOWSYS)"
-        CMD="${CMD} OPTION(*INCDIRFIRST)"
+        CMD="${CMD} OPTION(*INCDIRFIRST) FLAG(10)"
         CMD="${CMD} SYSIFCOPT(*IFS64IO) LANGLVL(*EXTENDED) LOCALETYPE(*LOCALE)"
         CMD="${CMD} INCDIR("
-        CMD="${CMD} '${TOPDIR}/os400/iconv'"
-        if [ "${4}" != 'ebcdic' ]
+        if [  -z "${SYSICONV}" ]
+        then    CMD="${CMD} '${TOPDIR}/os400/iconv'"
+        fi
+        if [ -z "${EBCDIC}" ]
         then    CMD="${CMD} '/qibm/proddata/qadrt/include'"
         fi
         CMD="${CMD} '${TOPDIR}/os400' '${TOPDIR}/os400/dlfcn'"
@@ -211,7 +236,7 @@
         CMD="${CMD} OUTPUT(${OUTPUT})"
         CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
         CMD="${CMD} DBGVIEW(${DEBUG})"
-        CMD="${CMD} DEFINE('_REENTRANT' 'TRIO_HAVE_CONFIG_H' 'NDEBUG' ${3})"
+        CMD="${CMD} DEFINE('_REENTRANT' 'TRIO_HAVE_CONFIG_H' 'NDEBUG' ${DEFN})"
 
         system "${CMD}"
         rm -f __tmpsrcf.c
diff --git a/os400/libxmlmain.c b/os400/libxmlmain.c
new file mode 100644
index 0000000..91c848a
--- /dev/null
+++ b/os400/libxmlmain.c
@@ -0,0 +1,102 @@
+/**
+***     QADRT/QADRTMAIN2 substitution program.
+***     This is needed because the IBM-provided QADRTMAIN2 does not
+***     properly translate arguments by default or if no locale is provided.
+***
+***     See Copyright for the status of this software.
+***
+***     Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdlib.h>
+#include <string.h>
+#include <iconv.h>
+#include <errno.h>
+#include <locale.h>
+
+/* Do not use qadrt.h since it defines unneeded static procedures. */
+extern void     QadrtInit(void);
+extern int      QadrtFreeConversionTable(void);
+extern int      QadrtFreeEnviron(void);
+extern char *   setlocale_a(int, const char *);
+
+
+/* The ASCII main program. */
+extern int      main_a(int argc, char * * argv);
+
+/* Global values of original EBCDIC arguments. */
+int             ebcdic_argc;
+char * *        ebcdic_argv;
+
+
+int
+main(int argc, char * * argv)
+
+{
+        int i;
+        int j;
+        iconv_t cd;
+        size_t bytecount = 0;
+        char * inbuf;
+        char * outbuf;
+        size_t inbytesleft;
+        size_t outbytesleft;
+        char dummybuf[128];
+        char tocode[32];
+        char fromcode[32];
+
+        ebcdic_argc = argc;
+        ebcdic_argv = argv;
+
+        /* Build the encoding converter. */
+        strncpy(tocode, "IBMCCSID01208", sizeof tocode);
+        strncpy(fromcode, "IBMCCSID000000000010", sizeof fromcode);
+        cd = iconv_open(tocode, fromcode);
+
+        /* Measure the arguments. */
+        for (i = 0; i < argc; i++) {
+                inbuf = argv[i];
+                do {
+                        inbytesleft = 0;
+                        outbuf = dummybuf;
+                        outbytesleft = sizeof dummybuf;
+                        j = iconv(cd,
+                                  &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+                        bytecount += outbuf - dummybuf;
+                } while (j == -1 && errno == E2BIG);
+                /* Reset the shift state. */
+                iconv(cd, NULL, &inbytesleft, &outbuf, &outbytesleft);
+                }
+
+        /* Allocate memory for the ASCII arguments and vector. */
+        argv = (char * *) malloc((argc + 1) * sizeof *argv + bytecount);
+
+        /* Build the vector and convert argument encoding. */
+        outbuf = (char *) (argv + argc + 1);
+        outbytesleft = bytecount;
+
+        for (i = 0; i < argc; i++) {
+                argv[i] = outbuf;
+                inbuf = ebcdic_argv[i];
+                inbytesleft = 0;
+                iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+                iconv(cd, NULL, &inbytesleft, &outbuf, &outbytesleft);
+                }
+
+        iconv_close(cd);
+        argv[argc] = NULL;
+
+        /* Try setting the locale regardless of QADRT_ENV_LOCALE. */
+        setlocale_a(LC_ALL, "");
+
+        /* Call the program. */
+        i = main_a(argc, argv);
+
+        /* Clean-up allocated items. */
+        free((char *) argv);
+        QadrtFreeConversionTable();
+        QadrtFreeEnviron();
+
+        /* Terminate. */
+        return i;
+}
diff --git a/os400/libxmlrpg/DOCBparser.rpgle b/os400/libxmlrpg/DOCBparser.rpgle
index bf5aaa2..08a6b8c 100644
--- a/os400/libxmlrpg/DOCBparser.rpgle
+++ b/os400/libxmlrpg/DOCBparser.rpgle
@@ -13,6 +13,7 @@
 
       /if defined(LIBXML_DOCB_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/parser"
       /include "libxmlrpg/parserInternals"
 
@@ -46,13 +47,14 @@
       * There is only few public functions.
 
      d docbEncodeEntities...
-     d                 pr            10i 0 extproc('docbEncodeEntities')
+     d                 pr                  extproc('docbEncodeEntities')
+     d                                     like(xmlCint)
      d  out                            *   value options(*string)               unsigned char *
      d  outlen                         *   value                                int *
      d  in                             *   value options(*string)               const unsigned char
      d                                                                          *
      d  inlen                          *   value                                int *
-     d  quoteChar                    10i 0 value
+     d  quoteChar                          value like(xmlCint)
 
      d docbSAXParseDoc...
      d                 pr                  extproc('docbSAXParseDoc')
@@ -92,15 +94,16 @@
      d  sax                                value like(docbSAXHandlerPtr)
      d  user_data                      *   value                                void *
      d  chunk                          *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  filename                       *   value options(*string)               const char *
      d  enc                                value like(xmlCharEncoding)
 
-     d docbParseChunk  pr            10i 0 extproc('docbParseChunk')
+     d docbParseChunk  pr                  extproc('docbParseChunk')
+     d                                     like(xmlCint)
      d  ctxt                               value like(docbParserCtxtPtr)
      d  chunk                          *   value options(*string)               const char *
-     d  size                         10i 0 value
-     d  terminate                    10i 0 value
+     d  size                               value like(xmlCint)
+     d  terminate                          value like(xmlCint)
 
      d docbCreateFileParserCtxt...
      d                 pr                  extproc('docbCreateFileParserCtxt')
@@ -109,7 +112,8 @@
      d  encoding                       *   value options(*string)               const char *
 
      d docbParseDocument...
-     d                 pr            10i 0 extproc('docbParseDocument')
+     d                 pr                  extproc('docbParseDocument')
+     d                                     like(xmlCint)
      d  ctxt                               value like(docbParserCtxtPtr)
 
       /endif                                                                    LIBXML_DOCB_ENABLED
diff --git a/os400/libxmlrpg/HTMLparser.rpgle b/os400/libxmlrpg/HTMLparser.rpgle
index 7b4a626..c27d8e5 100644
--- a/os400/libxmlrpg/HTMLparser.rpgle
+++ b/os400/libxmlrpg/HTMLparser.rpgle
@@ -12,10 +12,12 @@
       /define HTML_PARSER_H__
 
       /include "libxmlrpg/xmlversion"
-      /include "libxmlrpg/parser"
 
       /if defined(LIBXML_HTML_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+      /include "libxmlrpg/parser"
+
       * Most of the back-end structures from XML and HTML are shared.
 
      d htmlParserCtxtPtr...
@@ -63,13 +65,13 @@
      d htmlElemDesc    ds                  based(htmlElemDescPtr)
      d                                     align qualified
      d  name                           *                                        const char *
-     d  startTag                      3u 0                                      Start tag implied ?
-     d  endTag                        3u 0                                      End tag implied ?
-     d  saveEndTag                    3u 0                                      Save end tag ?
-     d  empty                         3u 0                                      Empty element ?
-     d  depr                          3u 0                                      Deprecated element ?
-     d  dtd                           3u 0                                      Loose DTD/Frameset
-     d  isinline                      3u 0                                      Block 0/inline elem?
+     d  startTag                           like(xmlCchar)                       Start tag implied ?
+     d  endTag                             like(xmlCchar)                       End tag implied ?
+     d  saveEndTag                         like(xmlCchar)                       Save end tag ?
+     d  empty                              like(xmlCchar)                       Empty element ?
+     d  depr                               like(xmlCchar)                       Deprecated element ?
+     d  dtd                                like(xmlCchar)                       Loose DTD/Frameset
+     d  isinline                           like(xmlCchar)                       Block 0/inline elem?
      d  desc                           *                                        const char *
       *
       * New fields encapsulating HTML structure
@@ -95,7 +97,7 @@
      d htmlEntityDesc...
      d                 ds                  based(htmlEntityDescPtr)
      d                                     align qualified
-     d  value                        10u 0                                      Unicode char value
+     d  value                              like(xmlCuint)
      d  name                           *                                        const char *
      d  desc                           *                                        const char *
 
@@ -113,15 +115,17 @@
      d htmlEntityValueLookup...
      d                 pr                  extproc('htmlEntityValueLookup')
      d                                     like(htmlEntityDescPtr)              const
-     d  value                        10u 0 value
+     d  value                              value like(xmlCuint)
 
      d htmlIsAutoClosed...
-     d                 pr            10i 0 extproc('htmlIsAutoClosed')
+     d                 pr                  extproc('htmlIsAutoClosed')
+     d                                     like(xmlCint)
      d  doc                                value like(htmlDocPtr)
      d  elem                               value like(htmlNodePtr)
 
      d htmlAutoCloseTag...
-     d                 pr            10i 0 extproc('htmlAutoCloseTag')
+     d                 pr                  extproc('htmlAutoCloseTag')
+     d                                     like(xmlCint)
      d  doc                                value like(htmlDocPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  elem                               value like(htmlNodePtr)
@@ -133,7 +137,8 @@
      d  str                            *                                        const xmlChar *(*)
 
      d htmlParseCharRef...
-     d                 pr            10i 0 extproc('htmlParseCharRef')
+     d                 pr                  extproc('htmlParseCharRef')
+     d                                     like(xmlCint)
      d  ctxt                               value like(htmlParserCtxtPtr)
 
      d htmlParseElement...
@@ -148,10 +153,11 @@
      d                 pr                  extproc('htmlCreateMemoryParserCtxt')
      d                                     like(htmlParserCtxtPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
 
      d htmlParseDocument...
-     d                 pr            10i 0 extproc('htmlParseDocument')
+     d                 pr                  extproc('htmlParseDocument')
+     d                                     like(xmlCint)
      d  ctxt                               value like(htmlParserCtxtPtr)
 
      d htmlSAXParseDoc...
@@ -180,27 +186,31 @@
      d  filename                       *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
 
-     d UTF8ToHtml      pr            10i 0 extproc('UTF8ToHtml')
+     d UTF8ToHtml      pr                  extproc('UTF8ToHtml')
+     d                                     like(xmlCint)
      d  out                       65535    options(*varsize)                    unsigned char []
-     d  outlen                       10i 0
+     d  outlen                             like(xmlCint)
      d  in                             *   value options(*string)               const unsigned char*
-     d  inlen                        10i 0
+     d  inlen                              like(xmlCint)
 
      d htmlEncodeEntities...
-     d                 pr            10i 0 extproc('htmlEncodeEntities')
+     d                 pr                  extproc('htmlEncodeEntities')
+     d                                     like(xmlCint)
      d  out                       65535    options(*varsize)                    unsigned char []
-     d  outlen                       10i 0
+     d  outlen                             like(xmlCint)
      d  in                             *   value options(*string)               const unsigned char*
-     d  inlen                        10i 0
-     d  quoteChar                    10i 0 value
+     d  inlen                              like(xmlCint)
+     d  quoteChar                          value like(xmlCint)
 
      d htmlIsScriptAttribute...
-     d                 pr            10i 0 extproc('htmlIsScriptAttribute')
+     d                 pr                  extproc('htmlIsScriptAttribute')
+     d                                     like(xmlCint)
      d  name                           *   value options(*string)               const xmlChar *
 
      d htmlHandleOmittedElem...
-     d                 pr            10i 0 extproc('htmlHandleOmittedElem')
-     d  val                          10i 0 value
+     d                 pr                  extproc('htmlHandleOmittedElem')
+     d                                     like(xmlCint)
+     d  val                                value like(xmlCint)
 
       /if defined(LIBXML_PUSH_ENABLED)
 
@@ -212,15 +222,16 @@
      d  sax                                value like(htmlSAXHandlerPtr)
      d  user_data                      *   value                                void *
      d  chunk                          *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  filename                       *   value options(*string)               const char *
      d  enc                                value like(xmlCharEncoding)
 
-     d htmlParseChunk  pr            10i 0 extproc('htmlParseChunk')
+     d htmlParseChunk  pr                  extproc('htmlParseChunk')
+     d                                     like(xmlCint)
      d  ctxt                               value like(htmlParserCtxtPtr)
      d  chunk                          *   value options(*string)               const char *
-     d  size                         10i 0 value
-     d  terminate                    10i 0 value
+     d  size                               value like(xmlCint)
+     d  terminate                          value like(xmlCint)
       /endif                                                                    LIBXML_PUSH_ENABLED
 
      d htmlFreeParserCtxt...
@@ -235,7 +246,8 @@
       * to the xmlReadDoc() and similar calls.
 
      d htmlParserOption...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  HTML_PARSE_RECOVER...                                                   Relaxed parsing
      d                 c                   X'00000001'
      d  HTML_PARSE_NODEFDTD...                                                  No default doctype
@@ -261,37 +273,38 @@
      d ctxt                                value like(htmlParserCtxtPtr)
 
      d htmlCtxtUseOptions...
-     d                 pr            10i 0 extproc('htmlCtxtUseOptions')
+     d                 pr                  extproc('htmlCtxtUseOptions')
+     d                                     like(xmlCint)
      d ctxt                                value like(htmlParserCtxtPtr)
-     d options                       10i 0 value
+     d options                             value like(xmlCint)
 
      d htmlReadDoc     pr                  extproc('htmlReadDoc')
      d                                     like(htmlDocPtr)
      d  cur                            *   value options(*string)               const xmlChar *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d htmlReadFile    pr                  extproc('htmlReadFile')
      d                                     like(htmlDocPtr)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d htmlReadMemory  pr                  extproc('htmlReadMemory')
      d                                     like(htmlDocPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d htmlReadFd      pr                  extproc('htmlReadFd')
      d                                     like(htmlDocPtr)
-     d  fd                           10i 0 value
+     d  fd                                 value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d htmlReadIO      pr                  extproc('htmlReadIO')
      d                                     like(htmlDocPtr)
@@ -300,7 +313,7 @@
      d  ioctx                          *   value                                void *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d htmlCtxtReadDoc...
      d                 pr                  extproc('htmlCtxtReadDoc')
@@ -309,7 +322,7 @@
      d  cur                            *   value options(*string)               const xmlChar *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d htmlCtxtReadFile...
      d                 pr                  extproc('htmlCtxtReadFile')
@@ -317,25 +330,25 @@
      d  ctxt                               value like(xmlParserCtxtPtr)
      d  filename                       *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d htmlCtxtReadMemory...
      d                 pr                  extproc('htmlCtxtReadMemory')
      d                                     like(htmlDocPtr)
      d  ctxt                               value like(xmlParserCtxtPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d htmlCtxtReadFd  pr                  extproc('htmlCtxtReadFd')
      d                                     like(htmlDocPtr)
      d  ctxt                               value like(xmlParserCtxtPtr)
-     d  fd                           10i 0 value
+     d  fd                                 value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d htmlCtxtReadIO  pr                  extproc('htmlCtxtReadIO')
      d                                     like(htmlDocPtr)
@@ -345,11 +358,12 @@
      d  ioctx                          *   value                                void *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
       * Further knowledge of HTML structure
 
-     d htmlStatus      s             10i 0 based(######typedef######)           enum
+     d htmlStatus      s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  HTML_NA        c                   X'0000'                              No check at all
      d  HTML_INVALID   c                   X'0001'
      d  HTML_DEPRECATED...
@@ -365,10 +379,11 @@
      d                                     like(htmlStatus)
      d  #param1                            value like(htmlElemDescPtr)          const
      d  #param2                        *   value options(*string)               const xmlChar *
-     d  #param3                      10i 0 value
+     d  #param3                            value like(xmlCint)
 
      d htmlElementAllowedHere...
-     d                 pr            10i 0 extproc('htmlElementAllowedHere')
+     d                 pr                  extproc('htmlElementAllowedHere')
+     d                                     like(xmlCint)
      d  #param1                            value like(htmlElemDescPtr)          const
      d  #param2                        *   value options(*string)               const xmlChar *
 
@@ -381,7 +396,7 @@
      d htmlNodeStatus  pr                  extproc('htmlNodeStatus')
      d                                     like(htmlStatus)
      d  #param1                            value like(htmlNodePtr)
-     d  #param2                      10i 0 value
+     d  #param2                            value like(xmlCint)
 
       * C macros implemented as procedures for ILE/RPG support.
 
@@ -390,8 +405,9 @@
      d  elt                            *   value                                const htmlElemDesc *
 
      d htmlElementAllowedHereDesc...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     '__htmlElementAllowedHereDesc')
+     d                                     like(xmlCint)
      d  parent                         *   value                                const htmlElemDesc *
      d  elt                            *   value                                const htmlElemDesc *
 
diff --git a/os400/libxmlrpg/HTMLtree.rpgle b/os400/libxmlrpg/HTMLtree.rpgle
index 82a11ca..99c38a0 100644
--- a/os400/libxmlrpg/HTMLtree.rpgle
+++ b/os400/libxmlrpg/HTMLtree.rpgle
@@ -10,11 +10,13 @@
       /define HTML_TREE_H__
 
       /include "libxmlrpg/xmlversion"
-      /include "libxmlrpg/tree"
-      /include "libxmlrpg/HTMLparser"
 
       /if defined(LIBXML_HTML_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+      /include "libxmlrpg/tree"
+      /include "libxmlrpg/HTMLparser"
+
       * HTML_TEXT_NODE:
       *
       * Macro. A text node in a HTML document is really implemented
@@ -69,7 +71,8 @@
      d  doc                                value like(htmlDocPtr)
 
      d htmlSetMetaEncoding...
-     d                 pr            10i 0 extproc('htmlSetMetaEncoding')
+     d                 pr                  extproc('htmlSetMetaEncoding')
+     d                                     like(xmlCint)
      d  doc                                value like(htmlDocPtr)
      d  encoding                       *   value options(*string)               const xmlChar *
 
@@ -78,24 +81,27 @@
      d                 pr                  extproc('htmlDocDumpMemory')
      d  cur                                value like(xmlDocPtr)
      d  mem                            *   value                                xmlChar * *
-     d  size                         10i 0
+     d  size                               like(xmlCint)
 
      d htmlDocDumpMemoryFormat...
      d                 pr                  extproc('htmlDocDumpMemoryFormat')
      d  cur                                value like(xmlDocPtr)
      d  mem                            *   value                                xmlChar * *
-     d  size                         10i 0
-     d  format                       10i 0 value
+     d  size                               like(xmlCint)
+     d  format                             value like(xmlCint)
 
-     d htmlDocDump     pr            10i 0 extproc('htmlDocDump')
+     d htmlDocDump     pr                  extproc('htmlDocDump')
+     d                                     like(xmlCint)
      d  f                              *   value                                FILE *
      d  cur                                value like(xmlDocPtr)
 
-     d htmlSaveFile    pr            10i 0 extproc('htmlSaveFile')
+     d htmlSaveFile    pr                  extproc('htmlSaveFile')
+     d                                     like(xmlCint)
      d  filename                       *   value options(*string)               const char *
      d  cur                                value like(xmlDocPtr)
 
-     d htmlNodeDump    pr            10i 0 extproc('htmlNodeDump')
+     d htmlNodeDump    pr                  extproc('htmlNodeDump')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlBufferPtr)
      d  doc                                value like(xmlDocPtr)
      d  cur                                value like(xmlNodePtr)
@@ -107,25 +113,28 @@
      d  cur                                value like(xmlNodePtr)
 
      d htmlNodeDumpFileFormat...
-     d                 pr            10i 0 extproc('htmlNodeDumpFileFormat')
+     d                 pr                  extproc('htmlNodeDumpFileFormat')
+     d                                     like(xmlCint)
      d  out                            *   value                                FILE *
      d  doc                                value like(xmlDocPtr)
      d  cur                                value like(xmlNodePtr)
      d  encoding                       *   value options(*string)               const char *
-     d  format                       10i 0 value
+     d  format                             value like(xmlCint)
 
      d htmlSaveFileEnc...
-     d                 pr            10i 0 extproc('htmlSaveFileEnc')
+     d                 pr                  extproc('htmlSaveFileEnc')
+     d                                     like(xmlCint)
      d  filename                       *   value options(*string)               const char *
      d  cur                                value like(xmlDocPtr)
      d  encoding                       *   value options(*string)               const char *
 
      d htmlSaveFileFormat...
-     d                 pr            10i 0 extproc('htmlSaveFileFormat')
+     d                 pr                  extproc('htmlSaveFileFormat')
+     d                                     like(xmlCint)
      d  filename                       *   value options(*string)               const char *
      d  cur                                value like(xmlDocPtr)
      d  encoding                       *   value options(*string)               const char *
-     d  format                       10i 0 value
+     d  format                             value like(xmlCint)
 
      d htmlNodeDumpFormatOutput...
      d                 pr                  extproc('htmlNodeDumpFormatOutput')
@@ -133,7 +142,7 @@
      d  doc                                value like(xmlDocPtr)
      d  cur                                value like(xmlNodePtr)
      d  encoding                       *   value options(*string)               const char *
-     d  format                       10i 0 value
+     d  format                             value like(xmlCint)
 
      d htmlDocContentDumpOutput...
      d                 pr                  extproc('htmlDocContentDumpOutput')
@@ -147,7 +156,7 @@
      d  buf                                value like(xmlOutputBufferPtr)
      d  cur                                value like(xmlDocPtr)
      d  encoding                       *   value options(*string)               const char *
-     d  format                       10i 0 value
+     d  format                             value like(xmlCint)
 
      d htmlNodeDumpOutput...
      d                 pr                  extproc('htmlNodeDumpOutput')
@@ -159,7 +168,8 @@
       /endif                                                                    LIBXML_OUTPUT_ENABLD
 
      d htmlIsBooleanAttr...
-     d                 pr            10i 0 extproc('htmlIsBooleanAttr')
+     d                 pr                  extproc('htmlIsBooleanAttr')
+     d                                     like(xmlCint)
      d  name                           *   value options(*string)               const xmlChar *
 
       /endif                                                                    LIBXML_HTML_ENABLED
diff --git a/os400/libxmlrpg/SAX.rpgle b/os400/libxmlrpg/SAX.rpgle
index 18f851d..a22d49a 100644
--- a/os400/libxmlrpg/SAX.rpgle
+++ b/os400/libxmlrpg/SAX.rpgle
@@ -26,22 +26,27 @@
      d  ctx                            *   value                                void *
      d  loc                                value like(xmlSAXLocatorPtr)
 
-     d getLineNumber   pr            10i 0 extproc('getLineNumber')
+     d getLineNumber   pr                  extproc('getLineNumber')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d getColumnNumber...
-     d                 pr            10i 0 extproc('getColumnNumber')
+     d                 pr                  extproc('getColumnNumber')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
-     d isStandalone    pr            10i 0 extproc('isStandalone')
+     d isStandalone    pr                  extproc('isStandalone')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d hasInternalSubset...
-     d                 pr            10i 0 extproc('hasInternalSubset')
+     d                 pr                  extproc('hasInternalSubset')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d hasExternalSubset...
-     d                 pr            10i 0 extproc('hasExternalSubset')
+     d                 pr                  extproc('hasExternalSubset')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d internalSubset  pr                  extproc('internalSubset')
@@ -76,7 +81,7 @@
      d entityDecl      pr                  extproc('entityDecl')
      d  ctx                            *   value                                void *
      d  name                           *   value options(*string)               const xmlChar *
-     d  type                         10i 0 value
+     d  type                               value like(xmlCint)
      d  publicId                       *   value options(*string)               const xmlChar *
      d  systemId                       *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               xmlChar *
@@ -85,15 +90,15 @@
      d  ctx                            *   value                                void *
      d  elem                           *   value options(*string)               const xmlChar *
      d  fullname                       *   value options(*string)               const xmlChar *
-     d  type                         10i 0 value
-     d  def                          10i 0 value
+     d  type                               value like(xmlCint)
+     d  def                                value like(xmlCint)
      d  defaultValue                   *   value options(*string)               const xmlChar *
      d  tree                               value like(xmlEnumerationPtr)
 
      d elementDecl     pr                  extproc('elementDecl')
      d  ctx                            *   value                                void *
      d  name                           *   value options(*string)               const xmlChar *
-     d  type                         10i 0 value
+     d  type                               value like(xmlCint)
      d  content                            value like(xmlElementContentPtr)
 
      d notationDecl    pr                  extproc('notationDecl')
@@ -137,13 +142,13 @@
      d characters      pr                  extproc('characters')
      d  ctx                            *   value                                void *
      d  ch                             *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d ignorableWhitespace...
      d                 pr                  extproc('ignorableWhitespace')
      d  ctx                            *   value                                void *
      d  ch                             *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d processingInstruction...
      d                 pr                  extproc('processingInstruction')
@@ -165,7 +170,8 @@
      d                                     like(xmlNsPtr)
      d  ctx                            *   value                                void *
 
-     d checkNamespace  pr            10i 0 extproc('checkNamespace')
+     d checkNamespace  pr                  extproc('checkNamespace')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
      d  nameSpace                      *   value options(*string)               xmlChar *
 
@@ -181,24 +187,24 @@
      d cdataBlock      pr                  extproc('cdataBlock')
      d  ctx                            *   value                                void *
      d  value                          *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
       /if defined(LIBXML_SAX1_ENABLED)
      d initxmlDefaultSAXHandler...
      d                 pr                  extproc('initxmlDefaultSAXHandler')
-     d  hdlr                               like(xmlSAXHandlerV1)
-     d  warning                      10i 0 value
+     d  hdlr                               likeds(xmlSAXHandlerV1)
+     d  warning                            value like(xmlCint)
 
       /if defined(LIBXML_HTML_ENABLED)
      d inithtmlDefaultSAXHandler...
      d                 pr                  extproc('inithtmlDefaultSAXHandler')
-     d  hdlr                               like(xmlSAXHandlerV1)
+     d  hdlr                               likeds(xmlSAXHandlerV1)
       /endif
 
       /if defined(LIBXML_DOCB_ENABLED)
      d initdocbDefaultSAXHandler...
      d                 pr                  extproc('initdocbDefaultSAXHandler')
-     d  hdlr                               like(xmlSAXHandlerV1)
+     d  hdlr                               likeds(xmlSAXHandlerV1)
       /endif
       /endif                                                                    LIBXML_SAX1_ENABLED
 
diff --git a/os400/libxmlrpg/SAX2.rpgle b/os400/libxmlrpg/SAX2.rpgle
index c9ab9d1..c72be25 100644
--- a/os400/libxmlrpg/SAX2.rpgle
+++ b/os400/libxmlrpg/SAX2.rpgle
@@ -10,6 +10,7 @@
       /define XML_SAX2_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/parser"
       /include "libxmlrpg/xlink"
 
@@ -27,23 +28,28 @@
      d  loc                                value like(xmlSAXLocatorPtr)
 
      d xmlSAX2GetLineNumber...
-     d                 pr            10i 0 extproc('xmlSAX2GetLineNumber')
+     d                 pr                  extproc('xmlSAX2GetLineNumber')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d xmlSAX2GetColumnNumber...
-     d                 pr            10i 0 extproc('xmlSAX2GetColumnNumber')
+     d                 pr                  extproc('xmlSAX2GetColumnNumber')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d xmlSAX2IsStandalone...
-     d                 pr            10i 0 extproc('xmlSAX2IsStandalone')
+     d                 pr                  extproc('xmlSAX2IsStandalone')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d xmlSAX2HasInternalSubset...
-     d                 pr            10i 0 extproc('xmlSAX2HasInternalSubset')
+     d                 pr                  extproc('xmlSAX2HasInternalSubset')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d xmlSAX2HasExternalSubset...
-     d                 pr            10i 0 extproc('xmlSAX2HasExternalSubset')
+     d                 pr                  extproc('xmlSAX2HasExternalSubset')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d xmlSAX2InternalSubset...
@@ -83,7 +89,7 @@
      d                 pr                  extproc('xmlSAX2EntityDecl')
      d  ctx                            *   value                                void *
      d  name                           *   value options(*string)               const xmlChar *
-     d  type                         10i 0 value
+     d  type                               value like(xmlCint)
      d  publicId                       *   value options(*string)               const xmlChar *
      d  systemId                       *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               xmlChar *
@@ -93,8 +99,8 @@
      d  ctx                            *   value                                void *
      d  elem                           *   value options(*string)               const xmlChar *
      d  fullname                       *   value options(*string)               const xmlChar *
-     d  type                         10i 0 value
-     d  def                          10i 0 value
+     d  type                               value like(xmlCint)
+     d  def                                value like(xmlCint)
      d  defaultValue                   *   value options(*string)               const xmlChar *
      d  tree                               value like(xmlEnumerationPtr)
 
@@ -102,7 +108,7 @@
      d                 pr                  extproc('xmlSAX2ElementDecl')
      d  ctx                            *   value                                void *
      d  name                           *   value options(*string)               const xmlChar *
-     d  type                         10i 0 value
+     d  type                               value like(xmlCint)
      d  content                            value like(xmlElementContentPtr)
 
      d xmlSAX2NotationDecl...
@@ -158,10 +164,10 @@
      d  localname                      *   value options(*string)               const xmlChar *
      d  prefix                         *   value options(*string)               const xmlChar *
      d  URI                            *   value options(*string)               const xmlChar *
-     d  nb_namespaces                10i 0 value
+     d  nb_namespaces                      value like(xmlCint)
      d  namespaces                     *   value                                const xmlChar *(*)
-     d  nb_attributes                10i 0 value
-     d  nb_defaulted                 10i 0 value
+     d  nb_attributes                      value like(xmlCint)
+     d  nb_defaulted                       value like(xmlCint)
      d  attributes                     *                                        const xmlChar *(*)
 
      d xmlSAX2EndElementNs...
@@ -180,13 +186,13 @@
      d                 pr                  extproc('xmlSAX2Characters')
      d  ctx                            *   value                                void *
      d  ch                             *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlSAX2IgnorableWhitespace...
      d                 pr                  extproc('xmlSAX2IgnorableWhitespace')
      d  ctx                            *   value                                void *
      d  ch                             *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlSAX2ProcessingInstruction...
      d                 pr                  extproc(
@@ -204,29 +210,31 @@
      d                 pr                  extproc('xmlSAX2CDataBlock')
      d  ctx                            *   value                                void *
      d  value                          *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
       /if defined(LIBXML_SAX1_ENABLED)
      d xmlSAXDefaultVersion...
-     d                 pr            10i 0 extproc('xmlSAXDefaultVersion')
-     d  version                      10i 0 value
+     d                 pr                  extproc('xmlSAXDefaultVersion')
+     d                                     like(xmlCint)
+     d  version                            value like(xmlCint)
       /endif                                                                    LIBXML_SAX1_ENABLED
 
-     d xmlSAXVersion   pr            10i 0 extproc('xmlSAXVersion')
-     d  hdlr                               like(xmlSAXHandler)
-     d  version                      10i 0 value
+     d xmlSAXVersion   pr                  extproc('xmlSAXVersion')
+     d                                     like(xmlCint)
+     d  hdlr                               likeds(xmlSAXHandler)
+     d  version                            value like(xmlCint)
 
      d xmlSAX2InitDefaultSAXHandler...
      d                 pr                  extproc(
      d                                      'xmlSAX2InitDefaultSAXHandler')
-     d  hdlr                               like(xmlSAXHandler)
-     d  warning                      10i 0 value
+     d  hdlr                               likeds(xmlSAXHandler)
+     d  warning                            value like(xmlCint)
 
       /if defined(LIBXML_HTML_ENABLED)
      d xmlSAX2InitHtmlDefaultSAXHandler...
      d                 pr                  extproc(
      d                                      'xmlSAX2InitHtmlDefaultSAXHandler')
-     d  hdlr                               like(xmlSAXHandler)
+     d  hdlr                               likeds(xmlSAXHandler)
 
      d htmlDefaultSAXHandlerInit...
      d                 pr                  extproc('htmlDefaultSAXHandlerInit')
@@ -236,7 +244,7 @@
      d xmlSAX2InitDocbDefaultSAXHandler...
      d                 pr                  extproc(
      d                                      'xmlSAX2InitDocbDefaultSAXHandler')
-     d  hdlr                               like(xmlSAXHandler)
+     d  hdlr                               likeds(xmlSAXHandler)
 
      d docbDefaultSAXHandlerInit...
      d                 pr                  extproc('docbDefaultSAXHandlerInit')
diff --git a/os400/libxmlrpg/c14n.rpgle b/os400/libxmlrpg/c14n.rpgle
index b64efb2..963ed37 100644
--- a/os400/libxmlrpg/c14n.rpgle
+++ b/os400/libxmlrpg/c14n.rpgle
@@ -21,6 +21,7 @@
       /if defined(LIBXML_C14N_ENABLED)
       /if defined(LIBXML_OUTPUT_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/tree"
       /include "libxmlrpg/xpath"
 
@@ -52,41 +53,45 @@
       * Predefined values for C14N modes
 
      d xmlBufferAllocationScheme...
-     d xmlC14NMode     s             10i 0 based(######typedef######)           enum
+     d xmlC14NMode     s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_C14N_1_0   c                   0                                    Original C14N 1.0
      d  XML_C14N_EXCLUSIVE_1_0...                                               Exclusive C14N 1.0
      d                 c                   1
      d  XML_C14N_1_1   c                   2                                    C14N 1.1 spec
 
      d xmlC14NDocSaveTo...
-     d                 pr            10i 0 extproc('xmlC14NDocSaveTo')
+     d                 pr                  extproc('xmlC14NDocSaveTo')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  nodes                              value like(xmlNodeSetPtr)
-     d  mode                         10i 0 value
+     d  mode                               value like(xmlCint)
      d  inclusive_ns_prefixes...
-     d                                 *                                        xmlChar *(*)
-     d  with_comments                10i 0 value
+     d                                 *   options(*omit)                       xmlChar *(*)
+     d  with_comments                      value like(xmlCint)
      d  buf                                value like(xmlOutputBufferPtr)
 
      d xmlC14NDocDumpMemory...
-     d                 pr            10i 0 extproc('xmlC14NDocDumpMemory')
+     d                 pr                  extproc('xmlC14NDocDumpMemory')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  nodes                              value like(xmlNodeSetPtr)
-     d  mode                         10i 0 value
+     d  mode                               value like(xmlCint)
      d  inclusive_ns_prefixes...
-     d                                 *                                        xmlChar *(*)
-     d  with_comments                10i 0 value
+     d                                 *   options(*omit)                       xmlChar *(*)
+     d  with_comments                      value like(xmlCint)
      d  doc_txt_ptr                    *                                        xmlChar *(*)
 
-     d xmlC14NDocSave  pr            10i 0 extproc('xmlC14NDocSave')
+     d xmlC14NDocSave  pr                  extproc('xmlC14NDocSave')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  nodes                              value like(xmlNodeSetPtr)
-     d  mode                         10i 0 value
+     d  mode                               value like(xmlCint)
      d  inclusive_ns_prefixes...
-     d                                 *                                        xmlChar *(*)
-     d  with_comments                10i 0 value
+     d                                 *   options(*omit)                       xmlChar *(*)
+     d  with_comments                      value like(xmlCint)
      d  filename                       *   value options(*string)               const char *
-     d  compression                  10i 0 value
+     d  compression                        value like(xmlCint)
 
       * This is the core C14N function
 
@@ -103,15 +108,16 @@
      d                 s               *   based(######typedef######)
      d                                     procptr
 
-     d xmlC14NExecute  pr            10i 0 extproc('xmlC14NExecute')
+     d xmlC14NExecute  pr                  extproc('xmlC14NExecute')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  is_visible_callback...
      d                                     value like(xmlC14NIsVisibleCallback)
      d  user_data                      *   value                                void *
-     d  mode                         10i 0 value
+     d  mode                               value like(xmlCint)
      d  inclusive_ns_prefixes...
-     d                                 *                                        xmlChar *(*)
-     d  with_comments                10i 0 value
+     d                                 *   options(*omit)                       xmlChar *(*)
+     d  with_comments                      value like(xmlCint)
      d  buf                                value like(xmlOutputBufferPtr)
 
       /endif                                                                    LIBXML_OUTPUT_ENABLD
diff --git a/os400/libxmlrpg/catalog.rpgle b/os400/libxmlrpg/catalog.rpgle
index 52baf4e..1dab819 100644
--- a/os400/libxmlrpg/catalog.rpgle
+++ b/os400/libxmlrpg/catalog.rpgle
@@ -16,11 +16,13 @@
       /define XML_CATALOG_H__
 
       /include "libxmlrpg/xmlversion"
-      /include "libxmlrpg/xmlstring"
-      /include "libxmlrpg/tree"
 
       /if defined(LIBXML_CATALOG_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+      /include "libxmlrpg/xmlstring"
+      /include "libxmlrpg/tree"
+
       * XML_CATALOGS_NAMESPACE:
       *
       * The namespace for the XML Catalogs elements.
@@ -38,7 +40,8 @@
       * The API is voluntarily limited to general cataloging.
 
      d xmlCatalogPrefer...
-     d                 s             10u 0 based(######typedef######)           enum type
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d XML_CATA_PREFER_NONE...
      d                 c                   0
      d XML_CATA_PREFER_PUBLIC...
@@ -47,7 +50,8 @@
      d                 c                   2
 
      d xmlCatalogAllow...
-     d                 s             10u 0 based(######typedef######)           enum type
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d XML_CATA_ALLOW_NONE...
      d                 c                   0
      d XML_CATA_ALLOW_GLOBAL...
@@ -63,7 +67,7 @@
 
      d xmlNewCatalog   pr                  extproc('xmlNewCatalog')
      d                                     like(xmlCatalogPtr)
-     d  sgml                         10i 0 value
+     d  sgml                               value like(xmlCint)
 
      d xmlLoadACatalog...
      d                 pr                  extproc('xmlLoadACatalog')
@@ -76,17 +80,20 @@
      d  filename                       *   value options(*string)               const char *
 
      d xmlConvertSGMLCatalog...
-     d                 pr            10i 0 extproc('xmlConvertSGMLCatalog')
+     d                 pr                  extproc('xmlConvertSGMLCatalog')
+     d                                     like(xmlCint)
      d  catal                              value like(xmlCatalogPtr)
 
-     d xmlACatalogAdd  pr            10i 0 extproc('xmlACatalogAdd')
+     d xmlACatalogAdd  pr                  extproc('xmlACatalogAdd')
+     d                                     like(xmlCint)
      d  catal                              value like(xmlCatalogPtr)
      d  type                           *   value options(*string)               const xmlChar *
      d  orig                           *   value options(*string)               const xmlChar *
      d  replace                        *   value options(*string)               const xmlChar *
 
      d xmlACatalogRemove...
-     d                 pr            10i 0 extproc('xmlACatalogRemove')
+     d                 pr                  extproc('xmlACatalogRemove')
+     d                                     like(xmlCint)
      d  catal                              value like(xmlCatalogPtr)
      d  value                          *   value options(*string)               const xmlChar *
 
@@ -122,7 +129,8 @@
      d  catal                              value like(xmlCatalogPtr)
 
      d xmlCatalogIsEmpty...
-     d                 pr            10i 0 extproc('xmlCatalogIsEmpty')
+     d                 pr                  extproc('xmlCatalogIsEmpty')
+     d                                     like(xmlCint)
      d  catal                              value like(xmlCatalogPtr)
 
       * Global operations.
@@ -130,7 +138,8 @@
      d xmlInitializeCatalog...
      d                 pr                  extproc('xmlInitializeCatalog')
 
-     d xmlLoadCatalog  pr            10i 0 extproc('xmlLoadCatalog')
+     d xmlLoadCatalog  pr                  extproc('xmlLoadCatalog')
+     d                                     like(xmlCint)
      d  filename                       *   value options(*string)               const char *
 
      d xmlLoadCatalogs...
@@ -162,13 +171,15 @@
      d                 pr              *   extproc('xmlCatalogResolveURI')      xmlChar *
      d  URI                            *   value options(*string)               const xmlChar *
 
-     d xmlCatalogAdd   pr            10i 0 extproc('xmlCatalogAdd')
+     d xmlCatalogAdd   pr                  extproc('xmlCatalogAdd')
+     d                                     like(xmlCint)
      d  type                           *   value options(*string)               const xmlChar *
      d  orig                           *   value options(*string)               const xmlChar *
      d  replace                        *   value options(*string)               const xmlChar *
 
      d xmlCatalogRemove...
-     d                 pr            10i 0 extproc('xmlCatalogRemove')
+     d                 pr                  extproc('xmlCatalogRemove')
+     d                                     like(xmlCint)
      d  value                          *   value options(*string)               const xmlChar *
 
      d xmlParseCatalogFile...
@@ -177,7 +188,8 @@
      d  filename                       *   value options(*string)               const char *
 
      d xmlCatalogConvert...
-     d                 pr            10i 0 extproc('xmlCatalogConvert')
+     d                 pr                  extproc('xmlCatalogConvert')
+     d                                     like(xmlCint)
 
       * Strictly minimal interfaces for per-document catalogs used
       * by the parser.
@@ -205,8 +217,9 @@
       * Preference settings.
 
      d xmlCatalogSetDebug...
-     d                 pr            10i 0 extproc('xmlCatalogSetDebug')
-     d  level                        10i 0 value
+     d                 pr                  extproc('xmlCatalogSetDebug')
+     d                                     like(xmlCint)
+     d  level                              value like(xmlCint)
 
      d xmlCatalogSetDefaultPrefer...
      d                 pr                  extproc('xmlCatalogSetDefaultPrefer')
diff --git a/os400/libxmlrpg/chvalid.rpgle b/os400/libxmlrpg/chvalid.rpgle
index 33393f6..c601442 100644
--- a/os400/libxmlrpg/chvalid.rpgle
+++ b/os400/libxmlrpg/chvalid.rpgle
@@ -10,6 +10,7 @@
       /define XML_CHVALID_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/xmlstring"
 
       * Define our typedefs and structures
@@ -18,15 +19,15 @@
 
      d xmlChSRange     ds                  based(xmlChSRangePtr)
      d                                     align qualified
-     d  low                           5u 0
-     d  high                          5u 0
+     d  low                                like(xmlCushort)
+     d  high                               like(xmlCushort)
 
      d xmlChLRangePtr  s               *   based(######typedef######)
 
      d xmlChLRange     ds                  based(xmlChLRangePtr)
      d                                     align qualified
-     d  low                          10u 0
-     d  high                         10u 0
+     d  low                                like(xmlCuint)
+     d  high                               like(xmlCuint)
 
      d xmlChRangeGroupPtr...
      d                 s               *   based(######typedef######)
@@ -34,15 +35,16 @@
      d xmlChRangeGroup...
      d                 ds                  based(xmlChRangeGroupPtr)
      d                                     align qualified
-     d  nbShortRange                 10i 0
-     d  nbLongRange                  10i 0
+     d  nbShortRange                       like(xmlCint)
+     d  nbLongRange                        like(xmlCint)
      d  shortRange                         like(xmlChSRangePtr)
      d  longRange                          like(xmlChLRangePtr)
 
       * Range checking routine
 
-     d xmlCharInRange  pr            10i 0 extproc('xmlCharInRange')
-     d val                           10u 0 value
+     d xmlCharInRange  pr                  extproc('xmlCharInRange')
+     d                                     like(xmlCint)
+     d val                                 value like(xmlCuint)
      d group                               like(xmlChRangeGroupPtr)             const
 
      d xmlIsBaseCharGroup...
@@ -69,29 +71,37 @@
      d                 ds                  import('xmlIsIdeographicGroup')
      d                                     likeds(xmlChRangeGroup)              const
 
-     d xmlIsBaseChar   pr            10i 0 extproc('xmlIsBaseChar')
-     d ch                            10u 0 value
+     d xmlIsBaseChar   pr                  extproc('xmlIsBaseChar')
+     d                                     like(xmlCint)
+     d ch                                  value like(xmlCuint)
 
-     d xmlIsBlank      pr            10i 0 extproc('xmlIsBlank')
-     d ch                            10u 0 value
+     d xmlIsBlank      pr                  extproc('xmlIsBlank')
+     d                                     like(xmlCint)
+     d ch                                  value like(xmlCuint)
 
-     d xmlIsChar       pr            10i 0 extproc('xmlIsChar')
-     d ch                            10u 0 value
+     d xmlIsChar       pr                  extproc('xmlIsChar')
+     d                                     like(xmlCint)
+     d ch                                  value like(xmlCuint)
 
-     d xmlIsCombining  pr            10i 0 extproc('xmlIsCombining')
-     d ch                            10u 0 value
+     d xmlIsCombining  pr                  extproc('xmlIsCombining')
+     d                                     like(xmlCint)
+     d ch                                  value like(xmlCuint)
 
-     d xmlIsDigit      pr            10i 0 extproc('xmlIsDigit')
-     d ch                            10u 0 value
+     d xmlIsDigit      pr                  extproc('xmlIsDigit')
+     d                                     like(xmlCint)
+     d ch                                  value like(xmlCuint)
 
-     d xmlIsExtender   pr            10i 0 extproc('xmlIsExtender')
-     d ch                            10u 0 value
+     d xmlIsExtender   pr                  extproc('xmlIsExtender')
+     d                                     like(xmlCint)
+     d ch                                  value like(xmlCuint)
 
      d xmlIsIdeographic...
-     d                 pr            10i 0 extproc('xmlIsIdeographic')
-     d ch                            10u 0 value
+     d                 pr                  extproc('xmlIsIdeographic')
+     d                                     like(xmlCint)
+     d ch                                  value like(xmlCuint)
 
-     d xmlIsPubidChar  pr            10i 0 extproc('xmlIsPubidChar')
-     d ch                            10u 0 value
+     d xmlIsPubidChar  pr                  extproc('xmlIsPubidChar')
+     d                                     like(xmlCint)
+     d ch                                  value like(xmlCuint)
 
       /endif                                                                    XML_CHVALID_H__
diff --git a/os400/libxmlrpg/debugXML.rpgle b/os400/libxmlrpg/debugXML.rpgle
index 5005a2d..81826bc 100644
--- a/os400/libxmlrpg/debugXML.rpgle
+++ b/os400/libxmlrpg/debugXML.rpgle
@@ -10,10 +10,11 @@
       /define DEBUG_XML__
 
       /include "libxmlrpg/xmlversion"
-      /include "libxmlrpg/tree"
 
       /if defined(LIBXML_DEBUG_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+      /include "libxmlrpg/tree"
       /include "libxmlrpg/xpath"
 
       * The standard Dump routines.
@@ -27,31 +28,31 @@
      d                 pr                  extproc('xmlDebugDumpAttr')
      d  output                         *   value                                FILE *
      d  attr                               value like(xmlAttrPtr)
-     d  depth                        10i 0 value
+     d  depth                              value like(xmlCint)
 
      d xmlDebugDumpAttrList...
      d                 pr                  extproc('xmlDebugDumpAttrList')
      d  output                         *   value                                FILE *
      d  attr                               value like(xmlAttrPtr)
-     d  depth                        10i 0 value
+     d  depth                              value like(xmlCint)
 
      d xmlDebugDumpOneNode...
      d                 pr                  extproc('xmlDebugDumpOneNode')
      d  output                         *   value                                FILE *
      d  node                               value like(xmlNodePtr)
-     d  depth                        10i 0 value
+     d  depth                              value like(xmlCint)
 
      d xmlDebugDumpNode...
      d                 pr                  extproc('xmlDebugDumpNode')
      d  output                         *   value                                FILE *
      d  node                               value like(xmlNodePtr)
-     d  depth                        10i 0 value
+     d  depth                              value like(xmlCint)
 
      d xmlDebugDumpNodeList...
      d                 pr                  extproc('xmlDebugDumpNodeList')
      d  output                         *   value                                FILE *
      d  node                               value like(xmlNodePtr)
-     d  depth                        10i 0 value
+     d  depth                              value like(xmlCint)
 
      d xmlDebugDumpDocumentHead...
      d                 pr                  extproc('xmlDebugDumpDocumentHead')
@@ -80,7 +81,8 @@
       ****************************************************************
 
      d xmlDebugCheckDocument...
-     d                 pr            10i 0 extproc('xmlDebugCheckDocument')
+     d                 pr                  extproc('xmlDebugCheckDocument')
+     d                                     like(xmlCint)
      d  output                         *   value                                FILE *
      d  doc                                value like(xmlDocPtr)
 
@@ -94,11 +96,12 @@
      d  output                         *   value                                FILE *
      d  node                               value like(xmlNodePtr)
 
-     d xmlLsCountNode  pr            10i 0 extproc('xmlLsCountNode')
+     d xmlLsCountNode  pr                  extproc('xmlLsCountNode')
+     d                                     like(xmlCint)
      d  node                               value like(xmlNodePtr)
 
      d xmlBoolToText   pr              *   extproc('xmlBoolToText')             const char *
-     d  boolval                      10i 0 value
+     d  boolval                            value like(xmlCint)
 
       ****************************************************************
       *                                                              *
@@ -133,7 +136,7 @@
      d  doc                                like(xmlDocPtr)
      d  node                               like(xmlNodePtr)
      d  pctxt                              like(xmlXPathContextPtr)
-     d  loaded                       10i 0
+     d  loaded                             like(xmlCint)
      d  output                         *                                        FILE *
      d  input                              like(xmlShellReadlineFunc)
 
@@ -152,32 +155,36 @@
 
      d xmlShellPrintXPathError...
      d                 pr                  extproc('xmlShellPrintXPathError')
-     d  errorType                    10i 0 value
+     d  errorType                          value like(xmlCint)
      d  arg                            *   value options(*string)               const char *
 
      d xmlShellPrintXPathResult...
      d                 pr                  extproc('xmlShellPrintXPathResult')
      d  list                               value like(xmlXPathObjectPtr)
 
-     d xmlShellList    pr            10i 0 extproc('xmlShellList')
+     d xmlShellList    pr                  extproc('xmlShellList')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlShellCtxtPtr)
      d  arg                            *   value options(*string)               char *
      d  node                               value like(xmlNodePtr)
      d  node2                              value like(xmlNodePtr)
 
-     d xmlShellBase    pr            10i 0 extproc('xmlShellBase')
+     d xmlShellBase    pr                  extproc('xmlShellBase')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlShellCtxtPtr)
      d  arg                            *   value options(*string)               char *
      d  node                               value like(xmlNodePtr)
      d  node2                              value like(xmlNodePtr)
 
-     d xmlShellDir     pr            10i 0 extproc('xmlShellDir')
+     d xmlShellDir     pr                  extproc('xmlShellDir')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlShellCtxtPtr)
      d  arg                            *   value options(*string)               char *
      d  node                               value like(xmlNodePtr)
      d  node2                              value like(xmlNodePtr)
 
-     d xmlShellLoad    pr            10i 0 extproc('xmlShellLoad')
+     d xmlShellLoad    pr                  extproc('xmlShellLoad')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlShellCtxtPtr)
      d  filename                       *   value options(*string)               char *
      d  node                               value like(xmlNodePtr)
@@ -188,19 +195,22 @@
      d                 pr                  extproc('xmlShellPrintNode')
      d  node                               value like(xmlNodePtr)
 
-     d xmlShellCat     pr            10i 0 extproc('xmlShellCat')
+     d xmlShellCat     pr                  extproc('xmlShellCat')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlShellCtxtPtr)
      d  arg                            *   value options(*string)               char *
      d  node                               value like(xmlNodePtr)
      d  node2                              value like(xmlNodePtr)
 
-     d xmlShellWrite   pr            10i 0 extproc('xmlShellWrite')
+     d xmlShellWrite   pr                  extproc('xmlShellWrite')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlShellCtxtPtr)
      d  filename                       *   value options(*string)               char *
      d  node                               value like(xmlNodePtr)
      d  node2                              value like(xmlNodePtr)
 
-     d xmlShellSave    pr            10i 0 extproc('xmlShellSave')
+     d xmlShellSave    pr                  extproc('xmlShellSave')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlShellCtxtPtr)
      d  filename                       *   value options(*string)               char *
      d  node                               value like(xmlNodePtr)
@@ -209,20 +219,23 @@
 
       /if defined(LIBXML_VALID_ENABLED)
      d xmlShellValidate...
-     d                 pr            10i 0 extproc('xmlShellValidate')
+     d                 pr                  extproc('xmlShellValidate')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlShellCtxtPtr)
      d  dtd                            *   value options(*string)               char *
      d  node                               value like(xmlNodePtr)
      d  node2                              value like(xmlNodePtr)
       /endif                                                                    LIBXML_VALID_ENABLED
 
-     d xmlShellDu      pr            10i 0 extproc('xmlShellDu')
+     d xmlShellDu      pr                  extproc('xmlShellDu')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlShellCtxtPtr)
      d  arg                            *   value options(*string)               char *
      d  tree                               value like(xmlNodePtr)
      d  node2                              value like(xmlNodePtr)
 
-     d xmlShellPwd     pr            10i 0 extproc('xmlShellPwd')
+     d xmlShellPwd     pr                  extproc('xmlShellPwd')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlShellCtxtPtr)
      d  buffer                         *   value options(*string)               char *
      d  node                               value like(xmlNodePtr)
diff --git a/os400/libxmlrpg/dict.rpgle b/os400/libxmlrpg/dict.rpgle
index cd36f50..c061e4c 100644
--- a/os400/libxmlrpg/dict.rpgle
+++ b/os400/libxmlrpg/dict.rpgle
@@ -9,17 +9,19 @@
       /if not defined(XML_DICT_H__)
       /define XML_DICT_H__
 
-      /include "libxmlrpg/xmlversion"
-      /include "libxmlrpg/tree"
-
       * The dictionary.
 
      d xmlDictPtr      s               *   based(######typedef######)
 
+      /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
+      /include "libxmlrpg/tree"
+
       * Initializer
 
      d xmlInitializeDict...
-     d                 pr            10i 0 extproc('xmlInitializeDict')
+     d                 pr                  extproc('xmlInitializeDict')
+     d                                     like(xmlCint)
 
       * Constructor and destructor.
 
@@ -27,12 +29,14 @@
      d                                     like(xmlDictPtr)
 
      d xmlDictSetLimit...
-     d                 pr            10u 0 extproc('xmlDictSetLimit')           size_t
+     d                 pr                  extproc('xmlDictSetLimit')
+     d                                     like(xmlCsize_t)
      d  dict                               value like(xmlDictPtr)
-     d  limit                        10u 0 value                                size_t
+     d  limit                              value like(xmlCsize_t)
 
      d xmlDictGetUsage...
-     d                 pr            10u 0 extproc('xmlDictGetUsage')           size_t
+     d                 pr                  extproc('xmlDictGetUsage')
+     d                                     like(xmlCsize_t)
      d  dict                               value like(xmlDictPtr)
 
      d xmlDictCreateSub...
@@ -41,7 +45,8 @@
      d  sub                                value like(xmlDictPtr)
 
      d xmlDictReference...
-     d                 pr            10i 0 extproc('xmlDictGetReference')
+     d                 pr                  extproc('xmlDictGetReference')
+     d                                     like(xmlCint)
      d  dict                               value like(xmlDictPtr)
 
      d xmlDictFree     pr                  extproc('xmlDictFree')
@@ -52,23 +57,25 @@
      d xmlDictLookup   pr              *   extproc('xmlDictLookup')             const xmlChar *
      d  dict                               value like(xmlDictPtr)
      d  name                           *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlDictExists   pr              *   extproc('xmlDictExists')             const xmlChar *
      d  dict                               value like(xmlDictPtr)
      d  name                           *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlDictQLookup  pr              *   extproc('xmlDictQLookup')            const xmlChar *
      d  dict                               value like(xmlDictPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
 
-     d xmlDictOwns     pr            10i 0 extproc('xmlDictOwns')
+     d xmlDictOwns     pr                  extproc('xmlDictOwns')
+     d                                     like(xmlCint)
      d  dict                               value like(xmlDictPtr)
      d  str                            *   value options(*string)               const xmlChar *
 
-     d xmlDictSize     pr            10i 0 extproc('xmlDictSize')
+     d xmlDictSize     pr                  extproc('xmlDictSize')
+     d                                     like(xmlCint)
      d  dict                               value like(xmlDictPtr)
 
       * Cleanup function
diff --git a/os400/libxmlrpg/encoding.rpgle b/os400/libxmlrpg/encoding.rpgle
index 80970fb..8153f3c 100644
--- a/os400/libxmlrpg/encoding.rpgle
+++ b/os400/libxmlrpg/encoding.rpgle
@@ -21,6 +21,7 @@
       /define XML_CHAR_ENCODING_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
 
       * xmlCharEncoding:
       *
@@ -43,7 +44,8 @@
       * the specific UTF-16LE and UTF-16BE are present.
 
      d xmlCharEncoding...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_CHAR_ENCODING_ERROR...                                              No encoding detected
      d                 c                   -1
      d  XML_CHAR_ENCODING_NONE...                                               No encoding detected
@@ -200,12 +202,14 @@
       * Interfaces for encoding names and aliases.
 
      d xmlAddEncodingAlias...
-     d                 pr            10i 0 extproc('xmlAddEncodingAlias')
+     d                 pr                  extproc('xmlAddEncodingAlias')
+     d                                     like(xmlCint)
      d  name                           *   value options(*string)               const char *
      d  alias                          *   value options(*string)               const char *
 
      d xmlDelEncodingAlias...
-     d                 pr            10i 0 extproc('xmlDelEncodingAlias')
+     d                 pr                  extproc('xmlDelEncodingAlias')
+     d                                     like(xmlCint)
      d  alias                          *   value options(*string)               const char *
 
      d xmlGetEncodingAlias...
@@ -230,45 +234,51 @@
      d                 pr                  extproc('xmlDetectCharEncoding')
      d                                     like(xmlCharEncoding)
      d  in                             *   value options(*string)               const unsigned char*
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlCharEncOutFunc...
-     d                 pr            10i 0 extproc('xmlCharEncOutFunc')
-     d  handler                            like(xmlCharEncodingHandler)
+     d                 pr                  extproc('xmlCharEncOutFunc')
+     d                                     like(xmlCint)
+     d  handler                            likeds(xmlCharEncodingHandler)
      d  out                                value like(xmlBufferPtr)
      d  in                                 value like(xmlBufferPtr)
 
      d xmlCharEncInFunc...
-     d                 pr            10i 0 extproc('xmlCharEncInFunc')
-     d  handler                            like(xmlCharEncodingHandler)
+     d                 pr                  extproc('xmlCharEncInFunc')
+     d                                     like(xmlCint)
+     d  handler                            likeds(xmlCharEncodingHandler)
      d  out                                value like(xmlBufferPtr)
      d  in                                 value like(xmlBufferPtr)
 
      d xmlCharEncFirstLine...
-     d                 pr            10i 0 extproc('xmlCharEncFirstLine')
-     d  handler                            like(xmlCharEncodingHandler)
+     d                 pr                  extproc('xmlCharEncFirstLine')
+     d                                     like(xmlCint)
+     d  handler                            likeds(xmlCharEncodingHandler)
      d  out                                value like(xmlBufferPtr)
      d  in                                 value like(xmlBufferPtr)
 
      d xmlCharEncCloseFunc...
-     d                 pr            10i 0 extproc('xmlCharEncCloseFunc')
-     d  handler                            like(xmlCharEncodingHandler)
+     d                 pr                  extproc('xmlCharEncCloseFunc')
+     d                                     like(xmlCint)
+     d  handler                            likeds(xmlCharEncodingHandler)
 
       * Export a few useful functions
 
       /if defined(LIBXML_OUTPUT_ENABLED)
-     d UTF8Toisolat1   pr            10i 0 extproc('UTF8Toisolat1')
+     d UTF8Toisolat1   pr                  extproc('UTF8Toisolat1')
+     d                                     like(xmlCint)
      d  out                       65535    options(*varsize)                    unsigned char (*)
-     d  outlen                       10i 0
+     d  outlen                             like(xmlCint)
      d  in                             *   value options(*string)               const unsigned char*
-     d  inlen                        10i 0
+     d  inlen                              like(xmlCint)
 
       /endif                                                                    LIBXML_OUTPUT_ENABLD
 
-     d isolat1ToUTF8   pr            10i 0 extproc('isolat1ToUTF8')
+     d isolat1ToUTF8   pr                  extproc('isolat1ToUTF8')
+     d                                     like(xmlCint)
      d  out                       65535    options(*varsize)                    unsigned char (*)
-     d  outlen                       10i 0
+     d  outlen                             like(xmlCint)
      d  in                             *   value options(*string)               const unsigned char*
-     d  inlen                        10i 0
+     d  inlen                              like(xmlCint)
 
       /endif                                                                    XML_CHAR_ENCODING_H
diff --git a/os400/libxmlrpg/entities.rpgle b/os400/libxmlrpg/entities.rpgle
index 8d97915..eeec1b6 100644
--- a/os400/libxmlrpg/entities.rpgle
+++ b/os400/libxmlrpg/entities.rpgle
@@ -10,11 +10,13 @@
       /define XML_ENTITIES_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/tree"
 
       * The different valid entity types.
 
-     d xmlEntityType   s             10i 0 based(######typedef######)           enum
+     d xmlEntityType   s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_INTERNAL_GENERAL_ENTITY...
      d                 c                   1
      d  XML_EXTERNAL_GENERAL_PARSED_ENTITY...
@@ -44,14 +46,14 @@
      d  doc                                like(xmlDocPtr)                      containing document
      d  orig                           *                                        xmlChar *
      d  content                        *                                        xmlChar *
-     d  length                       10i 0                                      content length
+     d  length                             like(xmlCint)                        content length
      d  etype                              like(xmlEntityType)                  The entity type
      d  ExternalID                     *                                        const xmlChar *
      d  SystemlID                      *                                        const xmlChar *
      d  nexte                              like(xmlEntityPtr)                   unused
      d  URI                            *                                        const xmlChar *
-     d  owner                        10i 0                                      Owns children ?
-     d  checked                      10i 0                                      Content checked ?
+     d  owner                              like(xmlCint)                        Owns children ?
+     d  checked                            like(xmlCint)                        Content checked ?
 
       * All entities are stored in an hash table.
       * There is 2 separate hash tables for global and parameter entities.
@@ -71,7 +73,7 @@
      d                                     like(xmlEntityPtr)
      d  doc                                value like(xmlDocPtr)
      d  name                           *   value options(*string)               const xmlChar *
-     d  type                         10i 0 value
+     d  type                               value like(xmlCint)
      d  ExternalID                     *   value options(*string)               const xmlChar *
      d  SystemID                       *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               const xmlChar *
@@ -81,7 +83,7 @@
      d                                     like(xmlEntityPtr)
      d  doc                                value like(xmlDocPtr)
      d  name                           *   value options(*string)               const xmlChar *
-     d  type                         10i 0 value
+     d  type                               value like(xmlCint)
      d  ExternalID                     *   value options(*string)               const xmlChar *
      d  SystemID                       *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               const xmlChar *
@@ -91,7 +93,7 @@
      d                                     like(xmlEntityPtr)
      d  doc                                value like(xmlDocPtr)
      d  name                           *   value options(*string)               const xmlChar *
-     d  type                         10i 0 value
+     d  type                               value like(xmlCint)
      d  ExternalID                     *   value options(*string)               const xmlChar *
      d  SystemID                       *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               const xmlChar *
diff --git a/os400/libxmlrpg/globals.rpgle b/os400/libxmlrpg/globals.rpgle
index 80dadca..3fe3a9b 100644
--- a/os400/libxmlrpg/globals.rpgle
+++ b/os400/libxmlrpg/globals.rpgle
@@ -13,6 +13,7 @@
       /define XML_GLOBALS_H
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/parser"
       /include "libxmlrpg/xmlerror"
       /include "libxmlrpg/SAX"
@@ -94,13 +95,13 @@
      d  xmlParserVersion...
      d                                 *                                        const char *
      d  xmlDefaultSAXLocator...
-     d                                     like(xmlSAXLocator)
+     d                                     likeds(xmlSAXLocator)
      d  xmlDefaultSAXHandler...
-     d                                     like(xmlSAXHandlerV1)
+     d                                     likeds(xmlSAXHandlerV1)
      d  docbDefaultSAXHandler...
-     d                                     like(xmlSAXHandlerV1)
+     d                                     likeds(xmlSAXHandlerV1)
      d  htmlDefaultSAXHandler...
-     d                                     like(xmlSAXHandlerV1)
+     d                                     likeds(xmlSAXHandlerV1)
      d  xmlFree                            like(xmlFreeFunc)
      d  xmlMalloc                          like(xmlMallocFunc)
      d  xmlMemStrdup                       like(xmlStrdupFunc)
@@ -112,31 +113,31 @@
      d  xmlGenericErrorContext...
      d                                 *                                        void *
      d  oldXMLWDcompatibility...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlBufferAllocScheme...
      d                                     like(xmlBufferAllocationScheme)
      d  xmlDefaultBufferSize...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlSubstituteEntitiesDefaultValue...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlDoValidityCheckingDefaultValue...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlGetWarningsDefaultValue...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlKeepBlanksDefaultValue...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlLineNumbersDefaultValue...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlLoadExtDtdDefaultValue...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlParserDebugEntities...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlPedanticParserDefaultValue...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlSaveNoEmptyTags...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlIndentTreeOutput...
-     d                               10i 0
+     d                                     like(xmlCint)
      d  xmlTreeIndentString...
      d                                 *                                        const char *
      d  xmlRegisterNodeDefaultValue...
@@ -145,7 +146,7 @@
      d                                     like(xmlDeregisterNodeFunc)
      d  xmlMallocAtomic...
      d                                     like(xmlMallocFunc)
-     d  xmlLastError                       like(xmlError)
+     d  xmlLastError                       likeds(xmlError)
      d  xmlParserInputBufferCreateFilenameValue...
      d                                     like(xmlParserInputBuffer...
      d                                     CreateFilenameFunc)
@@ -215,42 +216,43 @@
      d get_docbDefaultSAXHandler...
      d                 pr                  extproc(
      d                                       '__get_docbDefaultSAXHandler')
-     d                                     like(xmlSAXHandlerV1)
+     d                                     likeds(xmlSAXHandlerV1)
 
      d set_docbDefaultSAXHandler...
      d                 pr                  extproc(
      d                                       '__set_docbDefaultSAXHandler')
-     d  value                              value like(xmlSAXHandlerV1)
+     d  value                              value likeds(xmlSAXHandlerV1)
       /endif
 
       /if defined(LIBXML_HTML_ENABLED)
      d get_htmlDefaultSAXHandler...
      d                 pr                  extproc(
      d                                       '__get_htmlDefaultSAXHandler')
-     d                                     like(xmlSAXHandlerV1)
+     d                                     likeds(xmlSAXHandlerV1)
 
      d set_htmlDefaultSAXHandler...
      d                 pr                  extproc(
      d                                       '__set_htmlDefaultSAXHandler')
-     d  value                              value like(xmlSAXHandlerV1)
+     d  value                              value likeds(xmlSAXHandlerV1)
       /endif
 
      d get_xmlLastError...
      d                 pr                  extproc('__get_xmlLastError')
-     d                                     like(xmlError)
+     d                                     likeds(xmlError)
 
      d set_xmlLastError...
      d                 pr                  extproc('__set_xmlLastError')
-     d  value                              value like(xmlError)
+     d  value                              value likeds(xmlError)
 
      d get_oldXMLWDcompatibility...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                       '__get_oldXMLWDcompatibility')
+     d                                     like(xmlCint)
 
      d set_oldXMLWDcompatibility...
      d                 pr                  extproc(
      d                                       '__set_oldXMLWDcompatibility')
-     d  value                        10i 0 value
+     d  value                              value like(xmlCint)
 
      d get_xmlBufferAllocScheme...
      d                 pr                  extproc('__get_xmlBufferAllocScheme')
@@ -266,45 +268,49 @@
      d  v                                  value like(xmlBufferAllocationScheme)
 
      d get_xmlDefaultBufferSize...
-     d                 pr            10i 0 extproc('__get_xmlDefaultBufferSize')
+     d                 pr                  extproc('__get_xmlDefaultBufferSize')
+     d                                     like(xmlCint)
 
      d set_xmlDefaultBufferSize...
      d                 pr                  extproc('__set_xmlDefaultBufferSize')
-     d  value                        10i 0 value
+     d  value                              value like(xmlCint)
 
      d xmlThrDefDefaultBufferSize...
-     d                 pr            10i 0 extproc('xmlThrDefDefaultBufferSize')
-     d  v                            10i 0 value
+     d                 pr                  extproc('xmlThrDefDefaultBufferSize')
+     d                                     like(xmlCint)
+     d  v                                  value like(xmlCint)
 
      d get_xmlDefaultSAXHandler...
      d                 pr                  extproc('__get_xmlDefaultSAXHandler')
-     d                                     like(xmlSAXHandlerV1)
+     d                                     likeds(xmlSAXHandlerV1)
 
      d set_xmlDefaultSAXHandler...
      d                 pr                  extproc('__set_xmlDefaultSAXHandler')
-     d  value                              value like(xmlSAXHandlerV1)
+     d  value                              value likeds(xmlSAXHandlerV1)
 
      d get_xmlDefaultSAXLocator...
      d                 pr                  extproc('__get_xmlDefaultSAXLocator')
-     d                                     like(xmlSAXLocator)
+     d                                     likeds(xmlSAXLocator)
 
      d set_xmlDefaultSAXLocator...
      d                 pr                  extproc('__set_xmlDefaultSAXLocator')
-     d  value                              value like(xmlSAXLocator)
+     d  value                              value likeds(xmlSAXLocator)
 
      d get_xmlDoValidityCheckingDefaultValue...
-     d                 pr            10i 0 extproc('__get_xmlDoValidity+
+     d                 pr                  extproc('__get_xmlDoValidity+
      d                                       CheckingDefaultValue')
+     d                                     like(xmlCint)
 
      d set_xmlDoValidityCheckingDefaultValue...
      d                 pr                  extproc('__set_xmlDoValidity+
      d                                       CheckingDefaultValue')
-     d  value                        10i 0 value
-    
+     d  value                              value like(xmlCint)
+
      d xmlThrDefDoValidityCheckingDefaultValue...
-     d                 pr            10i 0 extproc('xmlThrDefDoValidity+
+     d                 pr                  extproc('xmlThrDefDoValidity+
      d                                       CheckingDefaultValue')
-     d  v                            10i 0 value
+     d                                     like(xmlCint)
+     d  v                                  value like(xmlCint)
 
      d get_xmlGenericError...
      d                 pr                  extproc('__get_xmlGenericError')
@@ -325,7 +331,7 @@
      d xmlStructuredError...
      d                 pr                  extproc('__call_xmlStructuredError')
      d  userData                       *   value options(*string)               void *
-     d  error                              value like(xmlErrorPtr) 
+     d  error                              value like(xmlErrorPtr)
 
      d get_xmlGenericErrorContext...
      d                 pr                  extproc(
@@ -348,29 +354,33 @@
      d  value                          *   value options(*string)               void *
 
      d get_xmlGetWarningsDefaultValue...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                       '__get_xmlGetWarningsDefaultValue')
+     d                                     like(xmlCint)
 
      d set_xmlGetWarningsDefaultValue...
      d                 pr                  extproc(
      d                                       '__set_xmlGetWarningsDefaultValue')
-     d  value                        10i 0 value
+     d  value                              value like(xmlCint)
 
      d xmlThrDefGetWarningsDefaultValue...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                       'xmlThrDefGetWarningsDefaultValue')
-     d  v                            10i 0 value
+     d                                     like(xmlCint)
+     d  v                                  value like(xmlCint)
 
      d get_xmlIndentTreeOutput...
-     d                 pr            10i 0 extproc('__get_xmlIndentTreeOutput')
+     d                 pr                  extproc('__get_xmlIndentTreeOutput')
+     d                                     like(xmlCint)
 
      d set_xmlIndentTreeOutput...
-     d                 pr                   extproc('__set_xmlIndentTreeOutput')
-     d  value                        10i 0 value
+     d                 pr                  extproc('__set_xmlIndentTreeOutput')
+     d  value                              value like(xmlCint)
 
      d xmlThrDefIndentTreeOutput...
-     d                 pr            10i 0 extproc('xmlThrDefIndentTreeOutput')
-     d  v                            10i 0 value
+     d                 pr                  extproc('xmlThrDefIndentTreeOutput')
+     d                                     like(xmlCint)
+     d  v                                  value like(xmlCint)
 
      d get_xmlTreeIndentString...
      d                 pr              *   extproc('__get_xmlTreeIndentString') const char *
@@ -378,66 +388,74 @@
      d set_xmlTreeIndentString...
      d                 pr                  extproc('__set_xmlTreeIndentString')
      d  value                          *   value options(*string)               const char *
- 
+
      d xmlThrDefTreeIndentString...
      d                 pr              *   extproc('xmlThrDefTreeIndentString') const char *
      d  v                              *   value options(*string)               const char *
 
      d get_xmlKeepBlanksDefaultValue...
-     d                 pr            10i 0 extproc(
-     d                                       '__get_xmlKeepBlanksDefaultValue') 
+     d                 pr                  extproc(
+     d                                       '__get_xmlKeepBlanksDefaultValue')
+     d                                     like(xmlCint)
 
      d set_xmlKeepBlanksDefaultValue...
      d                 pr                  extproc(
-     d                                       '__set_xmlKeepBlanksDefaultValue') 
-     d  value                        10i 0 value
+     d                                       '__set_xmlKeepBlanksDefaultValue')
+     d  value                              value like(xmlCint)
 
      d xmlThrDefKeepBlanksDefaultValue...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                       'xmlThrDefKeepBlanksDefaultValue')
-     d  v                            10i 0 value
+     d                                     like(xmlCint)
+     d  v                                  value like(xmlCint)
 
      d get_xmlLineNumbersDefaultValue...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                       '__get_xmlLineNumbersDefaultValue')
+     d                                     like(xmlCint)
 
      d set_xmlLineNumbersDefaultValue...
      d                 pr                  extproc(
      d                                       '__set_xmlLineNumbersDefaultValue')
-     d  value                        10i 0 value
+     d  value                              value like(xmlCint)
 
      d xmlThrDefLineNumbersDefaultValue...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                       'xmlThrDefLineNumbersDefaultValue')
-     d  v                            10i 0 value
+     d                                     like(xmlCint)
+     d  v                                  value like(xmlCint)
 
      d get_xmlLoadExtDtdDefaultValue...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                       '__get_xmlLoadExtDtdDefaultValue')
+     d                                     like(xmlCint)
 
      d set_xmlLoadExtDtdDefaultValue...
      d                 pr                  extproc(
      d                                       '__set_xmlLoadExtDtdDefaultValue')
-     d  value                        10i 0 value
+     d  value                              value like(xmlCint)
 
      d xmlThrDefLoadExtDtdDefaultValue...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                       'xmlThrDefLoadExtDtdDefaultValue')
-     d  v                            10i 0 value
+     d                                     like(xmlCint)
+     d  v                                  value like(xmlCint)
 
      d get_xmlParserDebugEntities...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                       '__get_xmlParserDebugEntities')
+     d                                     like(xmlCint)
 
      d set_xmlParserDebugEntities...
      d                 pr                  extproc(
      d                                       '__set_xmlParserDebugEntities')
-     d  value                        10i 0 value
+     d  value                              value like(xmlCint)
 
      d xmlThrDefParserDebugEntities...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                       'xmlThrDefParserDebugEntities')
-     d  v                            10i 0 value
+     d                                     like(xmlCint)
+     d  v                                  value like(xmlCint)
 
      d get_xmlParserVersion...
      d                 pr              *   extproc('__get_xmlParserVersion')    const char *
@@ -447,43 +465,49 @@
      d  value                          *   value options(*string)               const char *
 
      d get_xmlPedanticParserDefaultValue...
-     d                 pr            10i 0 extproc('__get_xmlPedantic+
+     d                 pr                  extproc('__get_xmlPedantic+
      d                                       ParserDefaultValue')
+     d                                     like(xmlCint)
 
      d set_xmlPedanticParserDefaultValue...
      d                 pr                  extproc('__set_xmlPedantic+
      d                                       ParserDefaultValue')
-     d  value                        10i 0 value
+     d  value                              value like(xmlCint)
 
      d xmlThrDefPedanticParserDefaultValue...
-     d                 pr            10i 0 extproc('xmlThrDefPedantic+
+     d                 pr                  extproc('xmlThrDefPedantic+
      d                                       ParserDefaultValue')
-     d  v                            10i 0 value
+     d                                     like(xmlCint)
+     d  v                                  value like(xmlCint)
 
      d get_xmlSaveNoEmptyTags...
-     d                 pr            10i 0 extproc('__get_xmlSaveNoEmptyTags')
+     d                 pr                  extproc('__get_xmlSaveNoEmptyTags')
+     d                                     like(xmlCint)
 
      d set_xmlSaveNoEmptyTags...
      d                 pr                  extproc('__set_xmlSaveNoEmptyTags')
-     d  value                        10i 0 value
+     d  value                              value like(xmlCint)
 
      d xmlThrDefSaveNoEmptyTags...
-     d                 pr            10i 0 extproc('xmlThrDefSaveNoEmptyTags')
-     d  v                            10i 0 value
+     d                 pr                  extproc('xmlThrDefSaveNoEmptyTags')
+     d                                     like(xmlCint)
+     d  v                                  value like(xmlCint)
 
      d get_xmlSubstituteEntitiesDefaultValue...
-     d                 pr            10i 0 extproc('__get_xmlSubstitute+
+     d                 pr                  extproc('__get_xmlSubstitute+
      d                                       EntitiesDefaultValue')
+     d                                     like(xmlCint)
 
      d set_xmlSubstituteEntitiesDefaultValue...
      d                 pr                  extproc('__set_xmlSubstitute+
      d                                       EntitiesDefaultValue')
-     d  value                        10i 0 value
+     d  value                              value like(xmlCint)
 
      d xmlThrDefSubstituteEntitiesDefaultValue...
-     d                 pr            10i 0 extproc('xmlThrDefSubstitute+
+     d                 pr                  extproc('xmlThrDefSubstitute+
      d                                       EntitiesDefaultValue')
-     d  v                            10i 0 value
+     d                                     like(xmlCint)
+     d  v                                  value like(xmlCint)
 
      d get_xmlRegisterNodeDefaultValue...
      d                 pr                  extproc('__get_xmlRegisterNode+
@@ -552,6 +576,6 @@
      d                                     like(xmlOutputBufferPtr)
      d  URI                            *   value options(*string)               const char *
      d  encoder                            value like(xmlCharEncodingHandlerPtr)
-     d  compression                  10i 0 value
+     d  compression                        value like(xmlCint)
 
       /endif                                                                    XML_GLOBALS_H
diff --git a/os400/libxmlrpg/hash.rpgle b/os400/libxmlrpg/hash.rpgle
index 867f98f..b2169df 100644
--- a/os400/libxmlrpg/hash.rpgle
+++ b/os400/libxmlrpg/hash.rpgle
@@ -9,6 +9,8 @@
       /if not defined(XML_HASH_H__)
       /define XML_HASH_H__
 
+      /include "libxmlrpg/xmlTypesC"
+
       * The hash table.
 
      d xmlHashTablePtr...
@@ -68,12 +70,12 @@
 
      d xmlHashCreate   pr                  extproc('xmlHashCreate')
      d                                     like(xmlHashTablePtr)
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
 
      d xmlHashCreateDict...
      d                 pr                  extproc('xmlHashCreateDict')
      d                                     like(xmlHashTablePtr)
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  dict                               value like(xmlDictPtr)
 
      d xmlHashFree     pr                  extproc('xmlHashFree')
@@ -83,27 +85,31 @@
       * Add a new entry to the hash table.
 
      d xmlHashAddEntry...
-     d                 pr            10i 0 extproc('xmlHashAddEntry')
+     d                 pr                  extproc('xmlHashAddEntry')
+     d                                     like(xmlCint)
      d  table                              value like(xmlHashTablePtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  userdata                       *   value options(*string)               void *
 
      d xmlHashUpdateEntry...
-     d                 pr            10i 0 extproc('xmlHashUpdateEntry')
+     d                 pr                  extproc('xmlHashUpdateEntry')
+     d                                     like(xmlCint)
      d  table                              value like(xmlHashTablePtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  userdata                       *   value options(*string)               void *
      d  f                                  value like(xmlHashDeallocator)
 
      d xmlHashAddEntry2...
-     d                 pr            10i 0 extproc('xmlHashAddEntry2')
+     d                 pr                  extproc('xmlHashAddEntry2')
+     d                                     like(xmlCint)
      d  table                              value like(xmlHashTablePtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  name2                          *   value options(*string)               const xmlChar *
      d  userdata                       *   value options(*string)               void *
 
      d xmlHashUpdateEntry2...
-     d                 pr            10i 0 extproc('xmlHashUpdateEntry2')
+     d                 pr                  extproc('xmlHashUpdateEntry2')
+     d                                     like(xmlCint)
      d  table                              value like(xmlHashTablePtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  name2                          *   value options(*string)               const xmlChar *
@@ -111,7 +117,8 @@
      d  f                                  value like(xmlHashDeallocator)
 
      d xmlHashAddEntry3...
-     d                 pr            10i 0 extproc('xmlHashAddEntry3')
+     d                 pr                  extproc('xmlHashAddEntry3')
+     d                                     like(xmlCint)
      d  table                              value like(xmlHashTablePtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  name2                          *   value options(*string)               const xmlChar *
@@ -119,7 +126,8 @@
      d  userdata                       *   value options(*string)               void *
 
      d xmlHashUpdateEntry3...
-     d                 pr            10i 0 extproc('xmlHashUpdateEntry3')
+     d                 pr                  extproc('xmlHashUpdateEntry3')
+     d                                     like(xmlCint)
      d  table                              value like(xmlHashTablePtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  name2                          *   value options(*string)               const xmlChar *
@@ -130,20 +138,23 @@
       * Remove an entry from the hash table.
 
      d xmlHashRemoveEntry...
-     d                 pr            10i 0 extproc('xmlHashRemoveEntry')
+     d                 pr                  extproc('xmlHashRemoveEntry')
+     d                                     like(xmlCint)
      d  table                              value like(xmlHashTablePtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  f                                  value like(xmlHashDeallocator)
 
      d xmlHashRemoveEntry2...
-     d                 pr            10i 0 extproc('xmlHashRemoveEntry2')
+     d                 pr                  extproc('xmlHashRemoveEntry2')
+     d                                     like(xmlCint)
      d  table                              value like(xmlHashTablePtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  name2                          *   value options(*string)               const xmlChar *
      d  f                                  value like(xmlHashDeallocator)
 
      d xmlHashRemoveEntry3...
-     d                 pr            10i 0 extproc('xmlHashRemoveEntry3')
+     d                 pr                  extproc('xmlHashRemoveEntry3')
+     d                                     like(xmlCint)
      d  table                              value like(xmlHashTablePtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  name2                          *   value options(*string)               const xmlChar *
@@ -197,7 +208,8 @@
      d  table                              value like(xmlHashTablePtr)
      d  f                                  value like(xmlHashCopier)
 
-     d xmlHashSize     pr            10i 0 extproc('xmlHashSize')
+     d xmlHashSize     pr                  extproc('xmlHashSize')
+     d                                     like(xmlCint)
      d  table                              value like(xmlHashTablePtr)
 
      d xmlHashScan     pr                  extproc('xmlHashScan')
diff --git a/os400/libxmlrpg/list.rpgle b/os400/libxmlrpg/list.rpgle
index c62fcbd..ce2fa1c 100644
--- a/os400/libxmlrpg/list.rpgle
+++ b/os400/libxmlrpg/list.rpgle
@@ -10,6 +10,7 @@
       /define XML_LINK_INCLUDE__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
 
      d xmlLinkPtr      s               *   based(######typedef######)
 
@@ -68,33 +69,39 @@
      d  l                                  value like(xmlListPtr)
      d  data                           *   value                                void *
 
-     d xmlListInsert   pr            10i 0 extproc('xmlListInsert')
+     d xmlListInsert   pr                  extproc('xmlListInsert')
+     d                                     like(xmlCint)
      d  l                                  value like(xmlListPtr)
      d  data                           *   value                                void *
 
-     d xmlListAppend   pr            10i 0 extproc('xmlListAppend')
+     d xmlListAppend   pr                  extproc('xmlListAppend')
+     d                                     like(xmlCint)
      d  l                                  value like(xmlListPtr)
      d  data                           *   value                                void *
 
      d xmlListRemoveFirst...
-     d                 pr            10i 0 extproc('xmlListRemoveFirst')
+     d                 pr                  extproc('xmlListRemoveFirst')
+     d                                     like(xmlCint)
      d  l                                  value like(xmlListPtr)
      d  data                           *   value                                void *
 
      d xmlListRemoveLast...
-     d                 pr            10i 0 extproc('xmlListRemoveLast')
+     d                 pr                  extproc('xmlListRemoveLast')
+     d                                     like(xmlCint)
      d  l                                  value like(xmlListPtr)
      d  data                           *   value                                void *
 
      d xmlListRemoveAll...
-     d                 pr            10i 0 extproc('xmlListRemoveAll')
+     d                 pr                  extproc('xmlListRemoveAll')
+     d                                     like(xmlCint)
      d  l                                  value like(xmlListPtr)
      d  data                           *   value                                void *
 
      d xmlListClear    pr                  extproc('xmlListClear')
      d  l                                  value like(xmlListPtr)
 
-     d xmlListEmpty    pr            10i 0 extproc('xmlListEmpty')
+     d xmlListEmpty    pr                  extproc('xmlListEmpty')
+     d                                     like(xmlCint)
      d  l                                  value like(xmlListPtr)
 
      d xmlListFront    pr                  extproc('xmlListFront')
@@ -105,7 +112,8 @@
      d                                     like(xmlLinkPtr)
      d  l                                  value like(xmlListPtr)
 
-     d xmlListSize     pr            10i 0 extproc('xmlListSize')
+     d xmlListSize     pr                  extproc('xmlListSize')
+     d                                     like(xmlCint)
      d  l                                  value like(xmlListPtr)
 
      d xmlListPopFront...
@@ -117,12 +125,14 @@
      d  l                                  value like(xmlListPtr)
 
      d xmlListPushFront...
-     d                 pr            10i 0 extproc('xmlListPushFront')
+     d                 pr                  extproc('xmlListPushFront')
+     d                                     like(xmlCint)
      d  l                                  value like(xmlListPtr)
      d  data                           *   value                                void *
 
      d xmlListPushBack...
-     d                 pr            10i 0 extproc('xmlListPushBack')
+     d                 pr                  extproc('xmlListPushBack')
+     d                                     like(xmlCint)
      d  l                                  value like(xmlListPtr)
      d  data                           *   value                                void *
 
@@ -153,7 +163,8 @@
      d                                     like(xmlListPtr)
      d  old                                value like(xmlListPtr)
 
-     d xmlListCopy     pr            10i 0 extproc('xmlListCopy')
+     d xmlListCopy     pr                  extproc('xmlListCopy')
+     d                                     like(xmlCint)
      d  cur                                value like(xmlListPtr)
      d  old                                value like(xmlListPtr)               const
 
diff --git a/os400/libxmlrpg/nanoftp.rpgle b/os400/libxmlrpg/nanoftp.rpgle
index 0637562..ac4f2aa 100644
--- a/os400/libxmlrpg/nanoftp.rpgle
+++ b/os400/libxmlrpg/nanoftp.rpgle
@@ -9,10 +9,12 @@
       /if not defined(NANO_FTP_H__)
       /define NANO_FTP_H__
 
-      /include /libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlversion"
 
       /if defined(LIBXML_FTP_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+
      d INVALID_SOCKET  c                   -1
 
       * ftpListCallback:
@@ -67,7 +69,7 @@
      d xmlNanoFTPConnectTo...
      d                 pr              *   extproc('xmlNanoFTPConnectTo')       void *
      d  server                         *   value options(*string)               const char *
-     d  port                         10i 0 value
+     d  port                               value like(xmlCint)
 
       * Opening/closing session connections.
 
@@ -75,14 +77,17 @@
      d  URL                            *   value options(*string)               const char *
 
      d xmlNanoFTPConnect...
-     d                 pr            10i 0 extproc('xmlNanoFTPConnect')
+     d                 pr                  extproc('xmlNanoFTPConnect')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d xmlNanoFTPClose...
-     d                 pr            10i 0 extproc('xmlNanoFTPClose')
+     d                 pr                  extproc('xmlNanoFTPClose')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
-     d xmlNanoFTPQuit  pr            10i 0 extproc('xmlNanoFTPQuit')
+     d xmlNanoFTPQuit  pr                  extproc('xmlNanoFTPQuit')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d xmlNanoFTPScanProxy...
@@ -92,65 +97,76 @@
      d xmlNanoFTPProxy...
      d                 pr                  extproc('xmlNanoFTPProxy')
      d  host                           *   value options(*string)               const char *
-     d  port                         10i 0 value
+     d  port                               value like(xmlCint)
      d  user                           *   value options(*string)               const char *
      d  passwd                         *   value options(*string)               const char *
-     d  type                         10i 0 value
+     d  type                               value like(xmlCint)
 
      d xmlNanoFTPUpdateURL...
-     d                 pr            10i 0 extproc('xmlNanoFTPUpdateURL')
+     d                 pr                  extproc('xmlNanoFTPUpdateURL')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
      d  URL                            *   value options(*string)               const char *
 
       * Rather internal commands.
 
      d xmlNanoFTPGetResponse...
-     d                 pr            10i 0 extproc('xmlNanoFTPGetResponse')
+     d                 pr                  extproc('xmlNanoFTPGetResponse')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d xmlNanoFTPCheckResponse...
-     d                 pr            10i 0 extproc('xmlNanoFTPCheckResponse')
+     d                 pr                  extproc('xmlNanoFTPCheckResponse')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
       * CD/DIR/GET handlers.
 
-     d xmlNanoFTPCwd   pr            10i 0 extproc('xmlNanoFTPCwd')
+     d xmlNanoFTPCwd   pr                  extproc('xmlNanoFTPCwd')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
      d  directory                      *   value options(*string)               const char *
 
-     d xmlNanoFTPDele  pr            10i 0 extproc('xmlNanoFTPDele')
+     d xmlNanoFTPDele  pr                  extproc('xmlNanoFTPDele')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
      d  file                           *   value options(*string)               const char *
 
      d xmlNanoFTPGetConnection...
-     d                 pr            10i 0 extproc('xmlNanoFTPGetConnection')   Socket descriptor
+     d                 pr                  extproc('xmlNanoFTPGetConnection')   Socket descriptor
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d xmlNanoFTPCloseConnection...
-     d                 pr            10i 0 extproc('xmlNanoFTPCloseConnection')
+     d                 pr                  extproc('xmlNanoFTPCloseConnection')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
-     d xmlNanoFTPList  pr            10i 0 extproc('xmlNanoFTPList')
+     d xmlNanoFTPList  pr                  extproc('xmlNanoFTPList')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
      d  callback                           value like(ftpListCallback)
      d  userData                       *   value                                void *
      d  filename                       *   value options(*string)               const char *
 
      d xmlNanoFTPGetSocket...
-     d                 pr            10i 0 extproc('xmlNanoFTPGetSocket')       Socket descriptor
+     d                 pr                  extproc('xmlNanoFTPGetSocket')       Socket descriptor
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
      d  filename                       *   value options(*string)               const char *
 
-     d xmlNanoFTPGet   pr            10i 0 extproc('xmlNanoFTPGet')
+     d xmlNanoFTPGet   pr                  extproc('xmlNanoFTPGet')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
      d  callback                           value like(ftpDataCallback)
      d  userData                       *   value                                void *
      d  filename                       *   value options(*string)               const char *
 
-     d xmlNanoFTPRead  pr            10i 0 extproc('xmlNanoFTPRead')
+     d xmlNanoFTPRead  pr                  extproc('xmlNanoFTPRead')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
      d  dest                           *   value                                void *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
       /endif                                                                    LIBXML_FTP_ENABLED
       /endif                                                                    NANO_FTP_H__
diff --git a/os400/libxmlrpg/nanohttp.rpgle b/os400/libxmlrpg/nanohttp.rpgle
index 4a076d2..d4e6008 100644
--- a/os400/libxmlrpg/nanohttp.rpgle
+++ b/os400/libxmlrpg/nanohttp.rpgle
@@ -13,6 +13,8 @@
 
       /if defined(LIBXML_HTTP_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+
      d xmlNanoHTTPInit...
      d                 pr                  extproc('xmlNanoHTTPInit')
 
@@ -24,7 +26,8 @@
      d  URL                            *   value options(*string)               const char *
 
      d xmlNanoHTTPFetch...
-     d                 pr            10i 0 extproc('xmlNanoHTTPFetch')
+     d                 pr                  extproc('xmlNanoHTTPFetch')
+     d                                     like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  filename                       *   value options(*string)               const char *
 
@@ -35,7 +38,7 @@
      d  input                          *   value options(*string)               const char *
      d  contentType                    *   value                                char * *
      d  headers                        *   value options(*string)               const char *
-     d  ilen                         10i 0 value
+     d  ilen                               value like(xmlCint)
 
      d xmlNanoHTTPMethodRedir...
      d                 pr              *   extproc('xmlNanoHTTPMethodRedir')    void *
@@ -45,7 +48,7 @@
      d  contentType                    *   value                                char * *
      d  redir                          *   value                                char * *
      d  headers                        *   value options(*string)               const char *
-     d  ilen                         10i 0 value
+     d  ilen                               value like(xmlCint)
 
      d xmlNanoHTTPOpen...
      d                 pr              *   extproc('xmlNanoHTTPOpen')           void *
@@ -59,7 +62,8 @@
      d  redir                          *   value                                char * *
 
      d xmlNanoHTTPReturnCode...
-     d                 pr            10i 0 extproc('xmlNanoHTTPReturnCode')
+     d                 pr                  extproc('xmlNanoHTTPReturnCode')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d xmlNanoHTTPAuthHeader...
@@ -71,7 +75,8 @@
      d  ctx                            *   value                                void *
 
      d xmlNanoHTTPContentLength...
-     d                 pr            10i 0 extproc('xmlNanoHTTPContentLength')
+     d                 pr                  extproc('xmlNanoHTTPContentLength')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
 
      d xmlNanoHTTPEncoding...
@@ -83,14 +88,16 @@
      d  ctx                            *   value                                void *
 
      d xmlNanoHTTPRead...
-     d                 pr            10i 0 extproc('xmlNanoHTTPRead')
+     d                 pr                  extproc('xmlNanoHTTPRead')
+     d                                     like(xmlCint)
      d  ctx                            *   value                                void *
      d  dest                           *   value                                void *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
       /if defined(LIBXML_OUTPUT_ENABLED)
      d xmlNanoHTTPSave...
-     d                 pr            10i 0 extproc('xmlNanoHTTPSave')
+     d                 pr                  extproc('xmlNanoHTTPSave')
+     d                                     like(xmlCint)
      d  ctxt                           *   value                                void *
      d  filename                       *   value options(*string)               const char *
       /endif                                                                    LIBXML_OUTPUT_ENABLD
diff --git a/os400/libxmlrpg/parser.rpgle b/os400/libxmlrpg/parser.rpgle
index 7f29e31..fa48d4f 100644
--- a/os400/libxmlrpg/parser.rpgle
+++ b/os400/libxmlrpg/parser.rpgle
@@ -9,6 +9,7 @@
       /define XML_PARSER_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/tree"
       /include "libxmlrpg/dict"
       /include "libxmlrpg/hash"
@@ -52,20 +53,20 @@
      d  base                           *                                        const char *
      d  cur                            *                                        const char *
      d  end                            *                                        const char *
-     d  length                       10i 0                                      Length if known
-     d  line                         10i 0                                      Current line
-     d  col                          10i 0                                      Current column
+     d  length                             like(xmlCint)                        Length if known
+     d  line                               like(xmlCint)                        Current line
+     d  col                                like(xmlCint)                        Current column
       *
       * NOTE: consumed is only tested for equality in the parser code,
       *       so even if there is an overflow this should not give troubles
       *       for parsing very large instances.
       *
-     d  consumed                     20u 0                                      # consumed xmlChars
+     d  consumed                           like(xmlCulong)                      # consumed xmlChars
      d  free                               like(xmlParserInputDeallocate)       base deallocator
      d  encoding                       *                                        const xmlChar *
      d  version                        *                                        const xmlChar *
-     d  standalone                   10i 0                                      Standalone entity ?
-     d  id                           10i 0                                      Entity unique ID
+     d  standalone                         like(xmlCint)                        Standalone entity ?
+     d  id                                 like(xmlCint)                        Entity unique ID
 
       * xmlParserNodeInfo:
       *
@@ -81,10 +82,10 @@
      d                                     align qualified
      d  node                               like(xmlNodePtr)                     const
       * Position & line # that text that created the node begins & ends on
-     d  begin_pos                    20u 0
-     d  begin_line                   20u 0
-     d  end_pos                      20u 0
-     d  end_line                     20u 0
+     d  begin_pos                          like(xmlCulong)
+     d  begin_line                         like(xmlCulong)
+     d  end_pos                            like(xmlCulong)
+     d  end_line                           like(xmlCulong)
 
      d xmlParserNodeInfoSeqPtr...
      d                 s               *   based(######typedef######)
@@ -92,8 +93,8 @@
      d xmlParserNodeInfoSeq...
      d                 ds                  based(xmlParserNodeInfoSeqPtr)
      d                                     align qualified
-     d  maximum                      20u 0
-     d  length                       20u 0
+     d  maximum                            like(xmlCulong)
+     d  length                             like(xmlCulong)
      d  buffer                             like(xmlParserNodeInfoPtr)
 
       * xmlParserInputState:
@@ -102,7 +103,8 @@
       * The recursive one use the state info for entities processing.
 
      d xmlParserInputState...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_PARSER_EOF...                                                       Nothing to parse
      d                 c                   -1
      d  XML_PARSER_START...                                                     Nothing parsed
@@ -167,7 +169,8 @@
       *
       * A parser can operate in various modes
 
-     d xmlParserMode   s             10i 0 based(######typedef######)           enum
+     d xmlParserMode   s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_PARSE_UNKNOWN...
      d                 c                   0
      d  XML_PARSE_DOM...
@@ -198,59 +201,59 @@
      d  sax                                like(xmlSAXHandlerPtr)               The SAX handler
      d  userData                       *                                        SAX only-4 DOM build
      d  myDoc                              like(xmlDocPtr)                      Document being built
-     d  wellFormed                   10i 0                                      Well formed doc ?
+     d  wellFormed                         like(xmlCint)                        Well formed doc ?
      d  replaceEntities...                                                      Replace entities ?
-     d                               10i 0
+     d                                     like(xmlCint)
      d  version                        *                                        const xmlChar *
      d  encoding                       *                                        const xmlChar *
-     d  standalone                   10i 0                                      Standalone document
-     d  html                         10i 0                                      HTML state/type
+     d  standalone                         like(xmlCint)                        Standalone document
+     d  html                               like(xmlCint)                        HTML state/type
       *
       * Input stream stack
       *
      d  input                              like(xmlParserInputPtr)              Current input stream
-     d  inputNr                      10i 0                                      # current in streams
-     d  inputMax                     10i 0                                      Max # of in streams
+     d  inputNr                            like(xmlCint)                        # current in streams
+     d  inputMax                           like(xmlCint)                        Max # of in streams
      d  inputTab                       *                                        xmlParserInputPtr *
       *
       * Node analysis stack only used for DOM building
       *
      d  node                               like(xmlNodePtr)                     Current parsed node
-     d  nodeNr                       10i 0                                      Parsing stack depth
-     d  nodeMax                      10i 0                                      Max stack depth
+     d  nodeNr                             like(xmlCint)                        Parsing stack depth
+     d  nodeMax                            like(xmlCint)                        Max stack depth
      d  nodeTab                        *                                        xmlNodePtr *
       *
-     d  record_info                  10i 0                                      Keep node info ?
-     d  node_seq                           like(xmlParserNodeInfoSeq)           Parsed nodes info
+     d  record_info                        like(xmlCint)                        Keep node info ?
+     d  node_seq                           likeds(xmlParserNodeInfoSeq)         Parsed nodes info
       *
-     d  errNo                        10i 0                                      Error code
+     d  errNo                              like(xmlCint)                        Error code
       *
      d  hasExternalSubset...
-     d                               10i 0
-     d  hashPErefs                   10i 0
-     d  external                     10i 0                                      Parsing ext. entity?
+     d                                     like(xmlCint)
+     d  hasPErefs                          like(xmlCint)
+     d  external                           like(xmlCint)                        Parsing ext. entity?
       *
-     d  valid                        10i 0                                      Valid document ?
-     d  validate                     10i 0                                      Try to validate ?
-     d  vctxt                              like(xmlValidCtxt)                   Validity context
+     d  valid                              like(xmlCint)                        Valid document ?
+     d  validate                           like(xmlCint)                        Try to validate ?
+     d  vctxt                              likeds(xmlValidCtxt)                 Validity context
       *
      d  instate                            like(xmlParserInputState)            Current input type
-     d  token                        10i 0                                      Next look-ahead char
+     d  token                              like(xmlCint)                        Next look-ahead char
       *
      d  directory                      *                                        char *
       *
       * Node name stack
       *
      d  name                           *                                        const xmlChar *
-     d  nameNr                       10i 0                                      Parsing stack depth
-     d  nameMax                      10i 0                                      Max stack depth
+     d  nameNr                             like(xmlCint)                        Parsing stack depth
+     d  nameMax                            like(xmlCint)                        Max stack depth
      d  nameTab                        *                                        const xmlChar * *
       *
-     d  nbChars                      20i 0                                      # xmlChars processed
-     d  checkIndex                   20i 0                                      4 progressive parse
-     d  keepBlanks                   10i 0                                      Ugly but ...
-     d  disableSAX                   10i 0                                      Disable SAX cllbacks
-     d  inSubset                     10i 0                                      In int 1/ext 2 sbset
+     d  nbChars                            like(xmlClong)                       # xmlChars processed
+     d  checkIndex                         like(xmlClong)                       4 progressive parse
+     d  keepBlanks                         like(xmlCint)                        Ugly but ...
+     d  disableSAX                         like(xmlCint)                        Disable SAX cllbacks
+     d  inSubset                           like(xmlCint)                        In int 1/ext 2 sbset
      d  intSubName                     *                                        const xmlChar *
      d  extSubURI                      *                                        const xmlChar *
      d  extSubSytem                    *                                        const xmlChar *
@@ -258,27 +261,27 @@
       * xml:space values
       *
      d  space                          *                                        int *
-     d  spaceNr                      10i 0                                      Parsing stack depth
-     d  spaceMax                     10i 0                                      Max stack depth
+     d  spaceNr                            like(xmlCint)                        Parsing stack depth
+     d  spaceMax                           like(xmlCint)                        Max stack depth
      d  spaceTab                       *                                        int *
       *
-     d  depth                        10i 0                                      To detect loops
+     d  depth                              like(xmlCint)                        To detect loops
      d  entity                             like(xmlParserInputPtr)              To check boundaries
-     d  charset                      10i 0                                      In-memory content
-     d  nodelen                      10i 0                                      Speed up parsing
-     d  nodemem                      10i 0                                      Speed up parsing
-     d  pedantic                     10i 0                                      Enb. pedantic warng
+     d  charset                            like(xmlCint)                        In-memory content
+     d  nodelen                            like(xmlCint)                        Speed up parsing
+     d  nodemem                            like(xmlCint)                        Speed up parsing
+     d  pedantic                           like(xmlCint)                        Enb. pedantic warng
      d  #private                       *                                        void *
       *
-     d  loadsubset                   10i 0                                      Load ext. subset ?
-     d  linenumbers                  10i 0                                      Set line numbers ?
+     d  loadsubset                         like(xmlCint)                        Load ext. subset ?
+     d  linenumbers                        like(xmlCint)                        Set line numbers ?
      d  catalogs                       *                                        void *
-     d  recovery                     10i 0                                      Run in recovery mode
-     d  progressive                  10i 0                                      Progressive parsing?
+     d  recovery                           like(xmlCint)                        Run in recovery mode
+     d  progressive                        like(xmlCint)                        Progressive parsing?
      d  dict                               like(xmlDictPtr)                     Parser dictionary
      d  atts                           *                                        const xmlChar *
-     d  maxatts                      10i 0                                      Above array size
-     d  docdict                      10i 0                                      Use dictionary ?
+     d  maxatts                            like(xmlCint)                        Above array size
+     d  docdict                            like(xmlCint)                        Use dictionary ?
       *
       * pre-interned strings
       *
@@ -288,41 +291,41 @@
       *
       * Everything below is used only by the new SAX mode
       *
-     d  sax2                         10i 0                                      New SAX mode ?
-     d  nsNr                         10i 0                                      # inherited nmspaces
-     d  nsMax                        10i 0                                      Array size
+     d  sax2                               like(xmlCint)                        New SAX mode ?
+     d  nsNr                               like(xmlCint)                        # inherited nmspaces
+     d  nsMax                              like(xmlCint)                        Array size
      d  nsTab                          *                                        const xmlChar *
      d  attallocs                      *                                        int *
      d  pushTab                        *                                        void *
      d  attsDefault                        like(xmlHashTablePtr)                Defaulted attrs
      d  attsSpecial                        like(xmlHashTablePtr)                non-CDATA attrs
-     d  nsWellFormed                 10i 0                                      Doc namespace OK ?
-     d  options                      10i 0                                      Extra options
+     d  nsWellFormed                       like(xmlCint)                        Doc namespace OK ?
+     d  options                            like(xmlCint)                        Extra options
       *
       * Those fields are needed only for treaming parsing so far
       *
-     d  dictNames                    10i 0                                      Dict names in tree ?
-     d  freeElemsNr                  10i 0                                      # free element nodes
+     d  dictNames                          like(xmlCint)                        Dict names in tree ?
+     d  freeElemsNr                        like(xmlCint)                        # free element nodes
      d  freeElems                          like(xmlNodePtr)                     Free elem nodes list
-     d  freeAttrsNr                  10i 0                                      # free attr. nodes
+     d  freeAttrsNr                        like(xmlCint)                        # free attr. nodes
      d  freeAttrs                          like(xmlAttrPtr)                     Free attr noes list
       *
       * the complete error informations for the last error.
       *
-     d  lastError                          like(xmlError)
+     d  lastError                          likeds(xmlError)
      d  parseMode                          like(xmlParserMode)                  The parser mode
-     d  nbentities                   20u 0                                      # entity references
-     d  sizeentities                 20u 0                                      Parsed entities size
+     d  nbentities                         like(xmlCulong)                      # entity references
+     d  sizeentities                       like(xmlCulong)                      Parsed entities size
       *
       * for use by HTML non-recursive parser
       *
-     d  nodeInfo                           like(xmlParserNodeInfo)              Current NodeInfo
-     d  nodeInfoNr                   10i 0                                      Parsing stack depth
-     d  nodeInfoMax                  10i 0                                      Max stack depth
+     d  nodeInfo                           like(xmlParserNodeInfoPtr)           Current NodeInfo
+     d  nodeInfoNr                         like(xmlCint)                        Parsing stack depth
+     d  nodeInfoMax                        like(xmlCint)                        Max stack depth
      d  nodeInfoTab                    *                                        xmlParserNodeInfo *
       *
-     d  input_id                     10i 0                                      Label inputs ?
-     d  sizeentcopy                  20u 0                                      Entity copy volume
+     d  input_id                           like(xmlCint)                        Label inputs ?
+     d  sizeentcopy                        like(xmlCulong)                      Entity copy volume
 
       * xmlSAXLocator:
       *
@@ -755,7 +758,7 @@
      d  cdataBlock                         like(cdataBlockSAXFunc)
      d  externalSubset...
      d                                     like(externalSubsetSAXFunc)
-     d  initialized                  10u 0
+     d  initialized                        like(xmlCuint)
       *
       * The following fields are extensions available only on version 2
       *
@@ -809,7 +812,7 @@
      d  cdataBlock                         like(cdataBlockSAXFunc)
      d  externalSubset...
      d                                     like(externalSubsetSAXFunc)
-     d  initialized                  10u 0
+     d  initialized                        like(xmlCuint)
 
       * xmlExternalEntityLoader:
       * @URL: The System ID of the resource requested
@@ -838,14 +841,16 @@
       * Input functions
 
      d xmlParserInputRead...
-     d                 pr            10i 0 extproc('xmlParserInputRead')
+     d                 pr                  extproc('xmlParserInputRead')
+     d                                     like(xmlCint)
      d  in                                 value like(xmlParserInputPtr)
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlParserInputGrow...
-     d                 pr            10i 0 extproc('xmlParserInputGrow')
+     d                 pr                  extproc('xmlParserInputGrow')
+     d                                     like(xmlCint)
      d  in                                 value like(xmlParserInputPtr)
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
       * Basic parsing Interfaces
 
@@ -861,28 +866,32 @@
      d xmlParseMemory  pr                  extproc('xmlParseMemory')
      d                                     like(xmlDocPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
       /endif                                                                    LIBXML_SAX1_ENABLED
 
      d xmlSubstituteEntitiesDefault...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                      'xmlSubstituteEntitiesDefault')
-     d  val                          10i 0 value
+     d                                     like(xmlCint)
+     d  val                                value like(xmlCint)
 
      d xmlKeepBlanksDefault...
-     d                 pr            10i 0 extproc('xmlKeepBlanksDefault')
-     d  val                          10i 0 value
+     d                 pr                  extproc('xmlKeepBlanksDefault')
+     d                                     like(xmlCint)
+     d  val                                value like(xmlCint)
 
      d xmlStopParser   pr                  extproc('xmlStopParser')
      d  ctxt                               value like(xmlParserCtxtPtr)
 
      d xmlPedanticParserDefault...
-     d                 pr            10i 0 extproc('xmlPedanticParserDefault')
-     d  val                          10i 0 value
+     d                 pr                  extproc('xmlPedanticParserDefault')
+     d                                     like(xmlCint)
+     d  val                                value like(xmlCint)
 
      d xmlLineNumbersDefault...
-     d                 pr            10i 0 extproc('xmlLineNumbersDefault')
-     d  val                          10i 0 value
+     d                 pr                  extproc('xmlLineNumbersDefault')
+     d                                     like(xmlCint)
+     d  val                                value like(xmlCint)
 
       /if defined(LIBXML_SAX1_ENABLED)
       * Recovery mode
@@ -895,7 +904,7 @@
      d                 pr                  extproc('xmlRecoverMemory')
      d                                     like(xmlDocPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
 
      d xmlRecoverFile  pr                  extproc('xmlRecoverFile')
      d                                     like(xmlDocPtr)
@@ -905,48 +914,52 @@
       * Less common routines and SAX interfaces
 
      d xmlParseDocument...
-     d                 pr            10i 0 extproc('xmlParseDocument')
+     d                 pr                  extproc('xmlParseDocument')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlParserCtxtPtr)
 
      d xmlParseExtParsedEnt...
-     d                 pr            10i 0 extproc('xmlParseExtParsedEnt')
+     d                 pr                  extproc('xmlParseExtParsedEnt')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlParserCtxtPtr)
 
       /if defined(LIBXML_SAX1_ENABLED)
      d xmlSAXUserParseFile...
-     d                 pr            10i 0 extproc('xmlSAXUserParseFile')
+     d                 pr                  extproc('xmlSAXUserParseFile')
+     d                                     like(xmlCint)
      d  sax                                value like(xmlSAXHandlerPtr)
      d  user_data                      *   value                                void *
      d  filename                       *   value options(*string)               const char *
 
      d xmlSAXUserParseMemory...
-     d                 pr            10i 0 extproc('xmlSAXUserParseMemory')
+     d                 pr                  extproc('xmlSAXUserParseMemory')
+     d                                     like(xmlCint)
      d  sax                                value like(xmlSAXHandlerPtr)
      d  user_data                      *   value                                void *
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
 
      d xmlSAXParseDoc  pr                  extproc('xmlSAXParseDoc')
      d                                     like(xmlDocPtr)
      d  sax                                value like(xmlSAXHandlerPtr)
      d  cur                            *   value options(*string)               const xmlChar *
-     d  recovery                     10i 0 value
+     d  recovery                           value like(xmlCint)
 
      d xmlSAXParseMemory...
      d                 pr                  extproc('xmlSAXParseMemory')
      d                                     like(xmlDocPtr)
      d  sax                                value like(xmlSAXHandlerPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
-     d  recovery                     10i 0 value
+     d  size                               value like(xmlCint)
+     d  recovery                           value like(xmlCint)
 
      d xmlSAXParseMemoryWithData...
      d                 pr                  extproc('xmlSAXParseMemoryWithData')
      d                                     like(xmlDocPtr)
      d  sax                                value like(xmlSAXHandlerPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
-     d  recovery                     10i 0 value
+     d  size                               value like(xmlCint)
+     d  recovery                           value like(xmlCint)
      d  data                           *   value                                void *
 
      d xmlSAXParseFile...
@@ -954,14 +967,14 @@
      d                                     like(xmlDocPtr)
      d  sax                                value like(xmlSAXHandlerPtr)
      d  filename                       *   value options(*string)               const char *
-     d  recovery                     10i 0 value
+     d  recovery                           value like(xmlCint)
 
      d xmlSAXParseFileWithData...
      d                 pr                  extproc('xmlSAXParseFileWithData')
      d                                     like(xmlDocPtr)
      d  sax                                value like(xmlSAXHandlerPtr)
      d  filename                       *   value options(*string)               const char *
-     d  recovery                     10i 0 value
+     d  recovery                           value like(xmlCint)
      d  data                           *   value                                void *
 
      d xmlSAXParseEntity...
@@ -997,12 +1010,13 @@
 
       /if defined(LIBXML_SAX1_ENABLED)
      d xmlParseBalancedChunkMemory...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                      'xmlParseBalancedChunkMemory')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  sax                                value like(xmlSAXHandlerPtr)
      d  user_data                      *   value                                void *
-     d  depth                        10i 0 value
+     d  depth                              value like(xmlCint)
      d  user_data                      *   value                                void *
      d  string                         *   value options(*string)               const xmlChar *
      d  lst                            *   value                                xmlNodePtr *
@@ -1013,35 +1027,38 @@
      d                                     like(xmlParserErrors)
      d  node                               value like(xmlNodePtr)
      d  data                           *   value options(*string)               const char *
-     d  datalen                      10i 0 value
-     d  options                      10i 0 value
+     d  datalen                            value like(xmlCint)
+     d  options                            value like(xmlCint)
      d  lst                            *   value                                xmlNodePtr *
 
       /if defined(LIBXML_SAX1_ENABLED)
      d xmlParseBalancedChunkMemoryRecover...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlParseBalancedChunkMemoryRecover')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  sax                                value like(xmlSAXHandlerPtr)
      d  user_data                      *   value                                void *
-     d  depth                        10i 0 value
+     d  depth                              value like(xmlCint)
      d  string                         *   value options(*string)               const xmlChar *
      d  lst                            *   value                                xmlNodePtr *
-     d  recover                      10i 0 value
+     d  recover                            value like(xmlCint)
 
      d xmlParseExternalEntity...
-     d                 pr            10i 0 extproc('xmlParseExternalEntity')
+     d                 pr                  extproc('xmlParseExternalEntity')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  sax                                value like(xmlSAXHandlerPtr)
      d  user_data                      *   value                                void *
-     d  depth                        10i 0 value
+     d  depth                              value like(xmlCint)
      d  URL                            *   value options(*string)               const xmlChar *
      d  ID                             *   value options(*string)               const xmlChar *
      d  lst                            *   value                                xmlNodePtr *
       /endif                                                                    LIBXML_SAX1_ENABLED
 
      d xmlParseCtxtExternalEntity...
-     d                 pr            10i 0 extproc('xmlParseCtxtExternalEntity')
+     d                 pr                  extproc('xmlParseCtxtExternalEntity')
+     d                                     like(xmlCint)
      d  sax                                value like(xmlSAXHandlerPtr)
      d  URL                            *   value options(*string)               const xmlChar *
      d  ID                             *   value options(*string)               const xmlChar *
@@ -1054,7 +1071,8 @@
      d                                     like(xmlParserCtxtPtr)
 
      d xmlInitParserCtxt...
-     d                 pr            10i 0 extproc('xmlInitParserCtxt')
+     d                 pr                  extproc('xmlInitParserCtxt')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlParserCtxtPtr)
 
      d xmlClearParserCtxt...
@@ -1082,16 +1100,19 @@
       * Reading/setting optional parsing features.
 
      d xmlGetFeaturesList...
-     d                 pr            10i 0 extproc('xmlGetFeaturesList')
-     d  len                          10i 0
+     d                 pr                  extproc('xmlGetFeaturesList')
+     d                                     like(xmlCint)
+     d  len                                like(xmlCint)
      d  result                         *                                        const char *(*)
 
-     d xmlGetFeature   pr            10i 0 extproc('xmlGetFeature')
+     d xmlGetFeature   pr                  extproc('xmlGetFeature')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlParserCtxtPtr)
      d  name                           *   value options(*string)               const char *
      d  result                         *   value                                void *
 
-     d xmlSetFeature   pr            10i 0 extproc('xmlSetFeature')
+     d xmlSetFeature   pr                  extproc('xmlSetFeature')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlParserCtxtPtr)
      d  name                           *   value options(*string)               const char *
      d  result                         *   value                                void *
@@ -1106,14 +1127,15 @@
      d  sax                                value like(xmlSAXHandlerPtr)
      d  user_data                      *   value                                void *
      d  chunk                          *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  filename                       *   value options(*string)               const char *
 
-     d xmlParseChunk   pr            10i 0 extproc('xmlParseChunk')
+     d xmlParseChunk   pr                  extproc('xmlParseChunk')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlParserCtxtPtr)
      d  chunk                          *   value options(*string)               const char *
-     d  size                         10i 0 value
-     d  terminate                    10i 0 value
+     d  size                               value like(xmlCint)
+     d  terminate                          value like(xmlCint)
       /endif                                                                    LIBXML_PUSH_ENABLED
 
       * Special I/O mode.
@@ -1151,7 +1173,8 @@
      d  seq                                value like(xmlParserNodeInfoSeqPtr)
 
      d xmlParserFindNodeInfoIndex...
-     d                 pr            20u 0 extproc('xmlParserFindNodeInfoIndex')
+     d                 pr                  extproc('xmlParserFindNodeInfoIndex')
+     d                                     like(xmlCulong)
      d  seq                                value like(xmlParserNodeInfoSeqPtr)
      d  node                               value like(xmlNodePtr)               const
 
@@ -1180,7 +1203,8 @@
       * Index lookup, actually implemented in the encoding module
 
      d xmlByteConsumed...
-     d                 pr            20i 0 extproc('xmlByteConsumed')
+     d                 pr                  extproc('xmlByteConsumed')
+     d                                     like(xmlClong)
      d  ctxt                               value like(xmlParserCtxtPtr)
 
       * New set of simpler/more flexible APIs
@@ -1191,7 +1215,8 @@
       * to the xmlReadDoc() and similar calls.
 
      d xmlParserOption...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_PARSE_RECOVER...                                                    Recover on errors
      d                 c                   X'00000001'
      d  XML_PARSE_NOENT...                                                      Substitute entities
@@ -1243,45 +1268,47 @@
      d  ctxt                               value like(xmlParserCtxtPtr)
 
      d xmlCtxtResetPush...
-     d                 pr            10i 0 extproc('xmlCtxtResetPush')
+     d                 pr                  extproc('xmlCtxtResetPush')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlParserCtxtPtr)
      d  chunk                          *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  filename                       *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
 
      d xmlCtxtUseOptions...
-     d                 pr            10i 0 extproc('xmlCtxtUseOptions')
+     d                 pr                  extproc('xmlCtxtUseOptions')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlParserCtxtPtr)
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReadDoc      pr                  extproc('xmlReadDoc')
      d                                     like(xmlDocPtr)
      d  cur                            *   value options(*string)               const xmlChar *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReadFile     pr                  extproc('xmlReadFile')
      d                                     like(xmlDocPtr)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReadMemory   pr                  extproc('xmlReadMemory')
      d                                     like(xmlDocPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReadFd       pr                  extproc('xmlReadFd')
      d                                     like(xmlDocPtr)
-     d  fd                           10i 0 value
+     d  fd                                 value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReadIO       pr                  extproc('xmlReadIO')
      d                                     like(xmlDocPtr)
@@ -1290,7 +1317,7 @@
      d  ioctx                          *   value                                void *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlCtxtReadDoc  pr                  extproc('xmlCtxtReadDoc')
      d                                     like(xmlDocPtr)
@@ -1298,7 +1325,7 @@
      d  cur                            *   value options(*string)               const xmlChar *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlCtxtReadFile...
      d                 pr                  extproc('xmlCtxtReadFile')
@@ -1306,25 +1333,25 @@
      d  ctxt                               value like(xmlParserCtxtPtr)
      d  filename                       *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlCtxtReadMemory...
      d                 pr                  extproc('xmlCtxtReadMemory')
      d                                     like(xmlDocPtr)
      d  ctxt                               value like(xmlParserCtxtPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlCtxtReadFd   pr                  extproc('xmlCtxtReadFd')
      d                                     like(xmlDocPtr)
      d  ctxt                               value like(xmlParserCtxtPtr)
-     d  fd                           10i 0 value
+     d  fd                                 value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlCtxtReadIO   pr                  extproc('xmlCtxtReadIO')
      d                                     like(xmlDocPtr)
@@ -1334,7 +1361,7 @@
      d  ioctx                          *   value                                void *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
       * Library wide options
 
@@ -1344,7 +1371,8 @@
       * or disabled at compile-time.
       * They used to be called XML_FEATURE_xxx but this clashed with Expat
 
-     d xmlFeature      s             10i 0 based(######typedef######)           enum
+     d xmlFeature      s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_WITH_THREAD...
      d                 c                   1
      d  XML_WITH_TREE  c                   2
@@ -1401,7 +1429,8 @@
      d  XML_WITH_LZMA  c                   33
      d  XML_WITH_NONE  c                   99999
 
-     d xmlHasFeature   pr            10i 0 extproc('xmlHasFeature')
+     d xmlHasFeature   pr                  extproc('xmlHasFeature')
+     d                                     like(xmlCint)
      d  feature                            value like(xmlFeature)
 
       /endif                                                                    XML_PARSER_H__
diff --git a/os400/libxmlrpg/parserInternals.rpgle b/os400/libxmlrpg/parserInternals.rpgle
index 6942b7d..6c8f388 100644
--- a/os400/libxmlrpg/parserInternals.rpgle
+++ b/os400/libxmlrpg/parserInternals.rpgle
@@ -11,6 +11,7 @@
       /define XML_PARSER_INTERNALS_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/parser"
       /include "libxmlrpg/HTMLparser"
       /include "libxmlrpg/chvalid"
@@ -22,7 +23,8 @@
       * boundary feature, use XML_PARSE_HUGE option to override it.
 
      d xmlParserMaxDepth...
-     d                 s             10u 0 import('xmlParserMaxDepth')
+     d                 s                   import('xmlParserMaxDepth')
+     d                                     like(xmlCuint)
 
       * XML_MAX_TEXT_LENGTH:
       *
@@ -89,12 +91,13 @@
      d                 s              9    import('xmlStringTextNoenc')         \0 in 10th byte
 
      d xmlStringComment...
-     d                 s              7    import('xmlStringTextComment')       \0 in 8th byte
+     d                 s              7    import('xmlStringComment')           \0 in 8th byte
 
       * Function to finish the work of the macros where needed.
 
-     d xmlIsLetter     pr            10i 0 extproc('xmlIsLetter')
-     d c                             10i 0 value
+     d xmlIsLetter     pr                  extproc('xmlIsLetter')
+     d                                     like(xmlCint)
+     d c                                   value like(xmlCint)
 
       * Parser context.
 
@@ -107,13 +110,13 @@
      d                 pr                  extproc('xmlCreateURLParserCtxt')
      d                                     like(xmlParserCtxtPtr)
      d filename                        *   value options(*string)               const char *
-     d options                       10i 0 value
+     d options                             value like(xmlCint)
 
      d xmlCreateMemoryParserCtxt...
      d                 pr                  extproc('xmlCreateMemoryParserCtxt')
      d                                     like(xmlParserCtxtPtr)
      d buffer                          *   value options(*string)               const char *
-     d size                          10i 0 value
+     d size                                value like(xmlCint)
 
      d xmlCreateEntityParserCtxt...
      d                 pr                  extproc('xmlCreateEntityParserCtxt')
@@ -123,17 +126,20 @@
      d base                            *   value options(*string)               const xmlChar *
 
      d xmlSwitchEncoding...
-     d                 pr            10i 0 extproc('xmlSwitchEncoding')
+     d                 pr                  extproc('xmlSwitchEncoding')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d enc                                 value like(xmlCharEncoding)
 
      d xmlSwitchToEncoding...
-     d                 pr            10i 0 extproc('xmlSwitchToEncoding')
+     d                 pr                  extproc('xmlSwitchToEncoding')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d handler                             value like(xmlCharEncodingHandlerPtr)
 
      d xmlSwitchInputEncoding...
-     d                 pr            10i 0 extproc('xmlSwitchInputEncoding')
+     d                 pr                  extproc('xmlSwitchInputEncoding')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d input                               value like(xmlParserInputPtr)
      d handler                             value like(xmlCharEncodingHandlerPtr)
@@ -152,7 +158,8 @@
      d ctxt                                value like(xmlParserCtxtPtr)
      d entity                              value like(xmlEntityPtr)
 
-     d xmlPushInput    pr            10i 0 extproc('xmlPushInput')
+     d xmlPushInput    pr                  extproc('xmlPushInput')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d input                               value like(xmlParserInputPtr)
 
@@ -211,13 +218,13 @@
      d xmlParseCharData...
      d                 pr                  extproc('xmlParseCharData')
      d ctxt                                value like(xmlParserCtxtPtr)
-     d cdata                         10i 0 value
+     d cdata                               value like(xmlCint)
 
      d xmlParseExternalID...
      d                 pr              *   extproc('xmlParseExternalID')        xmlChar *
      d ctxt                                value like(xmlParserCtxtPtr)
      d publicID                        *                                        xmlChar *(*)
-     d strict                        10i 0 value
+     d strict                              value like(xmlCint)
 
      d xmlParseComment...
      d                 pr                  extproc('xmlParseComment')
@@ -239,7 +246,8 @@
      d ctxt                                value like(xmlParserCtxtPtr)
 
      d xmlParseDefaultDecl...
-     d                 pr            10i 0 extproc('xmlParseDefaultDecl')
+     d                 pr                  extproc('xmlParseDefaultDecl')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d value                           *                                        xmlChar *(*)
 
@@ -254,12 +262,14 @@
      d ctxt                                value like(xmlParserCtxtPtr)
 
      d xmlParseEnumeratedType...
-     d                 pr            10i 0 extproc('xmlParseEnumeratedType')
+     d                 pr                  extproc('xmlParseEnumeratedType')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d tree                            *   value                                xmlEnumerationPtr *
 
      d xmlParseAttributeType...
-     d                 pr            10i 0 extproc('xmlParseAttributeType')
+     d                 pr                  extproc('xmlParseAttributeType')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d tree                            *   value                                xmlEnumerationPtr *
 
@@ -272,24 +282,26 @@
      d                                     'xmlParseElementMixedContentDecl')
      d                                     like(xmlElementContentPtr)
      d ctxt                                value like(xmlParserCtxtPtr)
-     d inputchk                      10i 0 value
+     d inputchk                            value like(xmlCint)
 
      d xmlParseElementChildrenContentDecl...
      d                 pr                  extproc(
      d                                     'xmlParseElementChildrenContentDecl')
      d                                     like(xmlElementContentPtr)
      d ctxt                                value like(xmlParserCtxtPtr)
-     d inputchk                      10i 0 value
+     d inputchk                            value like(xmlCint)
 
      d xmlParseElementContentDecl...
-     d                 pr            10i 0 extproc('xmlParseElementContentDecl')
+     d                 pr                  extproc('xmlParseElementContentDecl')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d name                            *   value options(*string)               const xmlChar *
      d result                          *   value                                xmlElementContentPtr
      d                                                                          *
 
      d xmlParseElementDecl...
-     d                 pr            10i 0 extproc('xmlParseElementDecl')
+     d                 pr                  extproc('xmlParseElementDecl')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
 
      d xmlParseMarkupDecl...
@@ -297,7 +309,8 @@
      d ctxt                                value like(xmlParserCtxtPtr)
 
      d xmlParseCharRef...
-     d                 pr            10i 0 extproc('xmlParseCharRef')
+     d                 pr                  extproc('xmlParseCharRef')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
 
      d xmlParseEntityRef...
@@ -358,7 +371,8 @@
      d                 pr              *   extproc('xmlParseEncodingDecl')      const xmlChar *
      d ctxt                                value like(xmlParserCtxtPtr)
 
-     d xmlParseSDDecl  pr            10i 0 extproc('xmlParseSDDecl')
+     d xmlParseSDDecl  pr                  extproc('xmlParseSDDecl')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
 
      d xmlParseXMLDecl...
@@ -410,7 +424,7 @@
      d                 pr              *   extproc('xmlStringDecodeEntities')   xmlChar *
      d ctxt                                value like(xmlParserCtxtPtr)
      d str                             *   value options(*string)               const xmlChar *
-     d what                          10i 0 value
+     d what                                value like(xmlCint)
      d end                                 value like(xmlChar)
      d end2                                value like(xmlChar)
      d end3                                value like(xmlChar)
@@ -419,15 +433,16 @@
      d                 pr              *   extproc('xmlStringLenDecodeEntities')xmlChar *
      d ctxt                                value like(xmlParserCtxtPtr)
      d str                             *   value options(*string)               const xmlChar *
-     d len                           10i 0 value
-     d what                          10i 0 value
+     d len                                 value like(xmlCint)
+     d what                                value like(xmlCint)
      d end                                 value like(xmlChar)
      d end2                                value like(xmlChar)
      d end3                                value like(xmlChar)
 
       * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP.
 
-     d nodePush        pr            10i 0 extproc('nodePush')
+     d nodePush        pr                  extproc('nodePush')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d value                               value like(xmlNodePtr)
 
@@ -435,7 +450,8 @@
      d                                     like(xmlNodePtr)
      d ctxt                                value like(xmlParserCtxtPtr)
 
-     d inputPush       pr            10i 0 extproc('inputPush')
+     d inputPush       pr                  extproc('inputPush')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d value                               value like(xmlParserInputPtr)
 
@@ -446,18 +462,21 @@
      d namePop         pr              *   extproc('namePop')                   const xmlChar *
      d ctxt                                value like(xmlParserCtxtPtr)
 
-     d namePush        pr            10i 0 extproc('namePush')
+     d namePush        pr                  extproc('namePush')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d value                           *   value options(*string)               const xmlChar *
 
       * other commodities shared between parser.c and parserInternals.
 
      d xmlSkipBlankChars...
-     d                 pr            10i 0 extproc('xmlSkipBlankChars')
+     d                 pr                  extproc('xmlSkipBlankChars')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
 
      d xmlStringCurrentChar...
-     d                 pr            10i 0 extproc('xmlStringCurrentChar')
+     d                 pr                  extproc('xmlStringCurrentChar')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d cur                             *   value options(*string)               const xmlChar *
      d len                             *   value                                int *
@@ -467,24 +486,28 @@
      d ctxt                                value like(xmlParserCtxtPtr)
 
      d xmlCheckLanguageID...
-     d                 pr            10i 0 extproc('xmlCheckLanguageID')
+     d                 pr                  extproc('xmlCheckLanguageID')
+     d                                     like(xmlCint)
      d lang                            *   value options(*string)               const xmlChar *
 
       * Really core function shared with HTML parser.
 
-     d xmlCurrentChar  pr            10i 0 extproc('xmlCurrentChar')
+     d xmlCurrentChar  pr                  extproc('xmlCurrentChar')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlParserCtxtPtr)
      d len                             *   value                                int *
 
      d xmlCopyCharMultiByte...
-     d                 pr            10i 0 extproc('xmlCopyCharMultiByte')
+     d                 pr                  extproc('xmlCopyCharMultiByte')
+     d                                     like(xmlCint)
      d out                             *   value options(*string)               xmlChar *
-     d val                           10i 0 value
+     d val                                 value like(xmlCint)
 
-     d xmlCopyChar     pr            10i 0 extproc('xmlCopyChar')
-     d len                           10i 0 value
+     d xmlCopyChar     pr                  extproc('xmlCopyChar')
+     d                                     like(xmlCint)
+     d len                                 value like(xmlCint)
      d out                             *   value options(*string)               xmlChar *
-     d val                           10i 0 value
+     d val                                 value like(xmlCint)
 
      d xmlNextChar     pr                  extproc('xmlNextChar')
      d ctxt                                value like(xmlParserCtxtPtr)
@@ -560,8 +583,8 @@
      d xmlDecodeEntities...
      d                 pr              *   extproc('xmlDecodeEntities')         xmlChar *
      d ctxt                                value like(xmlParserCtxtPtr)
-     d len                           10i 0 value
-     d what                          10i 0 value
+     d len                                 value like(xmlCint)
+     d what                                value like(xmlCint)
      d end                                 value like(xmlChar)
      d end2                                value like(xmlChar)
      d end3                                value like(xmlChar)
diff --git a/os400/libxmlrpg/pattern.rpgle b/os400/libxmlrpg/pattern.rpgle
index 2e881e5..ef02301 100644
--- a/os400/libxmlrpg/pattern.rpgle
+++ b/os400/libxmlrpg/pattern.rpgle
@@ -10,11 +10,13 @@
       /define XML_PATTERN_H__
 
       /include "libxmlrpg/xmlversion"
-      /include "libxmlrpg/tree"
-      /include "libxmlrpg/dict"
 
       /if defined(LIBXML_PATTERN_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+      /include "libxmlrpg/tree"
+      /include "libxmlrpg/dict"
+
       * xmlPattern:
       *
       * A compiled (XPath based) pattern to select nodes
@@ -28,7 +30,8 @@
       * matching with this module
 
      d xmlPatternFlags...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_PATTERN_DEFAULT...                                                  Simple pattern match
      d                 c                   X'0000'
      d  XML_PATTERN_XPATH...                                                    Std XPath pattern
@@ -50,11 +53,12 @@
      d                                     like(xmlPatternPtr)
      d  pattern                        *   value options(*string)               const xmlChar *
      d  dict                           *   value                                xmlDict *
-     d  flags                        10i 0 value
+     d  flags                              value like(xmlCint)
      d  namespaces                     *                                        const xmlChar *(*)
 
      d xmlPatternMatch...
-     d                 pr            10i 0 extproc('xmlPatternMatch')
+     d                 pr                  extproc('xmlPatternMatch')
+     d                                     like(xmlCint)
      d  comp                               value like(xmlPatternPtr)
      d  node                               value like(xmlNodePtr)
 
@@ -64,19 +68,23 @@
      d                 s               *   based(######typedef######)
 
      d xmlPatternStreamable...
-     d                 pr            10i 0 extproc('xmlPatternStreamable')
+     d                 pr                  extproc('xmlPatternStreamable')
+     d                                     like(xmlCint)
      d  comp                               value like(xmlPatternPtr)
 
      d xmlPatternMaxDepth...
-     d                 pr            10i 0 extproc('xmlPatternMaxDepth')
+     d                 pr                  extproc('xmlPatternMaxDepth')
+     d                                     like(xmlCint)
      d  comp                               value like(xmlPatternPtr)
 
      d xmlPatternMinDepth...
-     d                 pr            10i 0 extproc('xmlPatternMinDepth')
+     d                 pr                  extproc('xmlPatternMinDepth')
+     d                                     like(xmlCint)
      d  comp                               value like(xmlPatternPtr)
 
      d xmlPatternFromRoot...
-     d                 pr            10i 0 extproc('xmlPatternFromRoot')
+     d                 pr                  extproc('xmlPatternFromRoot')
+     d                                     like(xmlCint)
      d  comp                               value like(xmlPatternPtr)
 
      d xmlPatternGetStreamCtxt...
@@ -89,28 +97,33 @@
      d  stream                             value like(xmlStreamCtxtPtr)
 
      d xmlStreamPushNode...
-     d                 pr            10i 0 extproc('xmlStreamPushNode')
+     d                 pr                  extproc('xmlStreamPushNode')
+     d                                     like(xmlCint)
      d  stream                             value like(xmlStreamCtxtPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  ns                             *   value options(*string)               const xmlChar *
-     d  nodeType                     10i 0 value
+     d  nodeType                           value like(xmlCint)
 
-     d xmlStreamPush   pr            10i 0 extproc('xmlStreamPush')
+     d xmlStreamPush   pr                  extproc('xmlStreamPush')
+     d                                     like(xmlCint)
      d  stream                             value like(xmlStreamCtxtPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  ns                             *   value options(*string)               const xmlChar *
 
      d xmlStreamPushAttr...
-     d                 pr            10i 0 extproc('xmlStreamPushAttr')
+     d                 pr                  extproc('xmlStreamPushAttr')
+     d                                     like(xmlCint)
      d  stream                             value like(xmlStreamCtxtPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  ns                             *   value options(*string)               const xmlChar *
 
-     d xmlStreamPop    pr            10i 0 extproc('xmlStreamPop')
+     d xmlStreamPop    pr                  extproc('xmlStreamPop')
+     d                                     like(xmlCint)
      d  stream                             value like(xmlStreamCtxtPtr)
 
      d xmlStreamWantsAnyNode...
-     d                 pr            10i 0 extproc('xmlStreamWantsAnyNode')
+     d                 pr                  extproc('xmlStreamWantsAnyNode')
+     d                                     like(xmlCint)
      d  stream                             value like(xmlStreamCtxtPtr)
 
       /endif                                                                    LIBXML_PATTERN_ENBLD
diff --git a/os400/libxmlrpg/relaxng.rpgle b/os400/libxmlrpg/relaxng.rpgle
index af662aa..15b8471 100644
--- a/os400/libxmlrpg/relaxng.rpgle
+++ b/os400/libxmlrpg/relaxng.rpgle
@@ -9,11 +9,13 @@
       /define XML_RELAX_NG__
 
       /include "libxmlrpg/xmlversion"
-      /include "libxmlrpg/hash"
-      /include "libxmlrpg/xmlstring"
 
       /if defined(LIBXML_SCHEMAS_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+      /include "libxmlrpg/hash"
+      /include "libxmlrpg/xmlstring"
+
      d xmlRelaxNGPtr   s               *   based(######typedef######)
 
       * xmlRelaxNGValidityErrorFunc:
@@ -51,7 +53,8 @@
       * List of possible Relax NG validation errors
 
      d xmlRelaxNGValidErr...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_RELAXNG_OK...
      d                 c                   0
      d  XML_RELAXNG_ERR_MEMORY...
@@ -138,7 +141,8 @@
       * List of possible Relax NG Parser flags
 
      d xmlRelaxNGParserFlag...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_RELAXNGP_NONE...
      d                 c                   0
      d  XML_RELAXNGP_FREE_DOC...
@@ -147,7 +151,8 @@
      d                 c                   2
 
      d xmlRelaxNGInitTypes...
-     d                 pr            10i 0 extproc('xmlRelaxNGInitTypes')
+     d                 pr                  extproc('xmlRelaxNGInitTypes')
+     d                                     like(xmlCint)
 
      d xmlRelaxNGCleanupTypes...
      d                 pr                  extproc('xmlRelaxNGCleanupTypes')
@@ -164,7 +169,7 @@
      d                 pr                  extproc('xmlRelaxNGNewMemParserCtxt')
      d                                     like(xmlRelaxNGParserCtxtPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
 
      d xmlRelaxNGNewDocParserCtxt...
      d                 pr                  extproc('xmlRelaxNGNewDocParserCtxt')
@@ -172,9 +177,10 @@
      d  doc                                value like(xmlDocPtr)
 
      d xmlRelaxParserSetFlag...
-     d                 pr            10i 0 extproc('xmlRelaxParserSetFlag')
+     d                 pr                  extproc('xmlRelaxParserSetFlag')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
-     d  flag                         10i 0 value
+     d  flag                               value like(xmlCint)
 
      d xmlRelaxNGFreeParserCtxt...
      d                 pr                  extproc('xmlRelaxNGFreeParserCtxt')
@@ -190,7 +196,8 @@
      d  ctx                            *   value                                void *
 
      d xmlRelaxNGGetParserErrors...
-     d                 pr            10i 0 extproc('xmlRelaxNGGetParserErrors')
+     d                 pr                  extproc('xmlRelaxNGGetParserErrors')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
      d  err                                like(xmlRelaxNGValidityErrorFunc)
      d  warn                               like(xmlRelaxNGValidityWarningFunc)
@@ -236,7 +243,8 @@
      d  ctx                            *   value                                void *
 
      d xmlRelaxNGGetValidErrors...
-     d                 pr            10i 0 extproc('xmlRelaxNGGetValidErrors')
+     d                 pr                  extproc('xmlRelaxNGGetValidErrors')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
      d  err                                like(xmlRelaxNGValidityErrorFunc)
      d  warn                               like(xmlRelaxNGValidityWarningFunc)
@@ -259,36 +267,41 @@
      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
 
      d xmlRelaxNGValidateDoc...
-     d                 pr            10i 0 extproc('xmlRelaxNGValidateDoc')
+     d                 pr                  extproc('xmlRelaxNGValidateDoc')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
 
       * Interfaces for progressive validation when possible
 
      d xmlRelaxNGValidatePushElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlRelaxNGValidatePushElement')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  elem                               value like(xmlNodePtr)
 
      d xmlRelaxNGValidatePushCData...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlRelaxNGValidatePushCData')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
      d  data                           *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlRelaxNGValidatePopElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlRelaxNGValidatePopElement')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  elem                               value like(xmlNodePtr)
 
      d xmlRelaxNGValidateFullElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlRelaxNGValidateFullElement')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  elem                               value like(xmlNodePtr)
diff --git a/os400/libxmlrpg/schemasInternals.rpgle b/os400/libxmlrpg/schemasInternals.rpgle
index edeea5b..765ed00 100644
--- a/os400/libxmlrpg/schemasInternals.rpgle
+++ b/os400/libxmlrpg/schemasInternals.rpgle
@@ -2,7 +2,7 @@
       * Description: internal interfaces for the XML Schemas handling
       *              and schema validity checking
       *              The Schemas development is a Work In Progress.
-      *              Some of those interfaces are not garanteed to be API or
+      *              Some of those interfaces are not guaranteed to be API or
       *                ABI stable !
       *
       * Copy: See Copyright for the status of this software.
@@ -15,12 +15,15 @@
       /include "libxmlrpg/xmlversion"
 
       /if defined(LIBXML_SCHEMAS_ENABLED)
+
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/xmlregexp"
       /include "libxmlrpg/hash"
       /include "libxmlrpg/dict"
 
      d xmlSchemaValType...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_SCHEMAS_UNKNOWN...
      d                 c                   0
      d  XML_SCHEMAS_STRING...
@@ -119,7 +122,8 @@
       * XML Schemas defines multiple type of types.
 
      d xmlSchemaTypeType...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_SCHEMA_TYPE_BASIC...                                                A builtin datatype
      d                 c                   1
      d  XML_SCHEMA_TYPE_ANY...
@@ -202,7 +206,8 @@
      d                 c                   2001
 
      d xmlSchemaContentType...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_SCHEMA_CONTENT_UNKNOWN...
      d                 c                   0
      d  XML_SCHEMA_CONTENT_EMPTY...
@@ -357,13 +362,13 @@
      d  annot                              like(xmlSchemaAnnotPtr)
       *
      d  base                               like(xmlSchemaTypePtr)               Deprecated
-     d  occurs                       10i 0                                      Deprecated
+     d  occurs                             like(xmlCint)                        Deprecated
      d  defValue                       *                                        const xmlChar *
      d  subtypes                           like(xmlSchemaTypePtr)               The type definition
      d  node                               like(xmlNodePtr)
      d  targetNamespace...                                                      const xmlChar *
      d                                 *
-     d  flags                        10i 0
+     d  flags                              like(xmlCint)
      d  refPrefix                      *                                        const xmlChar *
      d  defVal                             like(xmlSchemaValPtr)                Compiled constraint
      d  refDecl                            like(xmlSchemaAttributePtr)          Deprecated
@@ -413,14 +418,14 @@
      d  id                             *                                        const xmlChar *
      d  annot                              like(xmlSchemaAnnotPtr)
      d  node                               like(xmlNodePtr)
-     d  minOccurs                    10i 0                                      Deprecated; not used
-     d  maxOccurs                    10i 0                                      Deprecated; not used
+     d  minOccurs                          like(xmlCint)                        Deprecated; not used
+     d  maxOccurs                          like(xmlCint)                        Deprecated; not used
      d  processContents...
-     d                               10i 0
-     d  any                          10i 0                                      Ns constraint ##any?
+     d                                     like(xmlCint)
+     d  any                                like(xmlCint)                        Ns constraint ##any?
      d  nsSet                              like(xmlSchemaWildcardNsPtr)         Allowed namspce list
      d  negNsSet                           like(xmlSchemaWildcardNsPtr)         Negated namespace
-     d  flags                        10i 0                                      Deprecated; not used
+     d  flags                              like(xmlCint)                        Deprecated; not used
 
       * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
       *
@@ -478,7 +483,7 @@
       *
      d  attributes                         like(xmlSchemaAttributePtr)          Deprecated; not used
      d  node                               like(xmlNodePtr)
-     d  flags                        10i 0
+     d  flags                              like(xmlCint)
      d  attributeWildcard...
      d                                     like(xmlSchemaWildcardPtr)
      d  refPrefix                      *                                        const xmlChar *
@@ -753,21 +758,21 @@
      d  subtypes                           like(xmlSchemaTypePtr)
      d  attributes                         like(xmlSchemaAttributePtr)          Deprecated; not used
      d  node                               like(xmlNodePtr)
-     d  minOccurs                    10i 0                                      Deprecated; not used
-     d  maxOccurs                    10i 0                                      Deprecated; not used
+     d  minOccurs                          like(xmlCint)                        Deprecated; not used
+     d  maxOccurs                          like(xmlCint)                        Deprecated; not used
       *
-     d  flags                        10i 0
+     d  flags                              like(xmlCint)
      d  contentType                        like(xmlSchemaContentType)
      d  base                           *                                        const xmlChar *
      d  baseNs                         *                                        const xmlChar *
      d  baseType                           like(xmlSchemaTypePtr)               Base type component
      d  facets                             like(xmlSchemaFacetPtr)              Local facets
      d  redef                              like(xmlSchemaTypePtr)               Deprecated; not used
-     d  recurse                      10i 0                                      Obsolete
+     d  recurse                            like(xmlCint)                        Obsolete
      d  attributeUses                      like(xmlSchemaAttributeLinkPtr)      Deprecated; not used
      d  attributeWildcard...
      d                                     like(xmlSchemaWildcardPtr)
-     d  builtInType                  10i 0                                      Built-in types type
+     d  builtInType                        like(xmlCint)                        Built-in types type
      d  memberTypes                        like(xmlSchemaTypeLinkPtr)           Union member-types
      d  facetSet                           like(xmlSchemaFacetLinkPtr)          All facets
      d  refPrefix                      *                                        const xmlChar *
@@ -937,10 +942,10 @@
      d  subtypes                           like(xmlSchemaTypePtr)
      d  attributes                         like(xmlSchemaAttributePtr)          Deprecated; not used
      d  node                               like(xmlNodePtr)
-     d  minOccurs                    10i 0                                      Deprecated; not used
-     d  maxOccurs                    10i 0                                      Deprecated; not used
+     d  minOccurs                          like(xmlCint)                        Deprecated; not used
+     d  maxOccurs                          like(xmlCint)                        Deprecated; not used
       *
-     d  flags                        10i 0
+     d  flags                              like(xmlCint)
      d  targetNamespace...
      d                                 *                                        const xmlChar *
      d  namedType                      *                                        const xmlChar *
@@ -995,8 +1000,8 @@
      d  id                             *                                        const xmlChar *
      d  annot                              like(xmlSchemaAnnotPtr)
      d  node                               like(xmlNodePtr)
-     d  fixed                        10i 0                                      _FACET_PRESERVE, etc
-     d  whitespace                   10i 0
+     d  fixed                              like(xmlCint)                        _FACET_PRESERVE, etc
+     d  whitespace                         like(xmlCint)
      d  val                                like(xmlSchemaValPtr)                Compiled value
      d  regexp                             like(xmlRegexpPtr)                   Regexp for patterns
 
@@ -1106,7 +1111,7 @@
      d  id                             *                                        const xmlChar *
      d  doc                                like(xmlDocPtr)
      d  annot                              like(xmlSchemaAnnotPtr)
-     d  flags                        10i 0
+     d  flags                              like(xmlCint)
       *
      d  typeDecl                           like(xmlHashTablePtr)
      d  attrDecl                           like(xmlHashTablePtr)
@@ -1120,8 +1125,8 @@
      d  groupDecl                          like(xmlHashTablePtr)
      d  dict                               like(xmlDictPtr)
      d  includes                       *                                        void *
-     d  preserve                     10i 0                                      Do not free doc ?
-     d  counter                      10i 0                                      For name uniqueness
+     d  preserve                           like(xmlCint)                        Do not free doc ?
+     d  counter                            like(xmlCint)                        For name uniqueness
      d  idcDef                             like(xmlHashTablePtr)                All id-constr. defs
      d  volatiles                      *                                        void *
 
diff --git a/os400/libxmlrpg/schematron.rpgle b/os400/libxmlrpg/schematron.rpgle
index ff8ea62..8271ca5 100644
--- a/os400/libxmlrpg/schematron.rpgle
+++ b/os400/libxmlrpg/schematron.rpgle
@@ -12,10 +12,12 @@
 
       /if defined(LIBXML_SCHEMATRON_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/tree"
 
      d xmlSchematronValidOptions...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_SCHEMATRON_OUT_QUIET...                                             Quiet no report
      d                 c                   X'0001'
      d  XML_SCHEMATRON_OUT_TEXT...                                              Build textual report
@@ -78,7 +80,7 @@
      d                                     'xmlSchematronNewMemParserCtxt')
      d                                     like(xmlSchematronParserCtxtPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
 
      d xmlSchematronNewDocParserCtxt...
      d                 pr                  extproc(
@@ -101,12 +103,13 @@
      d  err                                value
      d                                     like(xmlSchematronValidityErrorFunc)
      d  warn                               value like(
-     d                                     xmlSchematronValidityWarningFunc)
+     d                                       xmlSchematronValidityWarningFunc)
      d  ctx                            *   value                                void *
 
      d xmlSchematronGetParserErrors...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchematronGetParserErrors')
+     d                                     like(xmlCint)
      d  ctxt                               value
      d                                     like(xmlSchematronParserCtxtPtr)
      d  err                                like(xmlSchematronValidityErrorFunc)
@@ -115,7 +118,8 @@
      d  ctx                            *                                        void *(*)
 
      d xmlSchematronIsValid...
-     d                 pr            10i 0 extproc('xmlSchematronIsValid')
+     d                 pr                  extproc('xmlSchematronIsValid')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlSchematronValidCtxtPtr)
       /endif
 
@@ -150,8 +154,9 @@
      d  ctx                            *   value                                void *
 
      d xmlSchematronGetValidErrors...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchematronGetValidErrors')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlSchematronValidCtxtPtr)
      d  err                                like(xmlSchematronValidityErrorFunc)
      d  warn                               like(
@@ -159,19 +164,22 @@
      d  ctx                            *                                        void *(*)
 
      d xmlSchematronSetValidOptions...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchematronSetValidOptions')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlSchematronValidCtxtPtr)
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlSchematronValidCtxtGetOptions...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchematronValidCtxtGetOptions')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlSchematronValidCtxtPtr)
 
      d xmlSchematronValidateOneElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchematronValidateOneElement')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlSchematronValidCtxtPtr)
      d  elem                               value like(xmlNodePtr)
       /endif
@@ -180,14 +188,15 @@
      d                 pr                  extproc('xmlSchematronNewValidCtxt')
      d                                     like(xmlSchematronValidCtxtPtr)
      d  schema                             value like(xmlSchematronPtr)
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlSchematronFreeValidCtxt...
      d                 pr                  extproc('xmlSchematronFreeValidCtxt')
      d  ctxt                               value like(xmlSchematronValidCtxtPtr)
 
      d xmlSchematronValidateDoc...
-     d                 pr            10i 0 extproc('xmlSchematronValidateDoc')
+     d                 pr                  extproc('xmlSchematronValidateDoc')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlSchematronValidCtxtPtr)
      d  instance                           value like(xmlDocPtr)
 
diff --git a/os400/libxmlrpg/threads.rpgle b/os400/libxmlrpg/threads.rpgle
index 07d4278..124798b 100644
--- a/os400/libxmlrpg/threads.rpgle
+++ b/os400/libxmlrpg/threads.rpgle
@@ -10,6 +10,7 @@
       /define XML_THREADS_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
 
       * xmlMutex are a simple mutual exception locks.
 
@@ -55,10 +56,12 @@
      d xmlUnlockLibrary...
      d                 pr                  extproc('xmlUnlockLibrary')
 
-     d xmlGetThreadId  pr            10i 0 extproc('xmlGetThreadId')
+     d xmlGetThreadId  pr                  extproc('xmlGetThreadId')
+     d                                     like(xmlCint)
 
      d xmlIsMainThread...
-     d                 pr            10i 0 extproc('xmlIsMainThread')
+     d                 pr                  extproc('xmlIsMainThread')
+     d                                     like(xmlCint)
 
      d xmlCleanupThreads...
      d                 pr                  extproc('xmlCleanupThreads')
diff --git a/os400/libxmlrpg/tree.rpgle b/os400/libxmlrpg/tree.rpgle
index 8b4981a..6512778 100644
--- a/os400/libxmlrpg/tree.rpgle
+++ b/os400/libxmlrpg/tree.rpgle
@@ -11,6 +11,7 @@
       /define XML_TREE_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/xmlstring"
 
 
@@ -66,7 +67,8 @@
       * need or double it's allocated size each time it is found too small.
 
      d xmlBufferAllocationScheme...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_BUFFER_ALLOC_DOUBLEIT...
      d                 c                   0
      d  XML_BUFFER_ALLOC_EXACT...
@@ -88,8 +90,8 @@
      d xmlBuffer       ds                  based(xmlBufferPtr)
      d                                     align qualified
      d  content                        *                                        xmlChar *
-     d  use                          10u 0                                      The buffer size used
-     d  size                         10u 0                                      The buffer size
+     d  use                                like(xmlCuint)
+     d  size                               like(xmlCuint)
      d  alloc                              like(xmlBufferAllocationScheme)      The realloc method
      d  contentIO                      *                                        xmlChar *
 
@@ -109,12 +111,14 @@
      d xmlBufEnd       pr              *   extproc('xmlBufEnd')                 xmlChar *
      d  buf                                value like(xmlBufPtr)                const
 
-     d xmlBufUse       pr            10u 0 extproc('xmlBufUse')                 size_t
+     d xmlBufUse       pr                  extproc('xmlBufUse')
+     d                                     like(xmlCsize_t)
      d  buf                                value like(xmlBufPtr)                const
 
-     d xmlBufShrink    pr            10u 0 extproc('xmlBufShrink')              size_t
+     d xmlBufShrink    pr                  extproc('xmlBufShrink')
+     d                                     like(xmlCsize_t)
      d  buf                                value like(xmlBufPtr)
-     d  len                          10u 0 value                                size_t
+     d  len                                value like(xmlCsize_t)
 
       * LIBXML2_NEW_BUFFER:
       *
@@ -147,7 +151,8 @@
       * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
       * be deprecated to use an XML_DTD_NODE.
 
-     d xmlElementType  s             10i 0 based(######typedef######)           enum
+     d xmlElementType  s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_ELEMENT_NODE...
      d                 c                   1
      d  XML_ATTRIBUTE_NODE...
@@ -209,7 +214,8 @@
       * A DTD Attribute type definition.
 
      d xmlAttributeType...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_ATTRIBUTE_CDATA...
      d                 c                   1
      d  XML_ATTRIBUTE_ID...
@@ -236,7 +242,8 @@
       * A DTD Attribute default definition.
 
      d xmlAttributeDefault...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_ATTRIBUTE_NONE...
      d                 c                   1
      d  XML_ATTRIBUTE_REQUIRED...
@@ -295,7 +302,8 @@
       * Possible definitions of element content types.
 
      d xmlElementContentType...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_ELEMENT_CONTENT_PCDATA...
      d                 c                   1
      d  XML_ELEMENT_CONTENT_ELEMENT...
@@ -310,7 +318,8 @@
       * Possible definitions of element content occurrences.
 
      d xmlElementContentOccur...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_ELEMENT_CONTENT_ONCE...
      d                 c                   1
      d  XML_ELEMENT_CONTENT_OPT...
@@ -344,7 +353,8 @@
       * The different possibilities for an element content type.
 
      d xmlElementTypeVal...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_ELEMENT_TYPE_UNDEFINED...
      d                 c                   0
      d  XML_ELEMENT_TYPE_EMPTY...
@@ -466,7 +476,7 @@
      d  next                               like(xmlIdPtr)                       Next ID
      d  attr                               like(xmlAttrPtr)                     Attribute holding it
      d  name                           *                                        const xmlChar *
-     d  lineno                       10i 0                                      Line # if not avail
+     d  lineno                             like(xmlCint)                        Line # if not avail
      d  doc                                like(xmlDocPtr)                      Doc holding ID
 
       * xmlRef:
@@ -481,7 +491,7 @@
      d  value                          *                                        const xmlChar *
      d  attr                               like(xmlAttrPtr)                     Attribute holding it
      d  name                           *                                        const xmlChar *
-     d  lineno                       10i 0                                      Line # if not avail
+     d  lineno                             like(xmlCint)                        Line # if not avail
 
       * xmlNode:
       *
@@ -503,8 +513,8 @@
      d  properties                         like(xmlAttrPtr)                     Properties list
      d  nsDef                              like(xmlNsPtr)                       Node ns definitions
      d  psvi                           *                                        Type/PSVI info
-     d  line                          5u 0                                      Line number
-     d  extra                         5u 0                                      Data for XPath/XSLT
+     d  line                               like(xmlCushort)
+     d  extra                              like(xmlCushort)                     Data for XPath/XSLT
 
       * xmlDocProperty
       *
@@ -512,7 +522,8 @@
       * Some of them are linked to similary named xmlParserOption
 
      d xmlDocProperties...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_DOC_WELLFORMED...
      d                 c                   X'00000001'
      d  XML_DOC_NSVALID...
@@ -543,8 +554,8 @@
      d  next                               like(xmlNodePtr)                     next sibling link
      d  prev                               like(xmlNodePtr)                     previous sibling lnk
      d  doc                                like(xmlDocPtr)                      Reference to itself
-     d  compression                  10i 0                                      zlib compression lev
-     d  standalone                   10i 0
+     d  compression                        like(xmlCint)                        zlib compression lev
+     d  standalone                         like(xmlCint)
      d  intSubset                          like(xmlDtdPtr)                      Internal subset
      d  extSubset                          like(xmlDtdPtr)                      External subset
      d  oldns                              like(xmlNsPtr)                       Global namespace
@@ -553,11 +564,11 @@
      d  ids                            *                                        IDs hash table
      d  refs                           *                                        IDREFs hash table
      d  URL                            *                                        const xmlChar *
-     d  charset                      10i 0                                      In-memory encoding
+     d  charset                            like(xmlCint)                        In-memory encoding
      d  dict                           *                                        xmlDictPtr for names
      d  psvi                           *                                        Type/PSVI ino
-     d  parseFlags                   10i 0                                      xmlParserOption's
-     d  properties                   10i 0                                      xmlDocProperties
+     d  parseFlags                         like(xmlCint)                        xmlParserOption's
+     d  properties                         like(xmlCint)                        xmlDocProperties
 
       * xmlDOMWrapAcquireNsFunction:
       * @ctxt:  a DOM wrapper context
@@ -584,7 +595,7 @@
      d                 ds                  based(xmlDOMWrapCtxtPtr)
      d                                     align qualified
      d  #private                       *                                        void *
-     d  type                         10i 0
+     d  type                               like(xmlCint)
      d  namespaceMap                   *                                        void *
      d  getNsForNodeFunc...
      d                                     like(xmlDOMWrapAcquireNsFunction)
@@ -616,9 +627,10 @@
       /endif
       /if defined(XML_TESTVAL)
      d xmlValidateNCName...
-     d                 pr            10i 0 extproc('xmlValidateNCName')
+     d                 pr                  extproc('xmlValidateNCName')
+     d                                     like(xmlCint)
      d  value                          *   value options(*string)               const xmlChar *
-     d  space                        10i 0 value
+     d  space                              value like(xmlCint)
 
       /undefine XML_TESTVAL
       /endif
@@ -630,19 +642,22 @@
       /endif
       /if defined(XML_TESTVAL)
      d xmlValidateQName...
-     d                 pr            10i 0 extproc('xmlValidateQName')
+     d                 pr                  extproc('xmlValidateQName')
+     d                                     like(xmlCint)
      d  value                          *   value options(*string)               const xmlChar *
-     d  space                        10i 0 value
+     d  space                              value like(xmlCint)
 
      d xmlValidateName...
-     d                 pr            10i 0 extproc('xmlValidateName')
+     d                 pr                  extproc('xmlValidateName')
+     d                                     like(xmlCint)
      d  value                          *   value options(*string)               const xmlChar *
-     d  space                        10i 0 value
+     d  space                              value like(xmlCint)
 
      d xmlValidateNMToken...
-     d                 pr            10i 0 extproc('xmlValidateNMToken')
+     d                 pr                  extproc('xmlValidateNMToken')
+     d                                     like(xmlCint)
      d  value                          *   value options(*string)               const xmlChar *
-     d  space                        10i 0 value
+     d  space                              value like(xmlCint)
 
       /undefine XML_TESTVAL
       /endif
@@ -651,7 +666,7 @@
      d  ncname                         *   value options(*string)               const xmlChar *
      d  prefix                         *   value options(*string)               const xmlChar *
      d  memory                    65535    options(*varsize: *omit)             xmlChar[]
-     d  len                          10i 0 value                                memory length
+     d  len                                value like(xmlCint)                  memory length
 
      d xmlSplitQName2  pr              *   extproc('xmlSplitQName2')            xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
@@ -659,7 +674,7 @@
 
      d xmlSplitQName3  pr              *   extproc('xmlSplitQName3')            const xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
-     d  len                          10i 0
+     d  len                                like(xmlCint)
 
       * Handling Buffers, the old ones see @xmlBuf for the new ones.
 
@@ -681,53 +696,61 @@
      d xmlBufferCreateSize...
      d                 pr                  extproc('xmlBufferCreateSize')
      d                                     like(xmlBufferPtr)
-     d  size                         10u 0 value                                size_t
+     d  size                               value like(xmlCsize_t)
 
      d xmlBufferCreateStatic...
      d                 pr                  extproc('xmlBufferCreateStatic')
      d                                     like(xmlBufferPtr)
      d  mem                            *   value
-     d  size                         10u 0 value                                size_t
+     d  size                               value like(xmlCsize_t)
 
      d xmlBufferResize...
-     d                 pr            10i 0 extproc('xmlBufferResize')
+     d                 pr                  extproc('xmlBufferResize')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlBufferPtr)
-     d  size                         10u 0 value                                size_t
+     d  size                               value like(xmlCsize_t)
 
      d xmlBufferFree   pr                  extproc('xmlBufferFree')
      d  buf                                value like(xmlBufferPtr)
 
-     d xmlBufferDump   pr            10i 0 extproc('xmlBufferDump')
+     d xmlBufferDump   pr                  extproc('xmlBufferDump')
+     d                                     like(xmlCint)
      d  file                           *   value                                FILE *
      d  buf                                value like(xmlBufferPtr)
 
-     d xmlBufferAdd    pr            10i 0 extproc('xmlBufferAdd')
+     d xmlBufferAdd    pr                  extproc('xmlBufferAdd')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlBufferPtr)
      d  str                            *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value                                str length
+     d  len                                value like(xmlCint)                  str length
 
      d xmlBufferAddHead...
-     d                 pr            10i 0 extproc('xmlBufferAddHead')
+     d                 pr                  extproc('xmlBufferAddHead')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlBufferPtr)
      d  str                            *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value                                str length
+     d  len                                value like(xmlCint)                  str length
 
-     d xmlBufferCat    pr            10i 0 extproc('xmlBufferCat')
+     d xmlBufferCat    pr                  extproc('xmlBufferCat')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlBufferPtr)
      d  str                            *   value options(*string)               const xmlChar *
 
-     d xmlBufferCCat   pr            10i 0 extproc('xmlBufferCCat')
+     d xmlBufferCCat   pr                  extproc('xmlBufferCCat')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlBufferPtr)
      d  str                            *   value options(*string)               const char *
 
      d xmlBufferShrink...
-     d                 pr            10i 0 extproc('xmlBufferShrink')
+     d                 pr                  extproc('xmlBufferShrink')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlBufferPtr)
-     d  len                          10u 0 value                                str length
+     d  len                                value like(xmlCuint)
 
-     d xmlBufferGrow   pr            10i 0 extproc('xmlBufferGrow')
+     d xmlBufferGrow   pr                  extproc('xmlBufferGrow')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlBufferPtr)
-     d  len                          10u 0 value                                str length
+     d  len                                value like(xmlCuint)
 
      d xmlBufferEmpty  pr                  extproc('xmlBufferEmpty')
      d  buf                                value like(xmlBufferPtr)
@@ -748,7 +771,8 @@
      d                                     like(xmlBufferAllocationScheme)
 
      d xmlBufferLength...
-     d                 pr            10i 0 extproc('xmlBufferLength')
+     d                 pr                  extproc('xmlBufferLength')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlBufferPtr)
 
       * Creating/freeing new structures.
@@ -873,7 +897,7 @@
      d xmlCopyDoc      pr                  extproc('xmlCopyDoc')
      d                                     like(xmlDocPtr)
      d  doc                                value like(xmlDocPtr)
-     d  recursive                    10i 0 value
+     d  recursive                          value like(xmlCint)
 
       /undefine XML_TESTVAL
       /endif
@@ -947,12 +971,12 @@
      d                                     like(xmlNodePtr)
      d  doc                                value like(xmlDocPtr)
      d  content                        *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlNewTextLen   pr                  extproc('xmlNewTextLen')
      d                                     like(xmlNodePtr)
      d  content                        *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlNewDocComment...
      d                 pr                  extproc('xmlNewDocComment')
@@ -969,7 +993,7 @@
      d                                     like(xmlNodePtr)
      d  doc                                value like(xmlDocPtr)
      d  content                        *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlNewCharRef   pr                  extproc('xmlNewCharRef')
      d                                     like(xmlNodePtr)
@@ -985,13 +1009,13 @@
      d xmlCopyNode     pr                  extproc('xmlCopyNode')
      d                                     like(xmlNodePtr)
      d  node                               value like(xmlNodePtr)
-     d  recursive                    10i 0 value
+     d  recursive                          value like(xmlCint)
 
      d xmlDocCopyNode  pr                  extproc('xmlDocCopyNode')
      d                                     like(xmlNodePtr)
      d  node                               value like(xmlNodePtr)
      d  doc                                value like(xmlDocPtr)
-     d  recursive                    10i 0 value
+     d  recursive                          value like(xmlCint)
 
      d xmlDocCopyNodeList...
      d                 pr                  extproc('xmlDocCopyNodeList')
@@ -1030,7 +1054,8 @@
       * Navigating.
 
      d xmlNewDocFragment...
-     d xmlGetLineNo    pr            20i 0 extproc('xmlGetLineNo')
+     d xmlGetLineNo    pr                  extproc('xmlGetLineNo')
+     d                                     like(xmlClong)
      d  node                               value like(xmlNodePtr)
 
       /if defined(LIBXML_TREE_ENABLED)
@@ -1055,10 +1080,12 @@
      d                                     like(xmlNodePtr)
      d  parent                             value like(xmlNodePtr)
 
-     d xmlNodeIsText   pr            10i 0 extproc('xmlNodeIsText')
+     d xmlNodeIsText   pr                  extproc('xmlNodeIsText')
+     d                                     like(xmlCint)
      d  node                               value like(xmlNodePtr)
 
-     d xmlIsBlankNode  pr            10i 0 extproc('xmlIsBlankNode')
+     d xmlIsBlankNode  pr                  extproc('xmlIsBlankNode')
+     d                                     like(xmlCint)
      d  node                               value like(xmlNodePtr)
 
       * Changing the structure.
@@ -1145,10 +1172,11 @@
      d  first                              value like(xmlNodePtr)
      d  second                             value like(xmlNodePtr)
 
-     d xmlTextConcat   pr            10i 0 extproc('xmlTextConcat')
+     d xmlTextConcat   pr                  extproc('xmlTextConcat')
+     d                                     like(xmlCint)
      d  node                               value like(xmlNodePtr)
      d  content                        *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlFreeNodeList...
      d                 pr                  extproc('xmlFreeNodeList')
@@ -1272,20 +1300,20 @@
      d                                     like(xmlNodePtr)
      d  doc                                value like(xmlDocPtr)
      d  value                          *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlNodeListGetString...
      d                 pr              *   extproc('xmlNodeListGetString')      xmlChar *
      d  doc                                value like(xmlDocPtr)
      d  list                               value like(xmlNodePtr)
-     d  inLine                       10i 0 value
+     d  inLine                             value like(xmlCint)
 
       /if defined(LIBXML_TREE_ENABLED)
      d xmlNodeListGetRawString...
      d                 pr              *   extproc('xmlNodeListGetRawString')   xmlChar *
      d  doc                                value like(xmlDocPtr)
      d  list                               value like(xmlNodePtr)
-     d  inLine                       10i 0 value
+     d  inLine                             value like(xmlCint)
       /endif                                                                    LIBXML_TREE_ENABLED
 
      d xmlNodeSetContent...
@@ -1298,7 +1326,7 @@
      d                 pr                  extproc('xmlNodeSetContentLen')
      d  cur                                value like(xmlNodePtr)
      d  content                        *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
       /endif                                                                    LIBXML_TREE_ENABLED
 
      d xmlNodeAddContent...
@@ -1310,19 +1338,21 @@
      d                 pr                  extproc('xmlNodeAddContentLen')
      d  cur                                value like(xmlNodePtr)
      d  content                        *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlNodeGetContent...
      d                 pr              *   extproc('xmlNodeGetContent')         xmlChar *
      d  cur                                value like(xmlNodePtr)
 
      d xmlNodeBufGetContent...
-     d                 pr            10i 0 extproc('xmlNodeBufGetContent')
+     d                 pr                  extproc('xmlNodeBufGetContent')
+     d                                     like(xmlCint)
      d  buffer                             value like(xmlBufferPtr)
      d  cur                                value like(xmlNodePtr)
 
      d xmlBufGetNodeContent...
-     d                 pr            10i 0 extproc('xmlBufGetNodeContent')
+     d                 pr                  extproc('xmlBufGetNodeContent')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlBufPtr)
      d  cur                                value like(xmlNodePtr)
 
@@ -1330,7 +1360,8 @@
      d  cur                                value like(xmlNodePtr)
 
      d xmlNodeGetSpacePreserve...
-     d                 pr            10i 0 extproc('xmlNodeGetSpacePreserve')
+     d                 pr                  extproc('xmlNodeGetSpacePreserve')
+     d                                     like(xmlCint)
      d  cur                                value like(xmlNodePtr)
 
       /if defined(LIBXML_TREE_ENABLED)
@@ -1341,7 +1372,7 @@
      d xmlNodeSetSpacePreserve...
      d                 pr                  extproc('xmlNodeSetSpacePreserve')
      d  cur                                value like(xmlNodePtr)
-     d  val                          10i 0 value
+     d  val                                value like(xmlCint)
       /endif                                                                    LIBXML_TREE_ENABLED
 
      d xmlNodeGetBase  pr              *   extproc('xmlNodeGetBase')            xmlChar *
@@ -1363,7 +1394,8 @@
 
       * Removing content.
 
-     d xmlRemoveProp   pr            10i 0 extproc('xmlRemoveProp')
+     d xmlRemoveProp   pr                  extproc('xmlRemoveProp')
+     d                                     like(xmlCint)
      d  cur                                value like(xmlAttrPtr)
 
       /if defined(LIBXML_TREE_ENABLED)
@@ -1372,12 +1404,14 @@
       /define XML_TESTVAL
       /endif
       /if defined(XML_TESTVAL)
-     d xmlUnsetNsProp  pr            10i 0 extproc('xmlUnsetNsProp')
+     d xmlUnsetNsProp  pr                  extproc('xmlUnsetNsProp')
+     d                                     like(xmlCint)
      d  node                               value like(xmlNodePtr)
      d  ns                                 value like(xmlNsPtr)
      d  name                           *   value options(*string)               const xmlChar *
 
-     d xmlUnsetProp    pr            10i 0 extproc('xmlUnsetProp')
+     d xmlUnsetProp    pr                  extproc('xmlUnsetProp')
+     d                                     like(xmlCint)
      d  node                               value like(xmlNodePtr)
      d  name                           *   value options(*string)               const xmlChar *
 
@@ -1414,7 +1448,8 @@
       * Namespace handling.
 
      d xmlReconciliateNs...
-     d                 pr            10i 0 extproc('xmlReconciliateNs')
+     d                 pr                  extproc('xmlReconciliateNs')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  tree                               value like(xmlNodePtr)
       /endif
@@ -1427,37 +1462,39 @@
      d                 pr                  extproc('xmlDocDumpFormatMemory')
      d  cur                                value like(xmlDocPtr)
      d  mem                            *                                        xmlChar * (*)
-     d  size                         10i 0
-     d  format                       10i 0 value
+     d  size                               like(xmlCint)
+     d  format                             value like(xmlCint)
 
      d xmlDocDumpMemory...
      d                 pr                  extproc('xmlDocDumpMemory')
      d  cur                                value like(xmlDocPtr)
      d  mem                            *                                        xmlChar * (*)
-     d  size                         10i 0
+     d  size                               like(xmlCint)
 
      d xmlDocDumpMemoryEnc...
      d                 pr                  extproc('xmlDocDumpMemoryEnc')
      d  out_doc                            value like(xmlDocPtr)
      d  doc_txt_ptr                    *                                        xmlChar * (*)
-     d  doc_txt_len                  10i 0
+     d  doc_txt_len                        like(xmlCint)
      d  txt_encoding                   *   value options(*string)               const char *
 
      d xmlDocDumpFormatMemoryEnc...
      d                 pr                  extproc('xmlDocDumpFormatMemoryEnc')
      d  out_doc                            value like(xmlDocPtr)
      d  doc_txt_ptr                    *                                        xmlChar * (*)
-     d  doc_txt_len                  10i 0
+     d  doc_txt_len                        like(xmlCint)
      d  txt_encoding                   *   value options(*string)               const char *
-     d  format                       10i 0 value
+     d  format                             value like(xmlCint)
 
      d xmlDocFormatDump...
-     d                 pr            10i 0 extproc('xmlDocFormatDump')
+     d                 pr                  extproc('xmlDocFormatDump')
+     d                                     like(xmlCint)
      d  f                              *   value                                FILE *
      d  cur                                value like(xmlDocPtr)
-     d  format                       10i 0 value
+     d  format                             value like(xmlCint)
 
-     d xmlDocDump      pr            10i 0 extproc('xmlDocDump')
+     d xmlDocDump      pr                  extproc('xmlDocDump')
+     d                                     like(xmlCint)
      d  f                              *   value                                FILE *
      d  cur                                value like(xmlDocPtr)
 
@@ -1466,59 +1503,67 @@
      d  doc                                value like(xmlDocPtr)
      d  cur                                value like(xmlNodePtr)
 
-     d xmlSaveFile     pr            10i 0 extproc('xmlSaveFile')
+     d xmlSaveFile     pr                  extproc('xmlSaveFile')
+     d                                     like(xmlCint)
      d  filename                       *   value options(*string)               const char *
      d  cur                                value like(xmlDocPtr)
 
      d xmlSaveFormatFile...
-     d                 pr            10i 0 extproc('xmlSaveFormatFile')
+     d                 pr                  extproc('xmlSaveFormatFile')
+     d                                     like(xmlCint)
      d  filename                       *   value options(*string)               const char *
      d  cur                                value like(xmlDocPtr)
-     d  format                       10i 0 value
+     d  format                             value like(xmlCint)
 
-     d xmlBufNodeDump  pr            10u 0 extproc('xmlBufNodeDump')            size_t
+     d xmlBufNodeDump  pr                  extproc('xmlBufNodeDump')
+     d                                     like(xmlCsize_t)
      d  buf                                value like(xmlBufPtr)
      d  doc                                value like(xmlDocPtr)
      d  cur                                value like(xmlNodePtr)
-     d  level                        10i 0 value
-     d  format                       10i 0 value
+     d  level                              value like(xmlCint)
+     d  format                             value like(xmlCint)
 
-     d xmlNodeDump     pr            10i 0 extproc('xmlNodeDump')
+     d xmlNodeDump     pr                  extproc('xmlNodeDump')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlBufferPtr)
      d  doc                                value like(xmlDocPtr)
      d  cur                                value like(xmlNodePtr)
-     d  level                        10i 0 value
-     d  format                       10i 0 value
+     d  level                              value like(xmlCint)
+     d  format                             value like(xmlCint)
 
-     d xmlSaveFileTo   pr            10i 0 extproc('xmlSaveFileTo')
+     d xmlSaveFileTo   pr                  extproc('xmlSaveFileTo')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlOutputBufferPtr)
      d  cur                                value like(xmlDocPtr)
      d  encoding                       *   value options(*string)               const char *
 
      d xmlSaveFormatFileTo...
-     d                 pr            10i 0 extproc('xmlSaveFormatFileTo')
+     d                 pr                  extproc('xmlSaveFormatFileTo')
+     d                                     like(xmlCint)
      d  buf                                value like(xmlOutputBufferPtr)
      d  cur                                value like(xmlDocPtr)
      d  encoding                       *   value options(*string)               const char *
-     d  format                       10i 0 value
+     d  format                             value like(xmlCint)
 
      d xmlNodeDumpOutput...
      d                 pr                  extproc('xmlNodeDumpOutput')
      d  buf                                value like(xmlOutputBufferPtr)
      d  doc                                value like(xmlDocPtr)
      d  cur                                value like(xmlNodePtr)
-     d  level                        10i 0 value
-     d  format                       10i 0 value
+     d  level                              value like(xmlCint)
+     d  format                             value like(xmlCint)
      d  encoding                       *   value options(*string)               const char *
 
      d xmlSaveFormatFileEnc...
-     d                 pr            10i 0 extproc('xmlSaveFormatFileEnc')
+     d                 pr                  extproc('xmlSaveFormatFileEnc')
+     d                                     like(xmlCint)
      d  filename                       *   value options(*string)               const char *
      d  cur                                value like(xmlDocPtr)
      d  encoding                       *   value options(*string)               const char *
-     d  format                       10i 0 value
+     d  format                             value like(xmlCint)
 
-     d xmlSaveFileEnc  pr            10i 0 extproc('xmlSaveFileEnc')
+     d xmlSaveFileEnc  pr                  extproc('xmlSaveFileEnc')
+     d                                     like(xmlCint)
      d  filename                       *   value options(*string)               const char *
      d  cur                                value like(xmlDocPtr)
      d  encoding                       *   value options(*string)               const char *
@@ -1526,27 +1571,30 @@
 
       * XHTML
 
-     d xmlIsXHTML      pr            10i 0 extproc('xmlIsXHTML')
+     d xmlIsXHTML      pr                  extproc('xmlIsXHTML')
+     d                                     like(xmlCint)
      d  systemID                       *   value options(*string)               const xmlChar *
      d  publicID                       *   value options(*string)               const xmlChar *
 
       * Compression.
 
      d xmlGetDocCompressMode...
-     d                 pr            10i 0 extproc('xmlGetDocCompressMode')
+     d                 pr                  extproc('xmlGetDocCompressMode')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
 
      d xmlSetDocCompressMode...
      d                 pr                  extproc('xmlSetDocCompressMode')
      d  doc                                value like(xmlDocPtr)
-     d  mode                         10i 0 value
+     d  mode                               value like(xmlCint)
 
      d xmlGetCompressMode...
-     d                 pr            10i 0 extproc('xmlGetCompressMode')
+     d                 pr                  extproc('xmlGetCompressMode')
+     d                                     like(xmlCint)
 
      d xmlSetCompressMode...
      d                 pr                  extproc('xmlSetCompressMode')
-     d  mode                         10i 0 value
+     d  mode                               value like(xmlCint)
 
       * DOM-wrapper helper functions.
 
@@ -1559,37 +1607,41 @@
      d  ctxt                               value like(xmlDOMWrapCtxtPtr)
 
      d xmlDOMWrapReconcileNamespaces...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                      'xmlDOMWrapReconcileNamespaces')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlDOMWrapCtxtPtr)
      d  elem                               value like(xmlNodePtr)
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlDOMWrapAdoptNode...
-     d                 pr            10i 0 extproc('xmlDOMWrapAdoptNode')
+     d                 pr                  extproc('xmlDOMWrapAdoptNode')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlDOMWrapCtxtPtr)
      d  sourceDoc                          value like(xmlDocPtr)
      d  node                               value like(xmlNodePtr)
      d  destDoc                            value like(xmlDocPtr)
      d  destParent                         value like(xmlNodePtr)
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlDOMWrapRemoveNode...
-     d                 pr            10i 0 extproc('xmlDOMWrapRemoveNode')
+     d                 pr                  extproc('xmlDOMWrapRemoveNode')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlDOMWrapCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  node                               value like(xmlNodePtr)
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlDOMWrapCloneNode...
-     d                 pr            10i 0 extproc('xmlDOMWrapCloneNode')
+     d                 pr                  extproc('xmlDOMWrapCloneNode')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlDOMWrapCtxtPtr)
      d  sourceDoc                          value like(xmlDocPtr)
      d  node                               value like(xmlNodePtr)
      d  clonedNode                         like(xmlNodePtr)
      d  destDoc                            value like(xmlDocPtr)
      d  destParent                         value like(xmlNodePtr)
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
       /if defined(LIBXML_TREE_ENABLED)
 
@@ -1597,7 +1649,8 @@
       * traversal.
 
      d xmlChildElementCount...
-     d                 pr            20u 0 extproc('xmlChildElementCount')
+     d                 pr                  extproc('xmlChildElementCount')
+     d                                     like(xmlClong)
      d  parent                             value like(xmlNodePtr)
 
      d xmlNextElementSibling...
diff --git a/os400/libxmlrpg/uri.rpgle b/os400/libxmlrpg/uri.rpgle
index 9a23d80..de03392 100644
--- a/os400/libxmlrpg/uri.rpgle
+++ b/os400/libxmlrpg/uri.rpgle
@@ -10,6 +10,7 @@
       /define XML_URI_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/tree"
 
       * xmlURI:
@@ -30,11 +31,11 @@
      d  authority                      *                                        char *
      d  server                         *                                        char *
      d  user                           *                                        char *
-     d  port                         10i 0
+     d  port                               like(xmlCint)
      d  path                           *                                        char *
      d  query                          *                                        char *
      d  fragment                       *                                        char *
-     d  cleanup                      10i 0
+     d  cleanup                            like(xmlCint)
      d  query_raw                      *                                        char *
 
      d xmlCreateURI    pr                  extproc('xmlCreateURI')
@@ -56,10 +57,11 @@
      d xmlParseURIRaw  pr                  extproc('xmlParseURIRaw')
      d                                     like(xmlURIPtr)
      d  str                            *   value options(*string)               const char *
-     d  raw                          10i 0 value
+     d  raw                                value like(xmlCint)
 
      d xmlParseURIReference...
-     d                 pr            10i 0 extproc('xmlParseURIReference')
+     d                 pr                  extproc('xmlParseURIReference')
+     d                                     like(xmlCint)
      d  uri                                value like(xmlURIPtr)
      d  str                            *   value options(*string)               const char *
 
@@ -78,11 +80,12 @@
      d xmlURIUnescapeString...
      d                 pr              *   extproc('xmlURIUnescapeString')      char *
      d  str                            *   value options(*string)               const char *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
      d  target                         *   value options(*string)               char *
 
      d xmlNormalizeURIPath...
-     d                 pr            10i 0 extproc('xmlNormalizeURIPath')
+     d                 pr                  extproc('xmlNormalizeURIPath')
+     d                                     like(xmlCint)
      d  path                           *   value options(*string)               char *
 
      d xmlURIEscape    pr              *   extproc('xmlURIEscape')              xmlChar *
diff --git a/os400/libxmlrpg/valid.rpgle b/os400/libxmlrpg/valid.rpgle
index 722b89d..32ebbd3 100644
--- a/os400/libxmlrpg/valid.rpgle
+++ b/os400/libxmlrpg/valid.rpgle
@@ -9,6 +9,7 @@
       /define XML_VALID_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/xmlerror"
       /include "libxmlrpg/tree"
       /include "libxmlrpg/list"
@@ -63,19 +64,19 @@
       * Node analysis stack used when validating within entities
       *
      d  node                               like(xmlNodePtr)                     Current parsed Node
-     d  nodeNr                       10i 0                                      Parsing stack depth
-     d  nodeMax                      10i 0                                      Max stack depth
+     d  nodeNr                             like(xmlCint)                        Parsing stack depth
+     d  nodeMax                            like(xmlCint)                        Max stack depth
      d  nodeTab                        *                                        xmlNodePtr *
       *
-     d  finishDtd                    10u 0                                      Finish validtng DTD?
+     d  finishDtd                          like(xmlCuint)
      d  doc                                like(xmlDocPtr)                      The document
-     d  valid                        10i 0                                      Temp check result
+     d  valid                              like(xmlCint)                        Temp check result
       *
       * state state used for non-determinist content validation
       *
      d  vstate                         *                                        xmlValidState *
-     d  vstateNr                     10i 0                                      Validat. stack depth
-     d  vstateMax                    10i 0                                      Max stack depth
+     d  vstateNr                           like(xmlCint)                        Validat. stack depth
+     d  vstateMax                          like(xmlCint)                        Max stack depth
      d  vstateTab                      *                                        xmlValidState *
       *
       /if defined(LIBXML_REGEXP_ENABLED)
@@ -189,9 +190,9 @@
      d xmlSnprintfElementContent...
      d                 pr                  extproc('xmlSnprintfElementContent')
      d  buf                       65535    options(*varsize)
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  content                            value like(xmlElementContentPtr)
-     d  englob                       10i 0 value
+     d  englob                             value like(xmlCint)
 
       /if defined(LIBXML_OUTPUT_ENABLED)
       * DEPRECATED
@@ -199,7 +200,7 @@
      d                 pr                  extproc('xmlSprintfElementContent')
      d  buf                       65535    options(*varsize)
      d  content                            value like(xmlElementContentPtr)
-     d  englob                       10i 0 value
+     d  englob                             value like(xmlCint)
       /endif                                                                    LIBXML_OUTPUT_ENABLD
 
       * DEPRECATED
@@ -311,12 +312,14 @@
      d  doc                                value like(xmlDocPtr)
      d  ID                             *   value options(*string)               const xmlChar *
 
-     d xmlIsID         pr            10i 0 extproc('xmlIsID')
+     d xmlIsID         pr                  extproc('xmlIsID')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  node                               value like(xmlNodePtr)
      d  attr                               value like(xmlAttrPtr)
 
-     d xmlRemoveID     pr            10i 0 extproc('xmlRemoveID')
+     d xmlRemoveID     pr                  extproc('xmlRemoveID')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  attr                               value like(xmlAttrPtr)
 
@@ -333,12 +336,14 @@
      d                 pr                  extproc('xmlFreeRefTable')
      d  table                              value like(xmlRefTablePtr)
 
-     d xmlIsRef        pr            10i 0 extproc('xmlIsRef')
+     d xmlIsRef        pr                  extproc('xmlIsRef')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  node                               value like(xmlNodePtr)
      d  attr                               value like(xmlAttrPtr)
 
-     d xmlRemoveRef    pr            10i 0 extproc('xmlRemoveRef')
+     d xmlRemoveRef    pr                  extproc('xmlRemoveRef')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  attr                               value like(xmlAttrPtr)
 
@@ -361,12 +366,14 @@
      d  ctxt                               value like(xmlValidCtxtPtr)
 
      d xmlValidateRoot...
-     d                 pr            10i 0 extproc('xmlValidateRoot')
+     d                 pr                  extproc('xmlValidateRoot')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
 
      d xmlValidateElementDecl...
-     d                 pr            10i 0 extproc('xmlValidateElementDecl')
+     d                 pr                  extproc('xmlValidateElementDecl')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  elem                               value like(xmlElementPtr)
@@ -389,51 +396,60 @@
      d  value                          *   value options(*string)               const xmlChar *
 
      d xmlValidateAttributeDecl...
-     d                 pr            10i 0 extproc('xmlValidateAttributeDecl')
+     d                 pr                  extproc('xmlValidateAttributeDecl')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  attr                               value like(xmlAttributePtr)
 
      d xmlValidateAttributeValue...
-     d                 pr            10i 0 extproc('xmlValidateAttributeValue')
+     d                 pr                  extproc('xmlValidateAttributeValue')
+     d                                     like(xmlCint)
      d  type                               value like(xmlAttributeType)
      d  value                          *   value options(*string)               const xmlChar *
 
      d xmlValidateNotationDecl...
-     d                 pr            10i 0 extproc('xmlValidateNotationDecl')
+     d                 pr                  extproc('xmlValidateNotationDecl')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  nota                               value like(xmlNotationPtr)
 
-     d xmlValidateDtd  pr            10i 0 extproc('xmlValidateDtd')
+     d xmlValidateDtd  pr                  extproc('xmlValidateDtd')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  dtd                                value like(xmlDtdPtr)
 
      d xmlValidateDtdFinal...
-     d                 pr            10i 0 extproc('xmlValidateDtdFinal')
+     d                 pr                  extproc('xmlValidateDtdFinal')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
 
      d xmlValidateDocument...
-     d                 pr            10i 0 extproc('xmlValidateDocument')
+     d                 pr                  extproc('xmlValidateDocument')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
 
      d xmlValidateElement...
-     d                 pr            10i 0 extproc('xmlValidateElement')
+     d                 pr                  extproc('xmlValidateElement')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  elem                               value like(xmlNodePtr)
 
      d xmlValidateOneElement...
-     d                 pr            10i 0 extproc('xmlValidateOneElement')
+     d                 pr                  extproc('xmlValidateOneElement')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  elem                               value like(xmlNodePtr)
 
      d xmlValidateOneAttribute...
-     d                 pr            10i 0 extproc('xmlValidateOneAttribute')
+     d                 pr                  extproc('xmlValidateOneAttribute')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  elem                               value like(xmlNodePtr)
@@ -441,7 +457,8 @@
      d  value                          *   value options(*string)               const xmlChar *
 
      d xmlValidateOneNamespace...
-     d                 pr            10i 0 extproc('xmlValidateOneNamespace')
+     d                 pr                  extproc('xmlValidateOneNamespace')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  elem                               value like(xmlNodePtr)
@@ -450,7 +467,8 @@
      d  value                          *   value options(*string)               const xmlChar *
 
      d xmlValidateDocumentFinal...
-     d                 pr            10i 0 extproc('xmlValidateDocumentFinal')
+     d                 pr                  extproc('xmlValidateDocumentFinal')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
       /endif                                                                    LIBXML_VALID_ENABLED
@@ -463,7 +481,8 @@
       /endif
       /if defined(XML_TESTVAL)
      d xmlValidateNotationUse...
-     d                 pr            10i 0 extproc('xmlValidateNotationUse')
+     d                 pr                  extproc('xmlValidateNotationUse')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  notationName                   *   value options(*string)               const xmlChar *
@@ -472,7 +491,8 @@
       /endif
 
      d xmlIsMixedElement...
-     d                 pr            10i 0 extproc('xmlIsMixedElement')
+     d                 pr                  extproc('xmlIsMixedElement')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
      d  name                           *   value options(*string)               const xmlChar *
 
@@ -512,59 +532,69 @@
 
       /if defined(LIBXML_VALID_ENABLED)
      d xmlValidGetPotentialChildren...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                      'xmlValidGetPotentialChildren')
+     d                                     like(xmlCint)
      d  ctree                          *   value                                xmlElementContent *
      d  names                          *                                        const xmlChar *(*)
-     d  len                          10i 0
-     d  max                          10i 0 value
+     d  len                                like(xmlCint)
+     d  max                                value like(xmlCint)
 
      d xmlValidGetValidElements...
-     d                 pr            10i 0 extproc('xmlValidGetValidElements')
+     d                 pr                  extproc('xmlValidGetValidElements')
+     d                                     like(xmlCint)
      d  prev                               like(xmlNodePtr)
      d  next                               like(xmlNodePtr)
      d  names                          *                                        const xmlChar *(*)
-     d  max                          10i 0 value
+     d  max                                value like(xmlCint)
 
      d xmlValidateNameValue...
-     d                 pr            10i 0 extproc('xmlValidateNameValue')
+     d                 pr                  extproc('xmlValidateNameValue')
+     d                                     like(xmlCint)
      d  value                          *   value options(*string)               const xmlChar *
 
      d xmlValidateNamesValue...
-     d                 pr            10i 0 extproc('xmlValidateNamesValue')
+     d                 pr                  extproc('xmlValidateNamesValue')
+     d                                     like(xmlCint)
      d  value                          *   value options(*string)               const xmlChar *
 
      d xmlValidateNmtokenValue...
-     d                 pr            10i 0 extproc('xmlValidateNmtokenValue')
+     d                 pr                  extproc('xmlValidateNmtokenValue')
+     d                                     like(xmlCint)
      d  value                          *   value options(*string)               const xmlChar *
 
      d xmlValidateNmtokensValue...
-     d                 pr            10i 0 extproc('xmlValidateNmtokensValue')
+     d                 pr                  extproc('xmlValidateNmtokensValue')
+     d                                     like(xmlCint)
      d  value                          *   value options(*string)               const xmlChar *
 
       /if defined(LIBXML_REGEXP_ENABLED)
       * Validation based on the regexp support
 
      d xmlValidBuildContentModel...
-     d                 pr            10i 0 extproc('xmlValidBuildContentModel')
+     d                 pr                  extproc('xmlValidBuildContentModel')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  elem                               value like(xmlElementPtr)
 
      d xmlValidatePushElement...
-     d                 pr            10i 0 extproc('xmlValidatePushElement')
+     d                 pr                  extproc('xmlValidatePushElement')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  elem                               value like(xmlNodePtr)
      d  qname                          *   value options(*string)               const xmlChar *
 
      d xmlValidatePushCData...
-     d                 pr            10i 0 extproc('xmlValidatePushCData')
+     d                 pr                  extproc('xmlValidatePushCData')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  data                           *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlValidatePopElement...
-     d                 pr            10i 0 extproc('xmlValidatePopElement')
+     d                 pr                  extproc('xmlValidatePopElement')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlValidCtxtPtr)
      d  doc                                value like(xmlDocPtr)
      d  elem                               value like(xmlNodePtr)
diff --git a/os400/libxmlrpg/xinclude.rpgle b/os400/libxmlrpg/xinclude.rpgle
index c0b68ff..93b7c51 100644
--- a/os400/libxmlrpg/xinclude.rpgle
+++ b/os400/libxmlrpg/xinclude.rpgle
@@ -12,6 +12,7 @@
       /define XML_XINCLUDE_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/tree"
 
       /if defined(LIBXML_XINCLUDE_ENABLED)
@@ -89,37 +90,43 @@
       * standalone processing
 
      d xmlXIncludeProcess...
-     d                 pr            10i 0 extproc('xmlXIncludeProcess')
+     d                 pr                  extproc('xmlXIncludeProcess')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
 
      d xmlXIncludeProcessFlags...
-     d                 pr            10i 0 extproc('xmlXIncludeProcessFlags')
+     d                 pr                  extproc('xmlXIncludeProcessFlags')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
-     d  flags                        10i 0 value
+     d  flags                              value like(xmlCint)
 
      d xmlXIncludeProcessFlagsData...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlXIncludeProcessFlagsData')
+     d                                     like(xmlCint)
      d  doc                                value like(xmlDocPtr)
-     d  flags                        10i 0 value
+     d  flags                              value like(xmlCint)
      d  data                           *   value                                void *
 
      d xmlXIncludeProcessTreeFlagsData...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlXIncludeProcessTreeFlagsData')
+     d                                     like(xmlCint)
      d  tree                               value like(xmlNodePtr)
-     d  flags                        10i 0 value
+     d  flags                              value like(xmlCint)
      d  data                           *   value                                void *
 
      d xmlXIncludeProcessTree...
-     d                 pr            10i 0 extproc('xmlXIncludeProcessTree')
+     d                 pr                  extproc('xmlXIncludeProcessTree')
+     d                                     like(xmlCint)
      d  tree                               value like(xmlNodePtr)
 
      d xmlXIncludeProcessTreeFlags...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlXIncludeProcessTreeFlags')
+     d                                     like(xmlCint)
      d  tree                               value like(xmlNodePtr)
-     d  flags                        10i 0 value
+     d  flags                              value like(xmlCint)
 
 
       * contextual processing
@@ -130,16 +137,18 @@
      d  doc                                value like(xmlDocPtr)
 
      d xmlXIncludeSetFlags...
-     d                 pr            10i 0 extproc('xmlXIncludeSetFlags')
+     d                 pr                  extproc('xmlXIncludeSetFlags')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXIncludeCtxtPtr)
-     d  flags                        10i 0 value
+     d  flags                              value like(xmlCint)
 
      d xmlXIncludeFreeContext...
      d                 pr                  extproc('xmlXIncludeFreeContext')
      d  ctxt                               value like(xmlXIncludeCtxtPtr)
 
      d xmlXIncludeProcessNode...
-     d                 pr            10i 0 extproc('xmlXIncludeProcessNode')
+     d                 pr                  extproc('xmlXIncludeProcessNode')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXIncludeCtxtPtr)
      d  tree                               value like(xmlNodePtr)
 
diff --git a/os400/libxmlrpg/xlink.rpgle b/os400/libxmlrpg/xlink.rpgle
index 964e605..e6ebdc6 100644
--- a/os400/libxmlrpg/xlink.rpgle
+++ b/os400/libxmlrpg/xlink.rpgle
@@ -9,10 +9,12 @@
       /define XML_XLINK_H__
 
       /include "libxmlrpg/xmlversion"
-      /include "libxmlrpg/tree"
 
       /if defined(LIBXML_XPTR_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+      /include "libxmlrpg/tree"
+
       * Various defines for the various Link properties.
       *
       * NOTE: the link detection layer will try to resolve QName expansion
@@ -26,7 +28,8 @@
      d xlinkRole       s               *   based(######typedef######)           xmlChar *
      d xlinkTitle      s               *   based(######typedef######)           xmlChar *
 
-     d xlinkType       s             10i 0 based(######typedef######)           enum
+     d xlinkType       s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XLINK_TYPE_NONE...
      d                 c                   0
      d  XLINK_TYPE_SIMPLE...
@@ -36,7 +39,8 @@
      d  XLINK_TYPE_EXTENDED_SET...
      d                 c                   3
 
-     d xlinkShow       s             10i 0 based(######typedef######)           enum
+     d xlinkShow       s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XLINK_SHOW_NONE...
      d                 c                   0
      d  XLINK_SHOW_NEW...
@@ -46,7 +50,8 @@
      d  XLINK_SHOW_REPLACE...
      d                 c                   3
 
-     d xlinkActuate    s             10i 0 based(######typedef######)           enum
+     d xlinkActuate    s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XLINK_ACTUATE_NONE...
      d                 c                   0
      d  XLINK_ACTUATE_AUTO...
diff --git a/os400/libxmlrpg/xmlIO.rpgle b/os400/libxmlrpg/xmlIO.rpgle
index 72911bc..6c0afcc 100644
--- a/os400/libxmlrpg/xmlIO.rpgle
+++ b/os400/libxmlrpg/xmlIO.rpgle
@@ -9,6 +9,7 @@
       /define XML_IO_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
 
       * Those are the functions and datatypes for the parser input
       * I/O structures.
@@ -129,9 +130,9 @@
       *
      d  buffer                             like(xmlBufPtr)                      UTF-8 local buffer
      d  raw                                like(xmlBufPtr)                      Raw input buffer
-     d  compressed                   10i 0
-     d  error                        10i 0
-     d  rawconsumed                  20u 0
+     d  compressed                         like(xmlCint)
+     d  error                              like(xmlCint)
+     d  rawconsumed                        like(xmlCulong)
 
       /if defined(LIBXML_OUTPUT_ENABLED)
      d xmlOutputBuffer...
@@ -145,8 +146,8 @@
       *
      d  buffer                             like(xmlBufPtr)                      UTF-8/ISOLatin local
      d  conv                               like(xmlBufPtr)                      Buffer for output
-     d  written                      10i 0                                      Total # byte written
-     d  error                        10i 0
+     d  written                            like(xmlCint)                        Total # byte written
+     d  error                              like(xmlCint)
       /endif                                                                    LIBXML_OUTPUT_ENABLD
 
       * Interfaces for input
@@ -155,7 +156,8 @@
      d                 pr                  extproc('xmlCleanupInputCallbacks')
 
      d xmlPopInputCallbacks...
-     d                 pr            10i 0 extproc('xmlPopInputCallbacks')
+     d                 pr                  extproc('xmlPopInputCallbacks')
+     d                                     like(xmlCint)
 
      d xmlRegisterDefaultInputCallbacks...
      d                 pr                  extproc(
@@ -184,7 +186,7 @@
      d                 pr                  extproc(
      d                                      'xmlParserInputBufferCreateFd')
      d                                     like(xmlParserInputBufferPtr)
-     d  fd                           10i 0 value
+     d  fd                                 value like(xmlCint)
      d  enc                                value like(xmlCharEncoding)
 
      d xmlParserInputBufferCreateMem...
@@ -192,7 +194,7 @@
      d                                      'xmlParserInputBufferCreateMem')
      d                                     like(xmlParserInputBufferPtr)
      d  mem                            *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  enc                                value like(xmlCharEncoding)
 
      d xmlParserInputBufferCreateStatic...
@@ -200,7 +202,7 @@
      d                                      'xmlParserInputBufferCreateStatic')
      d                                     like(xmlParserInputBufferPtr)
      d  mem                            *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  enc                                value like(xmlCharEncoding)
 
      d xmlParserInputBufferCreateIO...
@@ -213,19 +215,22 @@
      d  enc                                value like(xmlCharEncoding)
 
      d xmlParserInputBufferRead...
-     d                 pr            10i 0 extproc('xmlParserInputBufferRead')
+     d                 pr                  extproc('xmlParserInputBufferRead')
+     d                                     like(xmlCint)
      d  in                                 value like(xmlParserInputBufferPtr)
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlParserInputBufferGrow...
-     d                 pr            10i 0 extproc('xmlParserInputBufferGrow')
+     d                 pr                  extproc('xmlParserInputBufferGrow')
+     d                                     like(xmlCint)
      d  in                                 value like(xmlParserInputBufferPtr)
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlParserInputBufferPush...
-     d                 pr            10i 0 extproc('xmlParserInputBufferPush')
+     d                 pr                  extproc('xmlParserInputBufferPush')
+     d                                     like(xmlCint)
      d  in                                 value like(xmlParserInputBufferPtr)
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
      d  buf                            *   value options(*string)               const char *
 
      d xmlFreeParserInputBuffer...
@@ -237,7 +242,8 @@
      d  filename                       *   value options(*string)               const char *
 
      d xmlRegisterInputCallbacks...
-     d                 pr            10i 0 extproc('xmlRegisterInputCallbacks')
+     d                 pr                  extproc('xmlRegisterInputCallbacks')
+     d                                     like(xmlCint)
      d  matchFunc                          value like(xmlInputMatchCallback)
      d  openFunc                           value like(xmlInputOpenCallback)
      d  readFunc                           value like(xmlInputReadCallback)
@@ -267,7 +273,7 @@
      d  URI                            *   value options(*string)               const char *
      d  encoder                            value
      d                                     like(xmlCharEncodingHandlerPtr)
-     d  compression                  10i 0 value
+     d  compression                        value like(xmlCint)
 
      d xmlOutputBufferCreateFile...
      d                 pr                  extproc('xmlOutputBufferCreateFile')
@@ -287,7 +293,7 @@
      d xmlOutputBufferCreateFd...
      d                 pr                  extproc('xmlOutputBufferCreateFd')
      d                                     like(xmlOutputBufferPtr)
-     d  fd                           10i 0 value
+     d  fd                                 value like(xmlCint)
      d  encoder                            value
      d                                     like(xmlCharEncodingHandlerPtr)
 
@@ -307,36 +313,43 @@
      d  out                                value like(xmlOutputBufferPtr)
 
      d xmlOutputBufferGetSize...
-     d                 pr            10u 0 extproc('xmlOutputBufferGetSize')    size_t
+     d                 pr                  extproc('xmlOutputBufferGetSize')
+     d                                     like(xmlCsize_t)
      d  out                                value like(xmlOutputBufferPtr)
 
      d xmlOutputBufferWrite...
-     d                 pr            10i 0 extproc('xmlOutputBufferWrite')
+     d                 pr                  extproc('xmlOutputBufferWrite')
+     d                                     like(xmlCint)
      d  out                                value like(xmlOutputBufferPtr)
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
      d  buf                            *   value options(*string)               const char *
 
      d xmlOutputBufferWriteString...
-     d                 pr            10i 0 extproc('xmlOutputBufferWriteString')
+     d                 pr                  extproc('xmlOutputBufferWriteString')
+     d                                     like(xmlCint)
      d  out                                value like(xmlOutputBufferPtr)
      d  str                            *   value options(*string)               const char *
 
      d xmlOutputBufferWriteEscape...
-     d                 pr            10i 0 extproc('xmlOutputBufferWriteEscape')
+     d                 pr                  extproc('xmlOutputBufferWriteEscape')
+     d                                     like(xmlCint)
      d  out                                value like(xmlOutputBufferPtr)
      d  str                            *   value options(*string)               const xmlChar *
      d  escaping                           value like(xmlCharEncodingOutputFunc)
 
      d xmlOutputBufferFlush...
-     d                 pr            10i 0 extproc('xmlOutputBufferFlush')
+     d                 pr                  extproc('xmlOutputBufferFlush')
+     d                                     like(xmlCint)
      d  out                                value like(xmlOutputBufferPtr)
 
      d xmlOutputBufferClose...
-     d                 pr            10i 0 extproc('xmlOutputBufferClose')
+     d                 pr                  extproc('xmlOutputBufferClose')
+     d                                     like(xmlCint)
      d  out                                value like(xmlOutputBufferPtr)
 
      d xmlRegisterOutputCallbacks...
-     d                 pr            10i 0 extproc('xmlRegisterOutputCallbacks')
+     d                 pr                  extproc('xmlRegisterOutputCallbacks')
+     d                                     like(xmlCint)
      d  matchFunc                          value like(xmlOutputMatchCallback)
      d  openFunc                           value like(xmlOutputOpenCallback)
      d  writeFunc                          value like(xmlOutputWriteCallback)
@@ -377,29 +390,34 @@
      d  path                           *   value options(*string)               const xmlChar *
 
      d xmlCheckFilename...
-     d                 pr            10i 0 extproc('xmlCheckFilename')
+     d                 pr                  extproc('xmlCheckFilename')
+     d                                     like(xmlCint)
      d  path                           *   value options(*string)               const char *
 
       * Default 'file://' protocol callbacks
 
-     d xmlFileMatch    pr            10i 0 extproc('xmlFileMatch')
+     d xmlFileMatch    pr                  extproc('xmlFileMatch')
+     d                                     like(xmlCint)
      d  filename                       *   value options(*string)               const char *
 
      d xmlFileOpen     pr              *   extproc('xmlFileOpen')               void *
      d  filename                       *   value options(*string)               const char *
 
-     d xmlFileRead     pr            10i 0 extproc('xmlFileRead')
+     d xmlFileRead     pr                  extproc('xmlFileRead')
+     d                                     like(xmlCint)
      d  context                        *   value                                void *
      d  buffer                    65535    options(*varsize)
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
-     d xmlFileClose    pr            10i 0 extproc('xmlFileClose')
+     d xmlFileClose    pr                  extproc('xmlFileClose')
+     d                                     like(xmlCint)
      d  context                        *   value                                void *
 
       * Default 'http://' protocol callbacks
 
       /if defined(LIBXML_HTTP_ENABLED)
-     d xmlIOHTTPMatch  pr            10i 0 extproc('xmlIOHTTPMatch')
+     d xmlIOHTTPMatch  pr                  extproc('xmlIOHTTPMatch')
+     d                                     like(xmlCint)
      d  filename                       *   value options(*string)               const char *
 
      d xmlIOHTTPOpen   pr              *   extproc('xmlIOHTTPOpen')             void *
@@ -408,33 +426,38 @@
       /if defined(LIBXML_OUTPUT_ENABLED)
      d xmlIOHTTPOpenW  pr              *   extproc('xmlIOHTTPOpenW')            void *
      d  post_uri                       *   value options(*string)               const char *
-     d  compression                  10i 0 value
+     d  compression                        value like(xmlCint)
       /endif                                                                    LIBXML_OUTPUT_ENABLD
 
-     d xmlIOHTTPRead   pr            10i 0 extproc('xmlIOHTTPRead')
+     d xmlIOHTTPRead   pr                  extproc('xmlIOHTTPRead')
+     d                                     like(xmlCint)
      d  context                        *   value                                void *
      d  buffer                    65535    options(*varsize)
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
-     d xmlIOHTTPClose  pr            10i 0 extproc('xmlIOHTTPClose')
+     d xmlIOHTTPClose  pr                  extproc('xmlIOHTTPClose')
+     d                                     like(xmlCint)
      d  context                        *   value                                void *
       /endif                                                                    LIBXML_HTTP_ENABLED
 
       * Default 'ftp://' protocol callbacks
 
       /if defined(LIBXML_FTP_ENABLED)
-     d xmlIOFTPMatch   pr            10i 0 extproc('xmlIOFTPMatch')
+     d xmlIOFTPMatch   pr                  extproc('xmlIOFTPMatch')
+     d                                     like(xmlCint)
      d  filename                       *   value options(*string)               const char *
 
      d xmlIOFTPOpen    pr              *   extproc('xmlIOFTPOpen')              void *
      d  filename                       *   value options(*string)               const char *
 
-     d xmlIOFTPRead    pr            10i 0 extproc('xmlIOFTPRead')
+     d xmlIOFTPRead    pr                  extproc('xmlIOFTPRead')
+     d                                     like(xmlCint)
      d  context                        *   value                                void *
      d  buffer                    65535    options(*varsize)
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
-     d xmlIOFTPClose   pr            10i 0 extproc('xmlIOFTPClose')
+     d xmlIOFTPClose   pr                  extproc('xmlIOFTPClose')
+     d                                     like(xmlCint)
      d  context                        *   value                                void *
       /endif                                                                    LIBXML_FTP_ENABLED
 
diff --git a/os400/libxmlrpg/xmlTypesC.rpgle b/os400/libxmlrpg/xmlTypesC.rpgle
new file mode 100644
index 0000000..48a23bf
--- /dev/null
+++ b/os400/libxmlrpg/xmlTypesC.rpgle
@@ -0,0 +1,26 @@
+      * Eqivalent of C data types.
+      *
+      * Copy: See Copyright for the status of this software.
+      *
+      * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+      /if not defined(XMLTYPESC_H__)
+      /define XMLTYPESC_H__
+
+     d xmlCchar        s              3i 0 based(######typedef######)
+     d xmlCuchar       s              3u 0 based(######typedef######)
+     d xmlCshort       s              5i 0 based(######typedef######)
+     d xmlCushort      s              5u 0 based(######typedef######)
+     d xmlCint         s             10i 0 based(######typedef######)
+     d xmlCuInt        s             10u 0 based(######typedef######)
+     d xmlClong        s             10i 0 based(######typedef######)
+     d xmlCulong       s             10u 0 based(######typedef######)
+     d xmlClonglong    s             20i 0 based(######typedef######)
+     d xmlCulonglong   s             20u 0 based(######typedef######)
+     d xmlCenum        s             10i 0 based(######typedef######)
+     d xmlCssize_t     s             10i 0 based(######typedef######)
+     d xmlCsize_t      s             10u 0 based(######typedef######)
+     d xmlCfloat       s              4f   based(######typedef######)
+     d xmlCdouble      s              8f   based(######typedef######)
+
+      /endif
diff --git a/os400/libxmlrpg/xmlautomata.rpgle b/os400/libxmlrpg/xmlautomata.rpgle
index 4979725..0e9cc22 100644
--- a/os400/libxmlrpg/xmlautomata.rpgle
+++ b/os400/libxmlrpg/xmlautomata.rpgle
@@ -9,11 +9,12 @@
       /define XML_AUTOMATA_H__
 
       /include "libxmlrpg/xmlversion"
-      /include "libxmlrpg/tree"
 
       /if defined(LIBXML_REGEXP_ENABLED)
       /if defined(LIBXML_AUTOMATA_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+      /include "libxmlrpg/tree"
       /include "libxmlrpg/xmlregexp"
 
       * xmlAutomataPtr:
@@ -44,7 +45,8 @@
      d  am                                 value like(xmlAutomataPtr)
 
      d xmlAutomataSetFinalState...
-     d                 pr            10i 0 extproc('xmlAutomataSetFinalState')
+     d                 pr                  extproc('xmlAutomataSetFinalState')
+     d                                     like(xmlCint)
      d  am                                 value like(xmlAutomataPtr)
      d  state                              value like(xmlAutomataStatePtr)
 
@@ -89,8 +91,8 @@
      d  from                               value like(xmlAutomataStatePtr)
      d  to                                 value like(xmlAutomataStatePtr)
      d  token                          *   value options(*string)               const xmlChar *
-     d  min                          10i 0 value
-     d  max                          10i 0 value
+     d  min                                value like(xmlCint)
+     d  max                                value like(xmlCint)
      d  data                           *   value options(*string)               void *
 
      d xmlAutomataNewCountTrans2...
@@ -101,8 +103,8 @@
      d  to                                 value like(xmlAutomataStatePtr)
      d  token                          *   value options(*string)               const xmlChar *
      d  token2                         *   value options(*string)               const xmlChar *
-     d  min                          10i 0 value
-     d  max                          10i 0 value
+     d  min                                value like(xmlCint)
+     d  max                                value like(xmlCint)
      d  data                           *   value options(*string)               void *
 
      d xmlAutomataNewOnceTrans...
@@ -112,8 +114,8 @@
      d  from                               value like(xmlAutomataStatePtr)
      d  to                                 value like(xmlAutomataStatePtr)
      d  token                          *   value options(*string)               const xmlChar *
-     d  min                          10i 0 value
-     d  max                          10i 0 value
+     d  min                                value like(xmlCint)
+     d  max                                value like(xmlCint)
      d  data                           *   value options(*string)               void *
 
      d xmlAutomataNewOnceTrans2...
@@ -124,8 +126,8 @@
      d  to                                 value like(xmlAutomataStatePtr)
      d  token                          *   value options(*string)               const xmlChar *
      d  token2                         *   value options(*string)               const xmlChar *
-     d  min                          10i 0 value
-     d  max                          10i 0 value
+     d  min                                value like(xmlCint)
+     d  max                                value like(xmlCint)
      d  data                           *   value options(*string)               void *
 
      d xmlAutomataNewAllTrans...
@@ -134,7 +136,7 @@
      d  am                                 value like(xmlAutomataPtr)
      d  from                               value like(xmlAutomataStatePtr)
      d  to                                 value like(xmlAutomataStatePtr)
-     d  lax                          10i 0 value
+     d  lax                                value like(xmlCint)
 
      d xmlAutomataNewEpsilon...
      d                 pr                  extproc('xmlAutomataNewEpsilon')
@@ -149,7 +151,7 @@
      d  am                                 value like(xmlAutomataPtr)
      d  from                               value like(xmlAutomataStatePtr)
      d  to                                 value like(xmlAutomataStatePtr)
-     d  counter                      10i 0 value
+     d  counter                            value like(xmlCint)
 
      d xmlAutomataNewCounterTrans...
      d                 pr                  extproc('xmlAutomataNewCounterTrans')
@@ -157,13 +159,14 @@
      d  am                                 value like(xmlAutomataPtr)
      d  from                               value like(xmlAutomataStatePtr)
      d  to                                 value like(xmlAutomataStatePtr)
-     d  counter                      10i 0 value
+     d  counter                            value like(xmlCint)
 
      d xmlAutomataNewCounter...
-     d                 pr            10i 0 extproc('xmlAutomataNewCounter')
+     d                 pr                  extproc('xmlAutomataNewCounter')
+     d                                     like(xmlCint)
      d  am                                 value like(xmlAutomataPtr)
-     d  min                          10i 0 value
-     d  max                          10i 0 value
+     d  min                                value like(xmlCint)
+     d  max                                value like(xmlCint)
 
      d xmlAutomataCompile...
      d                 pr                  extproc('xmlAutomataCompile')
@@ -171,7 +174,8 @@
      d  am                                 value like(xmlAutomataPtr)
 
      d xmlAutomataIsDeterminist...
-     d                 pr            10i 0 extproc('xmlAutomataIsDeterminist')
+     d                 pr                  extproc('xmlAutomataIsDeterminist')
+     d                                     like(xmlCint)
      d  am                                 value like(xmlAutomataPtr)
 
       /endif                                                                    AUTOMATA_ENABLED
diff --git a/os400/libxmlrpg/xmlerror.rpgle b/os400/libxmlrpg/xmlerror.rpgle
index b77caad..6688b37 100644
--- a/os400/libxmlrpg/xmlerror.rpgle
+++ b/os400/libxmlrpg/xmlerror.rpgle
@@ -5,16 +5,18 @@
       *
       * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
 
-      /include "libxmlrpg/parser"
-
       /if not defined(XML_ERROR_H__)
       /define XML_ERROR_H__
 
+      /include "libxmlrpg/xmlTypesC"
+      /include "libxmlrpg/parser"
+
       * xmlErrorLevel:
       *
       * Indicates the level of an error
 
-     d xmlErrorLevel   s             10i 0 based(######typedef######)           enum
+     d xmlErrorLevel   s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_ERR_NONE   c                   0
      d  XML_ERR_WARNING...                                                      A simple warning
      d                 c                   1
@@ -25,7 +27,8 @@
       *
       * Indicates where an error may have come from
 
-     d xmlErrorDomain  s             10i 0 based(######typedef######)           enum
+     d xmlErrorDomain  s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_FROM_NONE  c                   0
      d  XML_FROM_PARSER...                                                      XML parser
      d                 c                   1
@@ -86,17 +89,17 @@
 
      d xmlError        ds                  based(xmlErrorPtr)
      d                                     align qualified
-     d  domain                       10i 0                                      Libpart raising err
-     d  code                         10i 0                                      Error code
+     d  domain                             like(xmlCint)                        Libpart raising err
+     d  code                               like(xmlCint)                        Error code
      d  message                        *                                        char *
      d  level                              like(xmlErrorLevel)                  Error severity
      d  file                           *                                        File name
-     d  line                         10i 0                                      Line number
+     d  line                               like(xmlCint)                        Line number
      d  str1                           *                                        char *
      d  str2                           *                                        char *
      d  str3                           *                                        char *
-     d  int1                         10i 0                                      Extra number info
-     d  int2                         10i 0                                      Error column
+     d  int1                               like(xmlCint)                        Extra number info
+     d  int2                               like(xmlCint)                        Error column
      d  ctxt                           *                                        void *
      d  node                           *                                        void *
 
@@ -105,7 +108,8 @@
       * This is an error that the XML (or HTML) parser can generate
 
      d xmlParserErrors...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_ERR_OK     c                   0
      d  XML_ERR_INTERNAL_ERROR...
      d                 c                   1
@@ -1674,7 +1678,8 @@
      d xmlResetError   pr                  extproc('xmlResetError')
      d  err                                value like(xmlErrorPtr)
 
-     d xmlCopyError    pr            10i 0 extproc('xmlCopyError')
+     d xmlCopyError    pr                  extproc('xmlCopyError')
+     d                                     like(xmlCint)
      d  from                               value like(xmlErrorPtr)
      d  to                                 value like(xmlErrorPtr)
 
diff --git a/os400/libxmlrpg/xmlmemory.rpgle b/os400/libxmlrpg/xmlmemory.rpgle
index 165eaca..472e941 100644
--- a/os400/libxmlrpg/xmlmemory.rpgle
+++ b/os400/libxmlrpg/xmlmemory.rpgle
@@ -10,6 +10,7 @@
       /define DEBUG_MEMORY_ALLOC__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
 
       * DEBUG_MEMORY:
       *
@@ -96,7 +97,7 @@
      d  func                               value like(xmlMallocFunc)
 
      d xmlMalloc       pr              *   extproc('__call_xmlMalloc')          void *
-     d  size                         10u 0 value                                size_t
+     d  size                               value like(xmlCsize_t)
 
      d get_xmlMallocAtomic...
      d                 pr                  extproc('__get_xmlMallocAtomic')
@@ -108,7 +109,7 @@
 
      d xmlMallocAtomic...
      d                 pr              *   extproc('__call_xmlMallocAtomic')    void *
-     d  size                         10u 0 value                                size_t
+     d  size                               value like(xmlCsize_t)
 
      d get_xmlRealloc  pr                  extproc('__get_xmlRealloc')
      d                                     like(xmlReallocFunc)
@@ -118,7 +119,7 @@
 
      d xmlRealloc      pr              *   extproc('__call_xmlRealloc')         void *
      d  mem                            *   value                                void *
-     d  size                         10u 0 value                                size_t
+     d  size                               value like(xmlCsize_t)
 
      d get_xmlMemStrdup...
      d                 pr                  extproc('__get_xmlMemStrdup')
@@ -135,19 +136,22 @@
       * The xmlGc function have an extra entry for atomic block
       * allocations useful for garbage collected memory allocators
 
-     d xmlMemSetup     pr            10i 0 extproc('xmlMemSetup')
+     d xmlMemSetup     pr                  extproc('xmlMemSetup')
+     d                                     like(xmlCint)
      d  freeFunc                           value like(xmlFreeFunc)
      d  mallocFunc                         value like(xmlMallocFunc)
      d  reallocFunc                        value like(xmlReallocFunc)
      d  strdupFunc                         value like(xmlStrdupFunc)
 
-     d xmlMemGet       pr            10i 0 extproc('xmlMemGet')
+     d xmlMemGet       pr                  extproc('xmlMemGet')
+     d                                     like(xmlCint)
      d  freeFunc                           like(xmlFreeFunc)
      d  mallocFunc                         like(xmlMallocFunc)
      d  reallocFunc                        like(xmlReallocFunc)
      d  strdupFunc                         like(xmlStrdupFunc)
 
-     d xmlGcMemSetup   pr            10i 0 extproc('xmlGcMemSetup')
+     d xmlGcMemSetup   pr                  extproc('xmlGcMemSetup')
+     d                                     like(xmlCint)
      d  freeFunc                           value like(xmlFreeFunc)
      d  mallocFunc                         value like(xmlMallocFunc)
      d  mallocAtomicFunc...
@@ -155,7 +159,8 @@
      d  reallocFunc                        value like(xmlReallocFunc)
      d  strdupFunc                         value like(xmlStrdupFunc)
 
-     d xmlGcMemGet     pr            10i 0 extproc('xmlGcMemGet')
+     d xmlGcMemGet     pr                  extproc('xmlGcMemGet')
+     d                                     like(xmlCint)
      d  freeFunc                           like(xmlFreeFunc)
      d  mallocFunc                         like(xmlMallocFunc)
      d  mallocAtomicFunc...
@@ -165,7 +170,8 @@
 
       * Initialization of the memory layer.
 
-     d xmlInitMemory   pr            10i 0 extproc('xmlInitMemory')
+     d xmlInitMemory   pr                  extproc('xmlInitMemory')
+     d                                     like(xmlCint)
 
       * Cleanup of the memory layer.
 
@@ -174,9 +180,11 @@
 
       * These are specific to the XML debug memory wrapper.
 
-     d xmlMemUsed      pr            10i 0 extproc('xmlMemUsed')
+     d xmlMemUsed      pr                  extproc('xmlMemUsed')
+     d                                     like(xmlCint)
 
-     d xmlMemBlocks    pr            10i 0 extproc('xmlMemBlocks')
+     d xmlMemBlocks    pr                  extproc('xmlMemBlocks')
+     d                                     like(xmlCint)
 
      d xmlMemDisplay   pr                  extproc('xmlMemDisplay')
      d  fp                             *   value                                FILE *
@@ -184,20 +192,20 @@
      d xmlMmDisplayLast...
      d                 pr                  extproc('xmlMemDisplayLast')
      d  fp                             *   value                                FILE *
-     d  nbBytes                      20i 0 value
+     d  nbBytes                            value like(xmlClong)
 
      d xmlMemShow      pr                  extproc('xmlMemShow')
      d  fp                             *   value                                FILE *
-     d  nr                           10i 0 value
+     d  nr                                 value like(xmlCint)
 
      d xmlMemoryDump   pr                  extproc('xmlMemoryDump')
 
      d xmlMemMalloc    pr              *   extproc('xmlMemMalloc')              void *
-     d  size                         10u 0 value                                size_t
+     d  size                               value like(xmlCsize_t)
 
      d xmlMemRealloc   pr              *   extproc('xmlMemRealloc')             void *
      d  ptr                            *   value                                void *
-     d  size                         10u 0 value                                size_t
+     d  size                               value like(xmlCsize_t)
 
      d xmlMemFree      pr                  extproc('xmlMemFree')
      d  ptr                            *   value                                void *
@@ -207,27 +215,27 @@
      d  str                            *   value options(*string)               const char *
 
      d xmlMallocLoc    pr              *   extproc('xmlMallocLoc')              void *
-     d  size                         10u 0 value                                size_t
+     d  size                               value like(xmlCsize_t)
      d  file                           *   value options(*string)               const char *
-     d  line                         10i 0 value
+     d  line                               value like(xmlCint)
 
      d xmlReallocLoc   pr              *   extproc('xmlReallocLoc')              void *
      d  ptr                            *   value                                void *
-     d  size                         10u 0 value                                size_t
+     d  size                               value like(xmlCsize_t)
      d  file                           *   value options(*string)               const char *
-     d  line                         10i 0 value
+     d  line                               value like(xmlCint)
 
      d xmlMallocAtomicLoc...
      d                 pr              *   extproc('xmlMallocAtomicLoc')        void *
-     d  size                         10u 0 value                                size_t
+     d  size                               value like(xmlCsize_t)
      d  file                           *   value options(*string)               const char *
-     d  line                         10i 0 value
+     d  line                               value like(xmlCint)
 
      d xmlMemStrdupLoc...
      d                 pr              *   extproc('xmlMemStrdupLoc')           char *
      d  str                            *   value options(*string)               const char *
      d  file                           *   value options(*string)               const char *
-     d  line                         10i 0 value
+     d  line                               value like(xmlCint)
 
       /if not defined(XML_GLOBALS_H)
       /if not defined(XML_THREADS_H__)
diff --git a/os400/libxmlrpg/xmlmodule.rpgle b/os400/libxmlrpg/xmlmodule.rpgle
index 09592a6..035254d 100644
--- a/os400/libxmlrpg/xmlmodule.rpgle
+++ b/os400/libxmlrpg/xmlmodule.rpgle
@@ -13,6 +13,8 @@
 
       /if defined(LIBXML_MODULES_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+
       * xmlModulePtr:
       *
       * A handle to a dynamically loaded module
@@ -24,7 +26,8 @@
       * enumeration of options that can be passed down to xmlModuleOpen()
 
      d xmlModuleOption...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_MODULE_LAZY...                                                      Lazy binding
      d                 c                   1
      d  XML_MODULE_LOCAL...                                                     Local binding
@@ -33,18 +36,21 @@
      d xmlModuleOpen   pr                  extproc('xmlModuleOpen')
      d                                     like(xmlModulePtr)
      d  filename                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlModuleSymbol...
-     d                 pr            10i 0 extproc('xmlModuleSymbol')
+     d                 pr                  extproc('xmlModuleSymbol')
+     d                                     like(xmlCint)
      d  module                             value like(xmlModulePtr)
      d  name                           *   value options(*string)               const char *
      d  result                         *                                        void *(*)
 
-     d xmlModuleClose  pr            10i 0 extproc('xmlModuleClose')
+     d xmlModuleClose  pr                  extproc('xmlModuleClose')
+     d                                     like(xmlCint)
      d  module                             value like(xmlModulePtr)
 
-     d xmlModuleFree   pr            10i 0 extproc('xmlModuleFree')
+     d xmlModuleFree   pr                  extproc('xmlModuleFree')
+     d                                     like(xmlCint)
      d  module                             value like(xmlModulePtr)
 
       /endif                                                                    LIBXML_MODULES_ENBLD
diff --git a/os400/libxmlrpg/xmlreader.rpgle b/os400/libxmlrpg/xmlreader.rpgle
index eccd37c..f9ab207 100644
--- a/os400/libxmlrpg/xmlreader.rpgle
+++ b/os400/libxmlrpg/xmlreader.rpgle
@@ -9,6 +9,7 @@
       /define XML_XMLREADER_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/tree"
       /include "libxmlrpg/xmlIO"
 
@@ -23,7 +24,8 @@
       * is used.
 
      d xmlParserSeverities...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_PARSER_SEVERITY_VALIDITY_WARNING...
      d                 c                   1
      d  XML_PARSER_SEVERITY_VALIDITY_ERROR...
@@ -40,7 +42,8 @@
       * Internal state values for the reader.
 
      d xmlTextReaderMode...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_TEXTREADER_MODE_INITIAL...
      d                 c                   0
      d  XML_TEXTREADER_MODE_INTERACTIVE...
@@ -61,7 +64,8 @@
       * xmlReaderForxxx APIs now.
 
      d xmlParserProperties...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_PARSER_LOADDTD...
      d                 c                   1
      d  XML_PARSER_DEFAULTATTRS...
@@ -75,7 +79,8 @@
       *
       * Predefined constants for the different types of nodes.
 
-     d xmlReaderTypes  s             10i 0 based(######typedef######)           enum
+     d xmlReaderTypes  s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_READER_TYPE_NONE...
      d                 c                   0
      d  XML_READER_TYPE_ELEMENT...
@@ -138,17 +143,19 @@
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderSetup...
-     d                 pr            10i 0 extproc('xmlTextReaderSetup')
+     d                 pr                  extproc('xmlTextReaderSetup')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  input                              value like(xmlParserInputBufferPtr)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
       * Iterators
 
      d xmlTextReaderRead...
-     d                 pr            10i 0 extproc('xmlTextReaderRead')
+     d                 pr                  extproc('xmlTextReaderRead')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
       /if defined(LIBXML_WRITER_ENABLED)
@@ -166,53 +173,64 @@
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderReadAttributeValue...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderReadAttributeValue')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
       * Attributes of the node
 
      d xmlTextReaderAttributeCount...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderAttributeCount')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderDepth...
-     d                 pr            10i 0 extproc('xmlTextReaderDepth')
+     d                 pr                  extproc('xmlTextReaderDepth')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderHasAttributes...
-     d                 pr            10i 0 extproc('xmlTextReaderHasAttributes')
+     d                 pr                  extproc('xmlTextReaderHasAttributes')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderHasValue...
-     d                 pr            10i 0 extproc('xmlTextReaderHasValue')
+     d                 pr                  extproc('xmlTextReaderHasValue')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderIsDefault...
-     d                 pr            10i 0 extproc('xmlTextReaderIsDefault')
+     d                 pr                  extproc('xmlTextReaderIsDefault')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderIsEmptyElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderIsEmptyElement')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderNodeType...
-     d                 pr            10i 0 extproc('xmlTextReaderNodeType')
+     d                 pr                  extproc('xmlTextReaderNodeType')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderQuoteChar...
-     d                 pr            10i 0 extproc('xmlTextReaderQuoteChar')
+     d                 pr                  extproc('xmlTextReaderQuoteChar')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderReadState...
-     d                 pr            10i 0 extproc('xmlTextReaderReadState')
+     d                 pr                  extproc('xmlTextReaderReadState')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderIsNamespaceDecl...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderIsNamespaceDecl')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderConstBaseUri...
@@ -284,14 +302,15 @@
       * Methods of the XmlTextReader
 
      d xmlTextReaderClose...
-     d                 pr            10i 0 extproc('xmlTextReaderClose')
+     d                 pr                  extproc('xmlTextReaderClose')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderGetAttributeNo...
      d                 pr              *   extproc(                             xmlChar *
      d                                     'xmlTextReaderGetAttributeNo')
      d  reader                             value like(xmlTextReaderPtr)
-     d  no                           10i 0 value
+     d  no                                 value like(xmlCint)
 
      d xmlTextReaderGetAttribute...
      d                 pr              *   extproc('xmlTextReaderGetAttribute') xmlChar *
@@ -317,40 +336,47 @@
      d  prefix                         *   value options(*string)               const xmlChar *
 
      d xmlTextReaderMoveToAttributeNo...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderMoveToAttributeNo')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
-     d  no                           10i 0 value
+     d  no                                 value like(xmlCint)
 
      d xmlTextReaderMoveToAttribute...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderMoveToAttribute')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  name                           *   value options(*string)               const xmlChar *
 
      d xmlTextReaderMoveToAttributeNs...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderMoveToAttributeNs')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  localName                      *   value options(*string)               const xmlChar *
      d  namespaceURI                   *   value options(*string)               const xmlChar *
 
      d xmlTextReaderMoveToFirstAttribute...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderMoveToFirstAttribute')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderMoveToNextAttribute...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderMoveToNextAttribute')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderMoveToElement...
-     d                 pr            10i 0 extproc('xmlTextReaderMoveToElement')
+     d                 pr                  extproc('xmlTextReaderMoveToElement')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderNormalization...
-     d                 pr            10i 0 extproc('xmlTextReaderNormalization')
+     d                 pr                  extproc('xmlTextReaderNormalization')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderConstEncoding...
@@ -360,15 +386,17 @@
       * Extensions
 
      d xmlTextReaderSetParserProp...
-     d                 pr            10i 0 extproc('xmlTextReaderSetParserProp')
+     d                 pr                  extproc('xmlTextReaderSetParserProp')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
-     d  prop                         10i 0 value
-     d  value                        10i 0 value
+     d  prop                               value like(xmlCint)
+     d  value                              value like(xmlCint)
 
      d xmlTextReaderGetParserProp...
-     d                 pr            10i 0 extproc('xmlTextReaderGetParserProp')
+     d                 pr                  extproc('xmlTextReaderGetParserProp')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
-     d  prop                         10i 0 value
+     d  prop                               value like(xmlCint)
 
      d xmlTextReaderCurrentNode...
      d                 pr                  extproc('xmlTextReaderCurrentNode')
@@ -376,13 +404,15 @@
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderGetParserLineNumber...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderGetParserLineNumber')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderGetParserColumnNumber...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderGetParserColumnNumber')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderPreserve...
@@ -392,8 +422,9 @@
 
       /if defined(LIBXML_PATTERN_ENABLED)
      d xmlTextReaderPreservePattern...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderPreservePattern')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  pattern                        *   value options(*string)               const xmlChar *
      d  namespaces                     *                                        const xmlChar *(*)
@@ -410,52 +441,61 @@
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderNext...
-     d                 pr            10i 0 extproc('xmlTextReaderNext')
+     d                 pr                  extproc('xmlTextReaderNext')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderNextSibling...
-     d                 pr            10i 0 extproc('xmlTextReaderNextSibling')
+     d                 pr                  extproc('xmlTextReaderNextSibling')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderIsValid...
-     d                 pr            10i 0 extproc('xmlTextReaderIsValid')
+     d                 pr                  extproc('xmlTextReaderIsValid')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
       /if defined(LIBXML_SCHEMAS_ENABLED)
      d xmlTextReaderRelaxNGValidate...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderRelaxNGValidate')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  rng                            *   value options(*string)               const char *
 
      d xmlTextReaderRelaxNGValidateCtxt...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderRelaxNGValidateCtxt')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlTextReaderRelaxNGSetSchema...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderRelaxNGSetSchema')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  schema                             value like(xmlRelaxNGPtr)
 
      d xmlTextReaderSchemaValidate...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderSchemaValidate')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  xsd                            *   value options(*string)               const char *
 
      d xmlTextReaderSchemaValidateCtxt...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderSchemaValidateCtxt')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  ctxt                               value like(xmlSchemaValidCtxtPtr)
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlTextReaderSetSchema...
-     d                 pr            10i 0 extproc('xmlTextReaderSetSchema')
+     d                 pr                  extproc('xmlTextReaderSetSchema')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  schema                             value like(xmlSchemaPtr)
       /endif
@@ -466,13 +506,15 @@
      d  reader                             value like(xmlTextReaderPtr)
 
      d xmlTextReaderStandalone...
-     d                 pr            10i 0 extproc('xmlTextReaderStandalone')
+     d                 pr                  extproc('xmlTextReaderStandalone')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
 
       * Index lookup
 
      d xmlTextReaderByteConsumed...
-     d                 pr            20i 0 extproc('xmlTextReaderByteConsumed')
+     d                 pr                  extproc('xmlTextReaderByteConsumed')
+     d                                     like(xmlClong)
      d  reader                             value like(xmlTextReaderPtr)
 
       * New more complete APIs for simpler creation and reuse of readers
@@ -488,30 +530,30 @@
      d  cur                            *   value options(*string)               const xmlChar *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReaderForFile...
      d                 pr                  extproc('xmlReaderForFile')
      d                                     like(xmlTextReaderPtr)
      d  filename                       *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReaderForMemory...
      d                 pr                  extproc('xmlReaderForMemory')
      d                                     like(xmlTextReaderPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReaderForFd  pr                  extproc('xmlReaderForFd')
      d                                     like(xmlTextReaderPtr)
-     d  fd                           10i 0 value
+     d  fd                                 value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReaderForIO  pr                  extproc('xmlReaderForIO')
      d                                     like(xmlTextReaderPtr)
@@ -520,52 +562,58 @@
      d  ioctx                          *   value                                void *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReaderNewWalker...
-     d                 pr            10i 0 extproc('xmlReaderNewWalker')
+     d                 pr                  extproc('xmlReaderNewWalker')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  doc                                value like(xmlDocPtr)
 
      d xmlReaderNewDoc...
-     d                 pr            10i 0 extproc('xmlReaderNewDoc')
+     d                 pr                  extproc('xmlReaderNewDoc')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  cur                            *   value options(*string)               const xmlChar *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReaderNewFile...
-     d                 pr            10i 0 extproc('xmlReaderNewFile')
+     d                 pr                  extproc('xmlReaderNewFile')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  filename                       *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlReaderNewMemory...
-     d                 pr            10i 0 extproc('xmlReaderNewMemory')
+     d                 pr                  extproc('xmlReaderNewMemory')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  buffer                         *   value options(*string)               const char *
-     d  size                         10i 0 value
+     d  size                               value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
-     d xmlReaderNewFd  pr            10i 0 extproc('xmlReaderNewFd')
+     d xmlReaderNewFd  pr                  extproc('xmlReaderNewFd')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
-     d  fd                           10i 0 value
+     d  fd                                 value like(xmlCint)
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
-     d xmlReaderNewIO  pr            10i 0 extproc('xmlReaderNewIO')
+     d xmlReaderNewIO  pr                  extproc('xmlReaderNewIO')
+     d                                     like(xmlCint)
      d  reader                             value like(xmlTextReaderPtr)
      d  ioread                             value like(xmlInputReadCallback)
      d  ioclose                            value like(xmlInputCloseCallback)
      d  ioctx                          *   value                                void *
      d  URL                            *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
       * Error handling extensions
 
@@ -576,7 +624,7 @@
       * @arg: the user argument
       * @msg: the message
       * @severity: the severity of the error
-      * @locator: a locator indicating where the error occured
+      * @locator: a locator indicating where the error occurred
       *
       * Signature of an error callback from a reader parser
 
@@ -585,8 +633,9 @@
      d                                     procptr
 
      d xmlTextReaderLocatorLineNumber...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextReaderLocatorLineNumber')
+     d                                     like(xmlCint)
      d  locator                            value like(xmlTextReaderLocatorPtr)
 
      d xmlTextReaderLocatorBaseURI...
diff --git a/os400/libxmlrpg/xmlregexp.rpgle b/os400/libxmlrpg/xmlregexp.rpgle
index 65c2d07..01d411a 100644
--- a/os400/libxmlrpg/xmlregexp.rpgle
+++ b/os400/libxmlrpg/xmlregexp.rpgle
@@ -13,6 +13,8 @@
 
       /if defined(LIBXML_REGEXP_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+
       * xmlRegexpPtr:
       *
       * A libxml regular expression, they can actually be far more complex
@@ -41,7 +43,8 @@
      d                 pr                  extproc('xmlRegFreeRegexp')
      d  regexp                             value like(xmlRegexpPtr)
 
-     d xmlRegexpExec   pr            10i 0 extproc('xmlRegexpExec')
+     d xmlRegexpExec   pr                  extproc('xmlRegexpExec')
+     d                                     like(xmlCint)
      d  comp                               value like(xmlRegexpPtr)
      d  value                          *   value options(*string)               const xmlChar *
 
@@ -50,7 +53,8 @@
      d  regexp                             value like(xmlRegexpPtr)
 
      d xmlRegexpIsDeterminist...
-     d                 pr            10i 0 extproc('xmlRegexpIsDeterminist')
+     d                 pr                  extproc('xmlRegexpIsDeterminist')
+     d                                     like(xmlCint)
      d  comp                               value like(xmlRegexpPtr)
 
       * xmlRegExecCallbacks:
@@ -79,34 +83,38 @@
      d  exec                               value like(xmlRegExecCtxtPtr)
 
      d xmlRegExecPushString...
-     d                 pr            10i 0 extproc('xmlRegExecPushString')
+     d                 pr                  extproc('xmlRegExecPushString')
+     d                                     like(xmlCint)
      d  exec                               value like(xmlRegExecCtxtPtr)
      d  value                          *   value options(*string)               const xmlChar *
      d  data                           *   value                                void *
 
      d xmlRegExecPushString2...
-     d                 pr            10i 0 extproc('xmlRegExecPushString2')
+     d                 pr                  extproc('xmlRegExecPushString2')
+     d                                     like(xmlCint)
      d  exec                               value like(xmlRegExecCtxtPtr)
      d  value                          *   value options(*string)               const xmlChar *
      d  value2                         *   value options(*string)               const xmlChar *
      d  data                           *   value                                void *
 
      d xmlRegExecNextValues...
-     d                 pr            10i 0 extproc('xmlRegExecNextValues')
+     d                 pr                  extproc('xmlRegExecNextValues')
+     d                                     like(xmlCint)
      d  exec                               value like(xmlRegExecCtxtPtr)
-     d  nbval                        10i 0
-     d  nbneg                        10i 0
+     d  nbval                              like(xmlCint)
+     d  nbneg                              like(xmlCint)
      d  values                         *                                        xmlChar * (*)
-     d  terminal                     10i 0
+     d  terminal                           like(xmlCint)
 
      d xmlRegExecErrInfo...
-     d                 pr            10i 0 extproc('xmlRegExecErrInfo')
+     d                 pr                  extproc('xmlRegExecErrInfo')
+     d                                     like(xmlCint)
      d  exec                               value like(xmlRegExecCtxtPtr)
      d  string                         *                                        const xmlChar * (*)
-     d  nbval                        10i 0
-     d  nbneg                        10i 0
+     d  nbval                              like(xmlCint)
+     d  nbneg                              like(xmlCint)
      d  values                         *                                        xmlChar * (*)
-     d  terminal                     10i 0
+     d  terminal                           like(xmlCint)
 
       /if defined(LIBXML_EXPR_ENABLED)
 
@@ -122,22 +130,25 @@
 
      d xmlExpNewCtxt   pr                  extproc('xmlExpNewCtxt')
      d                                     like(xmlExpCtxtPtr)
-     d  maxNodes                     10i 0 value
+     d  maxNodes                           value like(xmlCint)
      d  dict                               value like(xmlDictPtr)
 
      d xmlExpCtxtNbNodes...
-     d                 pr            10i 0 extproc('xmlExpCtxtNbNodes')
+     d                 pr                  extproc('xmlExpCtxtNbNodes')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlExpCtxtPtr)
 
      d xmlExpCtxtNbCons...
-     d                 pr            10i 0 extproc('xmlExpCtxtNbCons')
+     d                 pr                  extproc('xmlExpCtxtNbCons')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlExpCtxtPtr)
 
       * Expressions are trees but the tree is opaque
 
      d xmlExpNodePtr   s               *   based(######typedef######)
 
-     d xmlExpNodeType  s             10i 0 based(######typedef######)           enum
+     d xmlExpNodeType  s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_EXP_EMPTY  c                   0
      d  XML_EXP_FORBID...
      d                 c                   1
@@ -175,7 +186,7 @@
      d                                     like(xmlExpNodePtr)
      d  ctxt                               value like(xmlExpCtxtPtr)
      d  name                           *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlExpNewOr     pr                  extproc('xmlExpNewOr')
      d                                     like(xmlExpNodePtr)
@@ -193,30 +204,34 @@
      d                                     like(xmlExpNodePtr)
      d  ctxt                               value like(xmlExpCtxtPtr)
      d  subset                             value like(xmlExpNodePtr)
-     d  min                          10i 0 value
-     d  max                          10i 0 value
+     d  min                                value like(xmlCint)
+     d  max                                value like(xmlCint)
 
       * The really interesting APIs
 
      d xmlExpIsNillable...
-     d                 pr            10i 0 extproc('xmlExpIsNillable')
+     d                 pr                  extproc('xmlExpIsNillable')
+     d                                     like(xmlCint)
      d  expr                               value like(xmlExpNodePtr)
 
-     d xmlExpMaxToken  pr            10i 0 extproc('xmlExpMaxToken')
+     d xmlExpMaxToken  pr                  extproc('xmlExpMaxToken')
+     d                                     like(xmlCint)
      d  expr                               value like(xmlExpNodePtr)
 
      d xmlExpGetLanguage...
-     d                 pr            10i 0 extproc('xmlExpGetLanguage')
+     d                 pr                  extproc('xmlExpGetLanguage')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlExpCtxtPtr)
      d  expr                               value like(xmlExpNodePtr)
      d  langList                       *                                        const xmlChar *(*)
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
-     d xmlExpGetStart  pr            10i 0 extproc('xmlExpGetStart')
+     d xmlExpGetStart  pr                  extproc('xmlExpGetStart')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlExpCtxtPtr)
      d  expr                               value like(xmlExpNodePtr)
      d  tokList                        *                                        const xmlChar *(*)
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlExpStringDerive...
      d                 pr                  extproc('xmlExpStringDerive')
@@ -224,7 +239,7 @@
      d  ctxt                               value like(xmlExpCtxtPtr)
      d  expr                               value like(xmlExpNodePtr)
      d  str                            *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlExpExpDerive...
      d                 pr                  extproc('xmlExpExpDerive')
@@ -233,7 +248,8 @@
      d  expr                               value like(xmlExpNodePtr)
      d  sub                                value like(xmlExpNodePtr)
 
-     d xmlExpSubsume   pr            10i 0 extproc('xmlExpSubsume')
+     d xmlExpSubsume   pr                  extproc('xmlExpSubsume')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlExpCtxtPtr)
      d  expr                               value like(xmlExpNodePtr)
      d  sub                                value like(xmlExpNodePtr)
diff --git a/os400/libxmlrpg/xmlsave.rpgle b/os400/libxmlrpg/xmlsave.rpgle
index efcb09f..ad0d15d 100644
--- a/os400/libxmlrpg/xmlsave.rpgle
+++ b/os400/libxmlrpg/xmlsave.rpgle
@@ -9,18 +9,21 @@
       /define XML_XMLSAVE_H__
 
       /include "libxmlrpg/xmlversion"
+
+      /if defined(LIBXML_OUTPUT_ENABLED)
+
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/tree"
       /include "libxmlrpg/encoding"
       /include "libxmlrpg/xmlIO"
 
-      /if defined(LIBXML_OUTPUT_ENABLED)
-
       * xmlSaveOption:
       *
       * This is the set of XML save options that can be passed down
       * to the xmlSaveToFd() and similar calls.
 
-     d xmlSaveOption   s             10i 0 based(######typedef######)           enum
+     d xmlSaveOption   s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_SAVE_FORMAT...                                                      Format save output
      d                 c                   X'0001'
      d  XML_SAVE_NO_DECL...                                                     Drop xml declaration
@@ -42,23 +45,23 @@
 
      d xmlSaveToFd     pr                  extproc('xmlSaveToFd')
      d                                     like(xmlSaveCtxtPtr)
-     d  fd                           10i 0 value
+     d  fd                                 value like(xmlCint)
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlSaveToFilename...
      d                 pr                  extproc('xmlSaveToFilename')
      d                                     like(xmlSaveCtxtPtr)
      d  filename                       *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlSaveToBuffer...
      d                 pr                  extproc('xmlSaveToBuffer')
      d                                     like(xmlSaveCtxtPtr)
      d  buffer                             value like(xmlBufferPtr)
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
      d xmlSaveToIO     pr                  extproc('xmlSaveToIO')
      d                                     like(xmlSaveCtxtPtr)
@@ -66,29 +69,35 @@
      d  ioclose                            value like(xmlOutputCloseCallback)
      d  ioctx                          *   value                                void *
      d  encoding                       *   value options(*string)               const char *
-     d  options                      10i 0 value
+     d  options                            value like(xmlCint)
 
-     d xmlSaveDoc      pr            20i 0 extproc('xmlSaveDoc')
+     d xmlSaveDoc      pr                  extproc('xmlSaveDoc')
+     d                                     like(xmlClong)
      d  ctxt                               value like(xmlSaveCtxtPtr)
      d  doc                                value like(xmlDocPtr)
 
-     d xmlSaveTree     pr            20i 0 extproc('xmlSaveTree')
+     d xmlSaveTree     pr                  extproc('xmlSaveTree')
+     d                                     like(xmlClong)
      d  ctxt                               value like(xmlSaveCtxtPtr)
      d  node                               value like(xmlNodePtr)
 
-     d xmlSaveFlush    pr            10i 0 extproc('xmlSaveFlush')
+     d xmlSaveFlush    pr                  extproc('xmlSaveFlush')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlSaveCtxtPtr)
 
-     d xmlSaveClose    pr            10i 0 extproc('xmlSaveClose')
+     d xmlSaveClose    pr                  extproc('xmlSaveClose')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlSaveCtxtPtr)
 
      d xmlSaveSetEscape...
-     d                 pr            10i 0 extproc('xmlSaveSetEscape')
+     d                 pr                  extproc('xmlSaveSetEscape')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlSaveCtxtPtr)
      d  escape                             value like(xmlCharEncodingOutputFunc)
 
      d xmlSaveSetAttrEscape...
-     d                 pr            10i 0 extproc('xmlSaveSetAttrEscape')
+     d                 pr                  extproc('xmlSaveSetAttrEscape')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlSaveCtxtPtr)
      d  escape                             value like(xmlCharEncodingOutputFunc)
 
diff --git a/os400/libxmlrpg/xmlschemas.rpgle b/os400/libxmlrpg/xmlschemas.rpgle
index 865dd26..f34ddcd 100644
--- a/os400/libxmlrpg/xmlschemas.rpgle
+++ b/os400/libxmlrpg/xmlschemas.rpgle
@@ -13,12 +13,14 @@
 
       /if defined(LIBXML_SCHEMAS_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/tree"
 
       * This error codes are obsolete; not used any more.
 
      d xmlSchemaValidError...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_SCHEMAS_ERR_OK...
      d                 c                   0
      d  XML_SCHEMAS_ERR_NOROOT...
@@ -81,7 +83,8 @@
       * This is the set of XML Schema validation options.
 
      d xmlSchemaValidOption...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
       *
       * Default/fixed: create an attribute node
       * or an element's text node on the instance.
@@ -158,7 +161,7 @@
      d                 pr                  extproc('xmlSchemaNewMemParserCtxt')
      d                                     like(xmlSchemaParserCtxtPtr)
      d buffer                          *   value options(*string)               const char *
-     d size                          10i 0 value
+     d size                                value like(xmlCint)
 
      d xmlSchemaNewDocParserCtxt...
      d                 pr                  extproc('xmlSchemaNewDocParserCtxt')
@@ -186,14 +189,16 @@
      d ctx                             *   value                                void *
 
      d xmlSchemaGetParserErrors...
-     d                 pr            10i 0 extproc('xmlSchemaGetParserErrors')
+     d                 pr                  extproc('xmlSchemaGetParserErrors')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlSchemaParserCtxtPtr)
      d err                                 like(xmlSchemaValidityErrorFunc)
      d warn                                like(xmlSchemaValidityWarningFunc)
      d ctx                             *                                        void *(*)
 
      d xmlSchemaIsValid...
-     d                 pr            10i 0 extproc('xmlSchemaIsValid')
+     d                 pr                  extproc('xmlSchemaIsValid')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlSchemaValidCtxtPtr)
 
      d xmlSchemaParse  pr                  extproc('xmlSchemaParse')
@@ -228,16 +233,18 @@
      d ctx                             *   value                                void *
 
      d xmlSchemaGetValidErrors...
-     d                 pr            10i 0 extproc('xmlSchemaGetValidErrors')
+     d                 pr                  extproc('xmlSchemaGetValidErrors')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlSchemaValidCtxtPtr)
      d err                                 like(xmlSchemaValidityErrorFunc)
      d warn                                like(xmlSchemaValidityWarningFunc)
      d ctx                             *                                        void *(*)
 
      d xmlSchemaSetValidOptions...
-     d                 pr            10i 0 extproc('xmlSchemaSetValidOptions')
+     d                 pr                  extproc('xmlSchemaSetValidOptions')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlSchemaValidCtxtPtr)
-     d options                       10i 0 value
+     d options                             value like(xmlCint)
 
      d xmlSchemaValidateSetFilename...
      d                 pr                  extproc(
@@ -246,8 +253,9 @@
      d filename                        *   value options(*string)               const char *
 
      d xmlSchemaValidCtxtGetOptions...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchemaValidCtxtGetOptions')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlSchemaValidCtxtPtr)
 
      d xmlSchemaNewValidCtxt...
@@ -260,18 +268,21 @@
      d ctxt                                value like(xmlSchemaValidCtxtPtr)
 
      d xmlSchemaValidateDoc...
-     d                 pr            10i 0 extproc('xmlSchemaValidateDoc')
+     d                 pr                  extproc('xmlSchemaValidateDoc')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlSchemaValidCtxtPtr)
      d instance                            value like(xmlDocPtr)
 
      d xmlSchemaValidateOneElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchemaValidateOneElement')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlSchemaValidCtxtPtr)
      d elem                                value like(xmlNodePtr)
 
      d xmlSchemaValidateStream...
-     d                 pr            10i 0 extproc('xmlSchemaValidateStream')
+     d                 pr                  extproc('xmlSchemaValidateStream')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlSchemaValidCtxtPtr)
      d input                               value like(xmlParserInputBufferPtr)
      d enc                                 value like(xmlCharEncoding)
@@ -279,10 +290,11 @@
      d user_data                       *   value                                void *
 
      d xmlSchemaValidateFile...
-     d                 pr            10i 0 extproc('xmlSchemaValidateFile')
+     d                 pr                  extproc('xmlSchemaValidateFile')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlSchemaValidCtxtPtr)
      d filename                        *   value options(*string)               const char *
-     d options                       10i 0 value
+     d options                             value like(xmlCint)
 
      d xmlSchemaValidCtxtGetParserCtxt...
      d                 pr                  extproc(
@@ -303,7 +315,8 @@
      d user_data                       *                                        void *(*)
 
      d xmlSchemaSAXUnplug...
-     d                 pr            10i 0 extproc('xmlSchemaSAXUnplug')
+     d                 pr                  extproc('xmlSchemaSAXUnplug')
+     d                                     like(xmlCint)
      d plug                                value like(xmlSchemaSAXPlugPtr)
 
      d xmlSchemaValidateSetLocator...
diff --git a/os400/libxmlrpg/xmlschemastypes.rpgle b/os400/libxmlrpg/xmlschemastypes.rpgle
index 6433c32..ecd6aba 100644
--- a/os400/libxmlrpg/xmlschemastypes.rpgle
+++ b/os400/libxmlrpg/xmlschemastypes.rpgle
@@ -13,11 +13,13 @@
 
       /if defined(LIBXML_SCHEMAS_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/schemasInternals"
       /include "libxmlrpg/xmlschemas"
 
      d xmlSchemaWhitespaceValueType...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XML_SCHEMA_WHITESPACE_UNKNOWN...
      d                 c                   0
      d  XML_SCHEMA_WHITESPACE_PRESERVE...
@@ -40,29 +42,33 @@
      d  ns                             *   value options(*string)               const xmlChar *
 
      d xmlSchemaValidatePredefinedType...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchemaValidatePredefinedType')
+     d                                     like(xmlCint)
      d  type                               value like(xmlSchemaTypePtr)
      d  value                          *   value options(*string)               const xmlChar *
      d  val                            *   value                                xmlSchemaValPtr *
 
      d xmlSchemaValPredefTypeNode...
-     d                 pr            10i 0 extproc('xmlSchemaValPredefTypeNode')
+     d                 pr                  extproc('xmlSchemaValPredefTypeNode')
+     d                                     like(xmlCint)
      d  type                               value like(xmlSchemaTypePtr)
      d  value                          *   value options(*string)               const xmlChar *
      d  val                            *   value                                xmlSchemaValPtr *
      d  node                               value like(xmlNodePtr)
 
      d xmlSchemaValidateFacet...
-     d                 pr            10i 0 extproc('xmlSchemaValidateFacet')
+     d                 pr                  extproc('xmlSchemaValidateFacet')
+     d                                     like(xmlCint)
      d  base                               value like(xmlSchemaTypePtr)
      d  facet                              value like(xmlSchemaFacetPtr)
      d  value                          *   value options(*string)               const xmlChar *
      d  val                                value like(xmlSchemaValPtr)
 
      d xmlSchemaValidateFacetWhtsp...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchemaValidateFacetWhtsp')
+     d                                     like(xmlCint)
      d  facet                              value like(xmlSchemaFacetPtr)
      d  fws                                value
      d                                     like(xmlSchemaWhitespaceValueType)
@@ -81,7 +87,8 @@
      d                                     like(xmlSchemaFacetPtr)
 
      d xmlSchemaCheckFacet...
-     d                 pr            10i 0 extproc('xmlSchemaCheckFacet')
+     d                 pr                  extproc('xmlSchemaCheckFacet')
+     d                                     like(xmlCint)
      d  facet                              value like(xmlSchemaFacetPtr)
      d  typeDecl                           value like(xmlSchemaTypePtr)
      d  ctxt                               value like(xmlSchemaParserCtxtPtr)
@@ -92,7 +99,8 @@
      d  facet                              value like(xmlSchemaFacetPtr)
 
      d xmlSchemaCompareValues...
-     d                 pr            10i 0 extproc('xmlSchemaCompareValues')
+     d                 pr                  extproc('xmlSchemaCompareValues')
+     d                                     like(xmlCint)
      d  x                                  value like(xmlSchemaValPtr)
      d  y                                  value like(xmlSchemaValPtr)
 
@@ -103,11 +111,12 @@
      d  type                               value like(xmlSchemaTypePtr)
 
      d xmlSchemaValidateListSimpleTypeFacet...
-     d                 pr            10i 0 extproc('xmlSchemaValidateListSimple-
+     d                 pr                  extproc('xmlSchemaValidateListSimple-
      d                                     TypeFacet')
+     d                                     like(xmlCint)
      d  facet                              value like(xmlSchemaFacetPtr)
      d  value                          *   value options(*string)               const xmlChar *
-     d  actualLen                    20u 0 value
+     d  actualLen                          value like(xmlCulong)
      d  expectedLen                    *   value                                unsigned long *
 
      d xmlSchemaGetBuiltInType...
@@ -116,10 +125,11 @@
      d  type                               value like(xmlSchemaValType)
 
      d xmlSchemaIsBuiltInTypeFacet...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchemaIsBuiltInTypeFacet')
+     d                                     like(xmlCint)
      d  type                               value like(xmlSchemaTypePtr)
-     d  facetType                    10i 0 value
+     d  facetType                          value like(xmlCint)
 
      d xmlSchemaCollapseString...
      d                 pr              *   extproc('xmlSchemaCollapseString')   xmlChar *
@@ -130,53 +140,60 @@
      d  value                          *   value options(*string)               const xmlChar *
 
      d xmlSchemaGetFacetValueAsULong...
-     d                 pr            20u 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchemaGetFacetValueAsULong')
+     d                                     like(xmlCulong)
      d  facet                              value like(xmlSchemaFacetPtr)
 
      d xmlSchemaValidateLengthFacet...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchemaValidateLengthFacet')
+     d                                     like(xmlCint)
      d  type                               value like(xmlSchemaTypePtr)
      d  facet                              value like(xmlSchemaFacetPtr)
      d  value                          *   value options(*string)               const xmlChar *
      d  val                                value like(xmlSchemaValPtr)
-     d  length                       20u 0
+     d  length                             like(xmlCulong)
 
      d xmlSchemaValidateLengthFacetWhtsp...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchemaValidateLengthFacetWhtsp')
+     d                                     like(xmlCint)
      d  facet                              value like(xmlSchemaFacetPtr)
      d  valType                            value like(xmlSchemaValType)
      d  value                          *   value options(*string)               const xmlChar *
      d  val                                value like(xmlSchemaValPtr)
-     d  length                       20u 0
+     d  length                             like(xmlCulong)
      d  ws                                 value
      d                                     like(xmlSchemaWhitespaceValueType)
 
      d xmlSchemaValPredefTypeNodeNoNorm...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchemaValPredefTypeNodeNoNorm')
+     d                                     like(xmlCint)
      d  type                               value like(xmlSchemaTypePtr)
      d  value                          *   value options(*string)               const xmlChar *
      d  val                                like(xmlSchemaValPtr)
      d  node                               value like(xmlNodePtr)
 
      d xmlSchemaGetCanonValue...
-     d                 pr            10i 0 extproc('xmlSchemaGetCanonValue')
+     d                 pr                  extproc('xmlSchemaGetCanonValue')
+     d                                     like(xmlCint)
      d  val                                value like(xmlSchemaValPtr)
      d  retValue                       *   value                                const xmlChar * *
 
      d xmlSchemaGetCanonValueWhtsp...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchemaGetCanonValueWhtsp')
+     d                                     like(xmlCint)
      d  val                                value like(xmlSchemaValPtr)
      d  retValue                       *   value                                const xmlChar * *
      d  ws                                 value
      d                                     like(xmlSchemaWhitespaceValueType)
 
      d xmlSchemaValueAppend...
-     d                 pr            10i 0 extproc('xmlSchemaValueAppend')
+     d                 pr                  extproc('xmlSchemaValueAppend')
+     d                                     like(xmlCint)
      d  prev                               value like(xmlSchemaValPtr)
      d  cur                                value like(xmlSchemaValPtr)
 
@@ -190,7 +207,8 @@
      d  val                                value like(xmlSchemaValPtr)
 
      d xmlSchemaValueGetAsBoolean...
-     d                 pr            10i 0 extproc('xmlSchemaValueGetAsBoolean')
+     d                 pr                  extproc('xmlSchemaValueGetAsBoolean')
+     d                                     like(xmlCint)
      d  val                                value like(xmlSchemaValPtr)
 
      d xmlSchemaNewStringValue...
@@ -212,8 +230,9 @@
      d  localName                      *   value options(*string)               const xmlChar *
 
      d xmlSchemaCompareValuesWhtsp...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlSchemaCompareValuesWhtsp')
+     d                                     like(xmlCint)
      d  x                                  value like(xmlSchemaValPtr)
      d  xws                                value
      d                                     like(xmlSchemaWhitespaceValueType)
diff --git a/os400/libxmlrpg/xmlstdarg.rpgle b/os400/libxmlrpg/xmlstdarg.rpgle
index 4e6f121..3c8e200 100644
--- a/os400/libxmlrpg/xmlstdarg.rpgle
+++ b/os400/libxmlrpg/xmlstdarg.rpgle
@@ -8,6 +8,7 @@
       /define XML_STDARG_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
 
       * The va_list object.
 
@@ -19,16 +20,16 @@
       * Procedures.
 
      d xmlVaStart      pr                  extproc('__xmlVaStart')
-     d  list                               like(xmlVaList)
+     d  list                               likeds(xmlVaList)
      d  lastargaddr                    *   value
-     d  lastargsize                  10u 0 value
+     d  lastargsize                        value like(xmlCsize_t)
 
      d xmlVaArg        pr              *   extproc('__xmlVaArg')
-     d  list                               like(xmlVaList)
+     d  list                               likeds(xmlVaList)
      d  dest                           *   value
-     d  argsize                      10i 0 value
+     d  argsize                            value like(xmlCsize_t)
 
      d xmlVaEnd        pr                  extproc('__xmlVaEnd')
-     d  list                               like(xmlVaList)
+     d  list                               likeds(xmlVaList)
 
       /endif                                                                    XML_STDARG_H__
diff --git a/os400/libxmlrpg/xmlstring.rpgle b/os400/libxmlrpg/xmlstring.rpgle
index 41e9eb5..59a7625 100644
--- a/os400/libxmlrpg/xmlstring.rpgle
+++ b/os400/libxmlrpg/xmlstring.rpgle
@@ -10,6 +10,7 @@
       /define XML_STRING_H__
 
       /include "libxmlrpg/xmlversion"
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/xmlstdarg"
 
       * xmlChar:
@@ -18,7 +19,8 @@
       * It's unsigned allowing to pinpoint case where char * are assigned
       * to xmlChar * (possibly making serialization back impossible).
 
-     d xmlChar         s              3u 0 based(######typedef######)
+     d xmlChar         s                   based(######typedef######)
+     d                                     like(xmlCuchar)
 
       * xmlChar handling
 
@@ -27,19 +29,19 @@
 
      d xmlStrndup      pr              *   extproc('xmlStrndup')                xmlChar *
      d  cur                            *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlCharStrndup  pr              *   extproc('xmlCharStrndup')            xmlChar *
      d  cur                            *   value options(*string)               const char *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlCharStrdup   pr              *   extproc('xmlCharStrdup')             xmlChar *
      d  cur                            *   value options(*string)               const char *
 
      d xmlStrsub       pr              *   extproc('xmlStrsub')                 const xmlChar *
      d  str                            *   value options(*string)               const xmlChar *
-     d  start                        10i 0 value
-     d  len                          10i 0 value
+     d  start                              value like(xmlCint)
+     d  len                                value like(xmlCint)
 
      d xmlStrchr       pr              *   extproc('xmlStrchr')                 const xmlChar *
      d  str                            *   value options(*string)               const xmlChar *
@@ -53,34 +55,41 @@
      d  str                            *   value options(*string)               const xmlChar *
      d  val                            *   value options(*string)               const xmlChar *
 
-     d xmlStrcmp       pr            10i 0 extproc('xmlStrcmp')
+     d xmlStrcmp       pr                  extproc('xmlStrcmp')
+     d                                     like(xmlCint)
      d  str1                           *   value options(*string)               const xmlChar *
      d  str2                           *   value options(*string)               const xmlChar *
 
-     d xmlStrncmp      pr            10i 0 extproc('xmlStrncmp')
+     d xmlStrncmp      pr                  extproc('xmlStrncmp')
+     d                                     like(xmlCint)
      d  str1                           *   value options(*string)               const xmlChar *
      d  str2                           *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
-     d xmlStrcasecmp   pr            10i 0 extproc('xmlStrcasecmp')
+     d xmlStrcasecmp   pr                  extproc('xmlStrcasecmp')
+     d                                     like(xmlCint)
      d  str1                           *   value options(*string)               const xmlChar *
      d  str2                           *   value options(*string)               const xmlChar *
 
-     d xmlStrncasecmp  pr            10i 0 extproc('xmlStrncasecmp')
+     d xmlStrncasecmp  pr                  extproc('xmlStrncasecmp')
+     d                                     like(xmlCint)
      d  str1                           *   value options(*string)               const xmlChar *
      d  str2                           *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
-     d xmlStrEqual     pr            10i 0 extproc('xmlStrEqual')
+     d xmlStrEqual     pr                  extproc('xmlStrEqual')
+     d                                     like(xmlCint)
      d  str1                           *   value options(*string)               const xmlChar *
      d  str2                           *   value options(*string)               const xmlChar *
 
-     d xmlStrQEqual    pr            10i 0 extproc('xmlStrQEqual')
+     d xmlStrQEqual    pr                  extproc('xmlStrQEqual')
+     d                                     like(xmlCint)
      d  pref                           *   value options(*string)               const xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
      d  stre                           *   value options(*string)               const xmlChar *
 
-     d xmlStrlen       pr            10i 0 extproc('xmlStrlen')
+     d xmlStrlen       pr                  extproc('xmlStrlen')
+     d                                     like(xmlCint)
      d  str                            *   value options(*string)               const xmlChar *
 
      d xmlStrcat       pr              *   extproc('xmlStrcat')                 xmlChar *
@@ -90,22 +99,23 @@
      d xmlStrncat      pr              *   extproc('xmlStrncat')                xmlChar *
      d  cur                            *   value options(*string)               xmlChar *
      d  add                            *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlStrncatNew   pr              *   extproc('xmlStrncatNew')             xmlChar *
      d  str1                           *   value options(*string)               const xmlChar *
      d  str2                           *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
       * xmlStrPrintf() is a vararg function.
       * The following prototype supports up to 8 pointer arguments.
       * Other argument signature can be achieved by defining alternate
       *   prototypes redirected to the same function.
 
-     d xmlStrPrintf    pr            10i 0 extproc('xmlStrPrintf')
+     d xmlStrPrintf    pr                  extproc('xmlStrPrintf')
+     d                                     like(xmlCint)
      d  buf                            *   value options(*string)               xmlChar *
-     d  len                          10i 0 value
-     d  msg                            *   value options(*string)               const xmlChar *
+     d  len                                value like(xmlCint)
+     d  msg                            *   value options(*string)               const char *
      d  arg1                           *   value options(*string: *nopass)
      d  arg2                           *   value options(*string: *nopass)
      d  arg3                           *   value options(*string: *nopass)
@@ -115,47 +125,55 @@
      d  arg7                           *   value options(*string: *nopass)
      d  arg8                           *   value options(*string: *nopass)
 
-     d xmlStrVPrintf   pr            10i 0 extproc('xmlStrVPrintf')
+     d xmlStrVPrintf   pr                  extproc('xmlStrVPrintf')
+     d                                     like(xmlCint)
      d  buf                            *   value options(*string)               xmlChar *
-     d  len                          10i 0 value
-     d  msg                            *   value options(*string)               const xmlChar *
+     d  len                                value like(xmlCint)
+     d  msg                            *   value options(*string)               const char *
      d  ap                                 likeds(xmlVaList)
 
-     d xmlGetUTF8Char  pr            10i 0 extproc('xmlGetUTF8Char')
+     d xmlGetUTF8Char  pr                  extproc('xmlGetUTF8Char')
+     d                                     like(xmlCint)
      d  utf                            *   value options(*string)               const uns. char *
-     d  len                          10i 0
+     d  len                                like(xmlCint)
 
-     d xmlCheckUTF8    pr            10i 0 extproc('xmlCheckUTF8')
+     d xmlCheckUTF8    pr                  extproc('xmlCheckUTF8')
+     d                                     like(xmlCint)
      d  utf                            *   value options(*string)               const uns. char *
 
-     d xmlUTF8Strsize  pr            10i 0 extproc('xmlUTF8Strsize')
+     d xmlUTF8Strsize  pr                  extproc('xmlUTF8Strsize')
+     d                                     like(xmlCint)
      d  utf                            *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlUTF8Strndup  pr              *   extproc('xmlUTF8Strndup')            xmlChar *
      d  utf                            *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlUTF8Strpos   pr              *   extproc('xmlUTF8Strpos')             const xmlChar *
      d  utf                            *   value options(*string)               const xmlChar *
-     d  pos                          10i 0 value
+     d  pos                                value like(xmlCint)
 
-     d xmlUTF8Strloc   pr            10i 0 extproc('xmlUTF8Strloc')
+     d xmlUTF8Strloc   pr                  extproc('xmlUTF8Strloc')
+     d                                     like(xmlCint)
      d  utf                            *   value options(*string)               const xmlChar *
      d  utfchar                        *   value options(*string)               const xmlChar *
 
      d xmlUTF8Strsub   pr              *   extproc('xmlUTF8Strsub')             xmlChar *
      d  utf                            *   value options(*string)               const xmlChar *
-     d  start                        10i 0 value
-     d  len                          10i 0 value
+     d  start                              value like(xmlCint)
+     d  len                                value like(xmlCint)
 
-     d xmlUTF8Strlen   pr            10i 0 extproc('xmlUTF8Strlen')
+     d xmlUTF8Strlen   pr                  extproc('xmlUTF8Strlen')
+     d                                     like(xmlCint)
      d  utf                            *   value options(*string)               const xmlChar *
 
-     d xmlUTF8Size     pr            10i 0 extproc('xmlUTF8Size')
+     d xmlUTF8Size     pr                  extproc('xmlUTF8Size')
+     d                                     like(xmlCint)
      d  utf                            *   value options(*string)               const xmlChar *
 
-     d xmlUTF8Charcmp  pr            10i 0 extproc('xmlUTF8Charcmp')
+     d xmlUTF8Charcmp  pr                  extproc('xmlUTF8Charcmp')
+     d                                     like(xmlCint)
      d  utf1                           *   value options(*string)               const xmlChar *
      d  utf2                           *   value options(*string)               const xmlChar *
 
diff --git a/os400/libxmlrpg/xmlunicode.rpgle b/os400/libxmlrpg/xmlunicode.rpgle
index 64f7abf..c4c4ba1 100644
--- a/os400/libxmlrpg/xmlunicode.rpgle
+++ b/os400/libxmlrpg/xmlunicode.rpgle
@@ -12,656 +12,824 @@
 
       /if defined(LIBXML_UNICODE_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+
      d xmlUCSIsAegeanNumbers...
-     d                 pr            10i 0 extproc('xmlUCSIsAegeanNumbers')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsAegeanNumbers')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsAlphabeticPresentationForms...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsAlphabeticPresentationForms'
      d                                     )
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsArabic  pr            10i 0 extproc('xmlUCSIsArabic')
-     d  code                         10i 0 value
+     d xmlUCSIsArabic  pr                  extproc('xmlUCSIsArabic')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsArabicPresentationFormsA...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsArabicPresentationFormsA')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsArabicPresentationFormsB...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsArabicPresentationFormsB')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsArmenian...
-     d                 pr            10i 0 extproc('xmlUCSIsArmenian')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsArmenian')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsArrows  pr            10i 0 extproc('xmlUCSIsArrows')
-     d  code                         10i 0 value
+     d xmlUCSIsArrows  pr                  extproc('xmlUCSIsArrows')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsBasicLatin...
-     d                 pr            10i 0 extproc('xmlUCSIsBasicLatin')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsBasicLatin')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsBengali...
-     d                 pr            10i 0 extproc('xmlUCSIsBengali')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsBengali')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsBlockElements...
-     d                 pr            10i 0 extproc('xmlUCSIsBlockElements')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsBlockElements')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsBopomofo...
-     d                 pr            10i 0 extproc('xmlUCSIsBopomofo')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsBopomofo')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsBopomofoExtended...
-     d                 pr            10i 0 extproc('xmlUCSIsBopomofoExtended')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsBopomofoExtended')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsBoxDrawing...
-     d                 pr            10i 0 extproc('xmlUCSIsBoxDrawing')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsBoxDrawing')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsBraillePatterns...
-     d                 pr            10i 0 extproc('xmlUCSIsBraillePatterns')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsBraillePatterns')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsBuhid   pr            10i 0 extproc('xmlUCSIsBuhid')
-     d  code                         10i 0 value
+     d xmlUCSIsBuhid   pr                  extproc('xmlUCSIsBuhid')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsByzantineMusicalSymbols...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsByzantineMusicalSymbols')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCJKCompatibility...
-     d                 pr            10i 0 extproc('xmlUCSIsCJKCompatibility')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsCJKCompatibility')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCJKCompatibilityForms...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsCJKCompatibilityForms')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCJKCompatibilityIdeographs...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsCJKCompatibilityIdeographs')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCJKCompatibilityIdeographsSupplement...
-     d                 pr            10i 0 extproc('xmlUCSIsCJKCompatibilityIde-
+     d                 pr                  extproc('xmlUCSIsCJKCompatibilityIde-
      d                                     ographsSupplement')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCJKRadicalsSupplement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsCJKRadicalsSupplement')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCJKSymbolsandPunctuation...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsCJKSymbolsandPunctuation')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCJKUnifiedIdeographs...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsCJKUnifiedIdeographs')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCJKUnifiedIdeographsExtensionA...
-     d                 pr            10i 0 extproc('xmlUCSIsCJKUnifiedIdeograph-
+     d                 pr                  extproc('xmlUCSIsCJKUnifiedIdeograph-
      d                                     sExtensionA')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCJKUnifiedIdeographsExtensionB...
-     d                 pr            10i 0 extproc('xmlUCSIsCJKUnifiedIdeograph-
+     d                 pr                  extproc('xmlUCSIsCJKUnifiedIdeograph-
      d                                     sExtensionB')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCherokee...
-     d                 pr            10i 0 extproc('xmlUCSIsCherokee')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsCherokee')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCombiningDiacriticalMarks...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsCombiningDiacriticalMarks')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCombiningDiacriticalMarksforSymbols...
-     d                 pr            10i 0 extproc('xmlUCSIsCombiningDiacritica-
+     d                 pr                  extproc('xmlUCSIsCombiningDiacritica-
      d                                     lMarksforSymbols')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCombiningHalfMarks...
-     d                 pr            10i 0 extproc('xmlUCSIsCombiningHalfMarks')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsCombiningHalfMarks')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCombiningMarksforSymbols...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsCombiningMarksforSymbols')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsControlPictures...
-     d                 pr            10i 0 extproc('xmlUCSIsControlPictures')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsControlPictures')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCurrencySymbols...
-     d                 pr            10i 0 extproc('xmlUCSIsCurrencySymbols')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsCurrencySymbols')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCypriotSyllabary...
-     d                 pr            10i 0 extproc('xmlUCSIsCypriotSyllabary')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsCypriotSyllabary')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCyrillic...
-     d                 pr            10i 0 extproc('xmlUCSIsCyrillic')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsCyrillic')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsCyrillicSupplement...
-     d                 pr            10i 0 extproc('xmlUCSIsCyrillicSupplement')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsCyrillicSupplement')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsDeseret...
-     d                 pr            10i 0 extproc('xmlUCSIsDeseret')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsDeseret')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsDevanagari...
-     d                 pr            10i 0 extproc('xmlUCSIsDevanagari')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsDevanagari')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsDingbats...
-     d                 pr            10i 0 extproc('xmlUCSIsDingbats')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsDingbats')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsEnclosedAlphanumerics...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsEnclosedAlphanumerics')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsEnclosedCJKLettersandMonths...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsEnclosedCJKLettersandMonths'
      d                                     )
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsEthiopic...
-     d                 pr            10i 0 extproc('xmlUCSIsEthiopic')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsEthiopic')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsGeneralPunctuation...
-     d                 pr            10i 0 extproc('xmlUCSIsGeneralPunctuation')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsGeneralPunctuation')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsGeometricShapes...
-     d                 pr            10i 0 extproc('xmlUCSIsGeometricShapes')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsGeometricShapes')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsGeorgian...
-     d                 pr            10i 0 extproc('xmlUCSIsGeorgian')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsGeorgian')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsGothic  pr            10i 0 extproc('xmlUCSIsGothic')
-     d  code                         10i 0 value
+     d xmlUCSIsGothic  pr                  extproc('xmlUCSIsGothic')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsGreek   pr            10i 0 extproc('xmlUCSIsGreek')
-     d  code                         10i 0 value
+     d xmlUCSIsGreek   pr                  extproc('xmlUCSIsGreek')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsGreekExtended...
-     d                 pr            10i 0 extproc('xmlUCSIsGreekExtended')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsGreekExtended')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsGreekandCoptic...
-     d                 pr            10i 0 extproc('xmlUCSIsGreekandCoptic')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsGreekandCoptic')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsGujarati...
-     d                 pr            10i 0 extproc('xmlUCSIsGujarati')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsGujarati')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsGurmukhi...
-     d                 pr            10i 0 extproc('xmlUCSIsGurmukhi')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsGurmukhi')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsHalfwidthandFullwidthForms...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsHalfwidthandFullwidthForms')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsHangulCompatibilityJamo...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsHangulCompatibilityJamo')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsHangulJamo...
-     d                 pr            10i 0 extproc('xmlUCSIsHangulJamo')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsHangulJamo')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsHangulSyllables...
-     d                 pr            10i 0 extproc('xmlUCSIsHangulSyllables')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsHangulSyllables')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsHanunoo...
-     d                 pr            10i 0 extproc('xmlUCSIsHanunoo')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsHanunoo')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsHebrew  pr            10i 0 extproc('xmlUCSIsHebrew')
-     d  code                         10i 0 value
+     d xmlUCSIsHebrew  pr                  extproc('xmlUCSIsHebrew')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsHighPrivateUseSurrogates...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsHighPrivateUseSurrogates')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsHighSurrogates...
-     d                 pr            10i 0 extproc('xmlUCSIsHighSurrogates')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsHighSurrogates')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsHiragana...
-     d                 pr            10i 0 extproc('xmlUCSIsHiragana')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsHiragana')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsIPAExtensions...
-     d                 pr            10i 0 extproc('xmlUCSIsIPAExtensions')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsIPAExtensions')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsIdeographicDescriptionCharacters...
-     d                 pr            10i 0 extproc('xmlUCSIsIdeographicDescript-
+     d                 pr                  extproc('xmlUCSIsIdeographicDescript-
      d                                     ionCharacters')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsKanbun  pr            10i 0 extproc('xmlUCSIsKanbun')
-     d  code                         10i 0 value
+     d xmlUCSIsKanbun  pr                  extproc('xmlUCSIsKanbun')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsKangxiRadicals...
-     d                 pr            10i 0 extproc('xmlUCSIsKangxiRadicals')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsKangxiRadicals')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsKannada...
-     d                 pr            10i 0 extproc('xmlUCSIsKannada')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsKannada')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsKatakana...
-     d                 pr            10i 0 extproc('xmlUCSIsKatakana')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsKatakana')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsKatakanaPhoneticExtensions...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsKatakanaPhoneticExtensions')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsKhmer   pr            10i 0 extproc('xmlUCSIsKhmer')
-     d  code                         10i 0 value
+     d xmlUCSIsKhmer   pr                  extproc('xmlUCSIsKhmer')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsKhmerSymbols...
-     d                 pr            10i 0 extproc('xmlUCSIsKhmerSymbols')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsKhmerSymbols')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsLao     pr            10i 0 extproc('xmlUCSIsLao')
-     d  code                         10i 0 value
+     d xmlUCSIsLao     pr                  extproc('xmlUCSIsLao')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsLatin1Supplement...
-     d                 pr            10i 0 extproc('xmlUCSIsLatin1Supplement')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsLatin1Supplement')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsLatinExtendedA...
-     d                 pr            10i 0 extproc('xmlUCSIsLatinExtendedA')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsLatinExtendedA')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsLatinExtendedB...
-     d                 pr            10i 0 extproc('xmlUCSIsLatinExtendedB')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsLatinExtendedB')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsLatinExtendedAdditional...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsLatinExtendedAdditional')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsLetterlikeSymbols...
-     d                 pr            10i 0 extproc('xmlUCSIsLetterlikeSymbols')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsLetterlikeSymbols')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsLimbu   pr            10i 0 extproc('xmlUCSIsLimbu')
-     d  code                         10i 0 value
+     d xmlUCSIsLimbu   pr                  extproc('xmlUCSIsLimbu')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsLinearBIdeograms...
-     d                 pr            10i 0 extproc('xmlUCSIsLinearBIdeograms')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsLinearBIdeograms')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsLinearBSyllabary...
-     d                 pr            10i 0 extproc('xmlUCSIsLinearBSyllabary')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsLinearBSyllabary')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsLowSurrogates...
-     d                 pr            10i 0 extproc('xmlUCSIsLowSurrogates')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsLowSurrogates')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsMalayalam...
-     d                 pr            10i 0 extproc('xmlUCSIsMalayalam')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsMalayalam')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsMathematicalAlphanumericSymbols...
-     d                 pr            10i 0 extproc('xmlUCSIsMathematicalAlphanu-
+     d                 pr                  extproc('xmlUCSIsMathematicalAlphanu-
      d                                     mericSymbols')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsMathematicalOperators...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsMathematicalOperators')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsMiscellaneousMathematicalSymbolsA...
-     d                 pr            10i 0 extproc('xmlUCSIsMiscellaneousMathem-
+     d                 pr                  extproc('xmlUCSIsMiscellaneousMathem-
      d                                     aticalSymbolsA')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsMiscellaneousMathematicalSymbolsB...
-     d                 pr            10i 0 extproc('xmlUCSIsMiscellaneousMathem-
+     d                 pr                  extproc('xmlUCSIsMiscellaneousMathem-
      d                                     aticalSymbolsB')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsMiscellaneousSymbols...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsMiscellaneousSymbols')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsMiscellaneousSymbolsandArrows...
-     d                 pr            10i 0 extproc('xmlUCSIsMiscellaneousSymbol-
+     d                 pr                  extproc('xmlUCSIsMiscellaneousSymbol-
      d                                     sandArrows')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsMiscellaneousTechnical...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsMiscellaneousTechnical')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsMongolian...
-     d                 pr            10i 0 extproc('xmlUCSIsMongolian')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsMongolian')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsMusicalSymbols...
-     d                 pr            10i 0 extproc('xmlUCSIsMusicalSymbols')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsMusicalSymbols')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsMyanmar...
-     d                 pr            10i 0 extproc('xmlUCSIsMyanmar')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsMyanmar')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsNumberForms...
-     d                 pr            10i 0 extproc('xmlUCSIsNumberForms')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsNumberForms')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsOgham   pr            10i 0 extproc('xmlUCSIsOgham')
-     d  code                         10i 0 value
+     d xmlUCSIsOgham   pr                  extproc('xmlUCSIsOgham')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsOldItalic...
-     d                 pr            10i 0 extproc('xmlUCSIsOldItalic')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsOldItalic')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsOpticalCharacterRecognition...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsOpticalCharacterRecognition'
      d                                     )
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsOriya   pr            10i 0 extproc('xmlUCSIsOriya')
-     d  code                         10i 0 value
+     d xmlUCSIsOriya   pr                  extproc('xmlUCSIsOriya')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsOsmanya...
-     d                 pr            10i 0 extproc('xmlUCSIsOsmanya')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsOsmanya')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsPhoneticExtensions...
-     d                 pr            10i 0 extproc('xmlUCSIsPhoneticExtensions')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsPhoneticExtensions')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsPrivateUse...
-     d                 pr            10i 0 extproc('xmlUCSIsPrivateUse')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsPrivateUse')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsPrivateUseArea...
-     d                 pr            10i 0 extproc('xmlUCSIsPrivateUseArea')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsPrivateUseArea')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsRunic   pr            10i 0 extproc('xmlUCSIsRunic')
-     d  code                         10i 0 value
+     d xmlUCSIsRunic   pr                  extproc('xmlUCSIsRunic')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsShavian...
-     d                 pr            10i 0 extproc('xmlUCSIsShavian')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsShavian')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsSinhala...
-     d                 pr            10i 0 extproc('xmlUCSIsSinhala')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsSinhala')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsSmallFormVariants...
-     d                 pr            10i 0 extproc('xmlUCSIsSmallFormVariants')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsSmallFormVariants')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsSpacingModifierLetters...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsSpacingModifierLetters')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsSpecials...
-     d                 pr            10i 0 extproc('xmlUCSIsSpecials')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsSpecials')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsSuperscriptsandSubscripts...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsSuperscriptsandSubscripts')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsSupplementalArrowsA...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsSupplementalArrowsA')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsSupplementalArrowsB...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsSupplementalArrowsB')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsSupplementalMathematicalOperators...
-     d                 pr            10i 0 extproc('xmlUCSIsSupplementalMathema-
+     d                 pr                  extproc('xmlUCSIsSupplementalMathema-
      d                                     ticalOperators')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsSupplementaryPrivateUseAreaA...
-     d                 pr            10i 0 extproc('xmlUCSIsSupplementaryPrivat-
+     d                 pr                  extproc('xmlUCSIsSupplementaryPrivat-
      d                                     eUseAreaA')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsSupplementaryPrivateUseAreaB...
-     d                 pr            10i 0 extproc('xmlUCSIsSupplementaryPrivat-
+     d                 pr                  extproc('xmlUCSIsSupplementaryPrivat-
      d                                     eUseAreaB')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsSyriac  pr            10i 0 extproc('xmlUCSIsSyriac')
-     d  code                         10i 0 value
+     d xmlUCSIsSyriac  pr                  extproc('xmlUCSIsSyriac')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsTagalog...
-     d                 pr            10i 0 extproc('xmlUCSIsTagalog')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsTagalog')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsTagbanwa...
-     d                 pr            10i 0 extproc('xmlUCSIsTagbanwa')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsTagbanwa')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsTags    pr            10i 0 extproc('xmlUCSIsTags')
-     d  code                         10i 0 value
+     d xmlUCSIsTags    pr                  extproc('xmlUCSIsTags')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsTaiLe   pr            10i 0 extproc('xmlUCSIsTaiLe')
-     d  code                         10i 0 value
+     d xmlUCSIsTaiLe   pr                  extproc('xmlUCSIsTaiLe')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsTaiXuanJingSymbols...
-     d                 pr            10i 0 extproc('xmlUCSIsTaiXuanJingSymbols')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsTaiXuanJingSymbols')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsTamil   pr            10i 0 extproc('xmlUCSIsTamil')
-     d  code                         10i 0 value
+     d xmlUCSIsTamil   pr                  extproc('xmlUCSIsTamil')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsTelugu  pr            10i 0 extproc('xmlUCSIsTelugu')
-     d  code                         10i 0 value
+     d xmlUCSIsTelugu  pr                  extproc('xmlUCSIsTelugu')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsThaana  pr            10i 0 extproc('xmlUCSIsThaana')
-     d  code                         10i 0 value
+     d xmlUCSIsThaana  pr                  extproc('xmlUCSIsThaana')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsThai    pr            10i 0 extproc('xmlUCSIsThai')
-     d  code                         10i 0 value
+     d xmlUCSIsThai    pr                  extproc('xmlUCSIsThai')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsTibetan...
-     d                 pr            10i 0 extproc('xmlUCSIsTibetan')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsTibetan')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsUgaritic...
-     d                 pr            10i 0 extproc('xmlUCSIsUgaritic')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsUgaritic')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsUnifiedCanadianAboriginalSyllabics...
-     d                 pr            10i 0 extproc('xmlUCSIsUnifiedCanadianAbor-
+     d                 pr                  extproc('xmlUCSIsUnifiedCanadianAbor-
      d                                     iginalSyllabics')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsVariationSelectors...
-     d                 pr            10i 0 extproc('xmlUCSIsVariationSelectors')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsVariationSelectors')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsVariationSelectorsSupplement...
-     d                 pr            10i 0 extproc('xmlUCSIsVariationSelectorsS-
+     d                 pr                  extproc('xmlUCSIsVariationSelectorsS-
      d                                     upplement')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsYiRadicals...
-     d                 pr            10i 0 extproc('xmlUCSIsYiRadicals')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsYiRadicals')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsYiSyllables...
-     d                 pr            10i 0 extproc('xmlUCSIsYiSyllables')
-     d  code                         10i 0 value
+     d                 pr                  extproc('xmlUCSIsYiSyllables')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
      d xmlUCSIsYijingHexagramSymbols...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlUCSIsYijingHexagramSymbols')
-     d  code                         10i 0 value
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsBlock   pr            10i 0 extproc('xmlUCSIsBlock')
-     d  code                         10i 0 value
+     d xmlUCSIsBlock   pr                  extproc('xmlUCSIsBlock')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
      d  block                          *   value options(*string)               const char *
 
-     d xmlUCSIsCatC    pr            10i 0 extproc('xmlUCSIsCatC')
-     d  code                         10i 0 value
+     d xmlUCSIsCatC    pr                  extproc('xmlUCSIsCatC')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatCc   pr            10i 0 extproc('xmlUCSIsCatCc')
-     d  code                         10i 0 value
+     d xmlUCSIsCatCc   pr                  extproc('xmlUCSIsCatCc')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatCf   pr            10i 0 extproc('xmlUCSIsCatCf')
-     d  code                         10i 0 value
+     d xmlUCSIsCatCf   pr                  extproc('xmlUCSIsCatCf')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatCo   pr            10i 0 extproc('xmlUCSIsCatCo')
-     d  code                         10i 0 value
+     d xmlUCSIsCatCo   pr                  extproc('xmlUCSIsCatCo')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatCs   pr            10i 0 extproc('xmlUCSIsCatCs')
-     d  code                         10i 0 value
+     d xmlUCSIsCatCs   pr                  extproc('xmlUCSIsCatCs')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatL    pr            10i 0 extproc('xmlUCSIsCatL')
-     d  code                         10i 0 value
+     d xmlUCSIsCatL    pr                  extproc('xmlUCSIsCatL')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatLl   pr            10i 0 extproc('xmlUCSIsCatLl')
-     d  code                         10i 0 value
+     d xmlUCSIsCatLl   pr                  extproc('xmlUCSIsCatLl')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatLm   pr            10i 0 extproc('xmlUCSIsCatLm')
-     d  code                         10i 0 value
+     d xmlUCSIsCatLm   pr                  extproc('xmlUCSIsCatLm')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatLo   pr            10i 0 extproc('xmlUCSIsCatLo')
-     d  code                         10i 0 value
+     d xmlUCSIsCatLo   pr                  extproc('xmlUCSIsCatLo')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatLt   pr            10i 0 extproc('xmlUCSIsCatLt')
-     d  code                         10i 0 value
+     d xmlUCSIsCatLt   pr                  extproc('xmlUCSIsCatLt')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatLu   pr            10i 0 extproc('xmlUCSIsCatLu')
-     d  code                         10i 0 value
+     d xmlUCSIsCatLu   pr                  extproc('xmlUCSIsCatLu')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatM    pr            10i 0 extproc('xmlUCSIsCatM')
-     d  code                         10i 0 value
+     d xmlUCSIsCatM    pr                  extproc('xmlUCSIsCatM')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatMc   pr            10i 0 extproc('xmlUCSIsCatMc')
-     d  code                         10i 0 value
+     d xmlUCSIsCatMc   pr                  extproc('xmlUCSIsCatMc')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatMe   pr            10i 0 extproc('xmlUCSIsCatMe')
-     d  code                         10i 0 value
+     d xmlUCSIsCatMe   pr                  extproc('xmlUCSIsCatMe')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatMn   pr            10i 0 extproc('xmlUCSIsCatMn')
-     d  code                         10i 0 value
+     d xmlUCSIsCatMn   pr                  extproc('xmlUCSIsCatMn')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatN    pr            10i 0 extproc('xmlUCSIsCatN')
-     d  code                         10i 0 value
+     d xmlUCSIsCatN    pr                  extproc('xmlUCSIsCatN')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatNd   pr            10i 0 extproc('xmlUCSIsCatNd')
-     d  code                         10i 0 value
+     d xmlUCSIsCatNd   pr                  extproc('xmlUCSIsCatNd')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatNl   pr            10i 0 extproc('xmlUCSIsCatNl')
-     d  code                         10i 0 value
+     d xmlUCSIsCatNl   pr                  extproc('xmlUCSIsCatNl')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatNo   pr            10i 0 extproc('xmlUCSIsCatNo')
-     d  code                         10i 0 value
+     d xmlUCSIsCatNo   pr                  extproc('xmlUCSIsCatNo')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatP    pr            10i 0 extproc('xmlUCSIsCatP')
-     d  code                         10i 0 value
+     d xmlUCSIsCatP    pr                  extproc('xmlUCSIsCatP')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatPc   pr            10i 0 extproc('xmlUCSIsCatPc')
-     d  code                         10i 0 value
+     d xmlUCSIsCatPc   pr                  extproc('xmlUCSIsCatPc')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatPd   pr            10i 0 extproc('xmlUCSIsCatPd')
-     d  code                         10i 0 value
+     d xmlUCSIsCatPd   pr                  extproc('xmlUCSIsCatPd')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatPe   pr            10i 0 extproc('xmlUCSIsCatPe')
-     d  code                         10i 0 value
+     d xmlUCSIsCatPe   pr                  extproc('xmlUCSIsCatPe')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatPf   pr            10i 0 extproc('xmlUCSIsCatPf')
-     d  code                         10i 0 value
+     d xmlUCSIsCatPf   pr                  extproc('xmlUCSIsCatPf')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatPi   pr            10i 0 extproc('xmlUCSIsCatPi')
-     d  code                         10i 0 value
+     d xmlUCSIsCatPi   pr                  extproc('xmlUCSIsCatPi')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatPo   pr            10i 0 extproc('xmlUCSIsCatPo')
-     d  code                         10i 0 value
+     d xmlUCSIsCatPo   pr                  extproc('xmlUCSIsCatPo')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatPs   pr            10i 0 extproc('xmlUCSIsCatPs')
-     d  code                         10i 0 value
+     d xmlUCSIsCatPs   pr                  extproc('xmlUCSIsCatPs')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatS    pr            10i 0 extproc('xmlUCSIsCatS')
-     d  code                         10i 0 value
+     d xmlUCSIsCatS    pr                  extproc('xmlUCSIsCatS')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatSc   pr            10i 0 extproc('xmlUCSIsCatSc')
-     d  code                         10i 0 value
+     d xmlUCSIsCatSc   pr                  extproc('xmlUCSIsCatSc')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatSk   pr            10i 0 extproc('xmlUCSIsCatSk')
-     d  code                         10i 0 value
+     d xmlUCSIsCatSk   pr                  extproc('xmlUCSIsCatSk')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatSm   pr            10i 0 extproc('xmlUCSIsCatSm')
-     d  code                         10i 0 value
+     d xmlUCSIsCatSm   pr                  extproc('xmlUCSIsCatSm')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatSo   pr            10i 0 extproc('xmlUCSIsCatSo')
-     d  code                         10i 0 value
+     d xmlUCSIsCatSo   pr                  extproc('xmlUCSIsCatSo')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatZ    pr            10i 0 extproc('xmlUCSIsCatZ')
-     d  code                         10i 0 value
+     d xmlUCSIsCatZ    pr                  extproc('xmlUCSIsCatZ')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatZl   pr            10i 0 extproc('xmlUCSIsCatZl')
-     d  code                         10i 0 value
+     d xmlUCSIsCatZl   pr                  extproc('xmlUCSIsCatZl')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatZp   pr            10i 0 extproc('xmlUCSIsCatZp')
-     d  code                         10i 0 value
+     d xmlUCSIsCatZp   pr                  extproc('xmlUCSIsCatZp')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCatZs   pr            10i 0 extproc('xmlUCSIsCatZs')
-     d  code                         10i 0 value
+     d xmlUCSIsCatZs   pr                  extproc('xmlUCSIsCatZs')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
 
-     d xmlUCSIsCat     pr            10i 0 extproc('xmlUCSIsCat')
-     d  code                         10i 0 value
+     d xmlUCSIsCat     pr                  extproc('xmlUCSIsCat')
+     d                                     like(xmlCint)
+     d  code                               value like(xmlCint)
      d  cat                            *   value options(*string)               const char *
 
       /endif                                                                    LIBXML_UNICODE_ENBLD
diff --git a/os400/libxmlrpg/xmlversion.rpgle.in b/os400/libxmlrpg/xmlversion.rpgle.in
index 81676be..955599e 100644
--- a/os400/libxmlrpg/xmlversion.rpgle.in
+++ b/os400/libxmlrpg/xmlversion.rpgle.in
@@ -8,6 +8,7 @@
       /if not defined(XML_VERSION_H__)
       /define XML_VERSION_H__
 
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/xmlexports"
 
       * use those to be sure nothing nasty will happen if
@@ -16,7 +17,7 @@
 
      d xmlCheckVersion...
      d                 pr                  extproc('xmlCheckVersion')
-     d  version                      10i 0 value
+     d  version                            value like(xmlCint)
 
       * LIBXML_DOTTED_VERSION:
       *
diff --git a/os400/libxmlrpg/xmlwriter.rpgle b/os400/libxmlrpg/xmlwriter.rpgle
index f2d3d30..c8530f8 100644
--- a/os400/libxmlrpg/xmlwriter.rpgle
+++ b/os400/libxmlrpg/xmlwriter.rpgle
@@ -12,6 +12,7 @@
 
       /if defined(LIBXML_WRITER_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/xmlstdarg"
       /include "libxmlrpg/xmlIO"
       /include "libxmlrpg/list"
@@ -31,32 +32,32 @@
      d                 pr                  extproc('xmlNewTextWriterFilename')
      d                                     like(xmlTextWriterPtr)
      d  uri                            *   value options(*string)               const char *
-     d  compression                  10i 0 value
+     d  compression                        value like(xmlCint)
 
      d xmlNewTextWriterMemory...
      d                 pr                  extproc('xmlNewTextWriterMemory')
      d                                     like(xmlTextWriterPtr)
      d  buf                                value like(xmlBufferPtr)
-     d  compression                  10i 0 value
+     d  compression                        value like(xmlCint)
 
      d xmlNewTextWriterPushParser...
      d                 pr                  extproc('xmlNewTextWriterPushParser')
      d                                     like(xmlTextWriterPtr)
      d  ctxt                               value like(xmlParserCtxtPtr)
-     d  compression                  10i 0 value
+     d  compression                        value like(xmlCint)
 
      d xmlNewTextWriterDoc...
      d                 pr                  extproc('xmlNewTextWriterDoc')
      d                                     like(xmlTextWriterPtr)
      d  doc                                like(xmlDocPtr)
-     d  compression                  10i 0 value
+     d  compression                        value like(xmlCint)
 
      d xmlNewTextWriterTree...
      d                 pr                  extproc('xmlNewTextWriterTree')
      d                                     like(xmlTextWriterPtr)
      d  doc                                value like(xmlDocPtr)
      d  node                               value like(xmlNodePtr)
-     d  compression                  10i 0 value
+     d  compression                        value like(xmlCint)
 
      d xmlFreeTextWriter...
      d                 pr                  extproc('xmlFreeTextWriter')
@@ -67,29 +68,34 @@
       * Document
 
      d xmlTextWriterStartDocument...
-     d                 pr            10i 0 extproc('xmlTextWriterStartDocument')
+     d                 pr                  extproc('xmlTextWriterStartDocument')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  version                        *   value options(*string)               const char *
      d  encoding                       *   value options(*string)               const char *
      d  standalone                     *   value options(*string)               const char *
 
      d xmlTextWriterEndDocument...
-     d                 pr            10i 0 extproc('xmlTextWriterEndDocument')
+     d                 pr                  extproc('xmlTextWriterEndDocument')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
       * Comments
 
      d xmlTextWriterStartComment...
-     d                 pr            10i 0 extproc('xmlTextWriterStartComment')
+     d                 pr                  extproc('xmlTextWriterStartComment')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
      d xmlTextWriterEndComment...
-     d                 pr            10i 0 extproc('xmlTextWriterEndComment')
+     d                 pr                  extproc('xmlTextWriterEndComment')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
      d xmlTextWriterWriteFormatComment...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteFormatComment')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  format                         *   value options(*string: *nopass)      const char *
      d  #vararg1                       *   value options(*string: *nopass)      void *
@@ -102,46 +108,53 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatComment...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteVFormatComment')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  format                         *   value options(*string)               const char *
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteComment...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteComment')
+     d                 pr                  extproc('xmlTextWriterWriteComment')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  content                        *   value options(*string)               const xmlChar *
 
       * Elements
 
      d xmlTextWriterStartElement...
-     d                 pr            10i 0 extproc('xmlTextWriterStartElement')
+     d                 pr                  extproc('xmlTextWriterStartElement')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
 
      d xmlTextWriterStartElementNS...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterStartElementNS')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  prefix                         *   value options(*string)               const xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
      d  namespaceURI                   *   value options(*string)               const xmlChar *
 
      d xmlTextWriterEndElement...
-     d                 pr            10i 0 extproc('xmlTextWriterEndElement')
+     d                 pr                  extproc('xmlTextWriterEndElement')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
      d xmlTextWriterFullEndElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterFullEndElement')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
       * Elements conveniency functions
 
      d xmlTextWriterWriteFormatElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteFormatElement')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
@@ -155,22 +168,25 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteVFormatElement')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteElement...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteElement')
+     d                 pr                  extproc('xmlTextWriterWriteElement')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               const xmlChar *
 
      d xmlTextWriterWriteFormatElementNS...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteFormatElementNS')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  prefix                         *   value options(*string)               const xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
@@ -186,8 +202,9 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatElementNS...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteVFormatElementNS')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  prefix                         *   value options(*string)               const xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
@@ -196,8 +213,9 @@
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteElementNS...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteElementNS')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  prefix                         *   value options(*string)               const xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
@@ -207,8 +225,9 @@
       * Text
 
      d xmlTextWriterWriteFormatRaw...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteFormatRaw')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  format                         *   value options(*string)               const char *
      d  #vararg1                       *   value options(*string: *nopass)      void *
@@ -221,26 +240,30 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatRaw...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteVFormatRaw')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  format                         *   value options(*string)               const char *
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteRawLen...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteRawLen')
+     d                 pr                  extproc('xmlTextWriterWriteRawLen')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  content                        *   value options(*string)               const xmlChar *
-     d  len                          10i 0 value
+     d  len                                value like(xmlCint)
 
      d xmlTextWriterWriteRaw...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteRaw')
+     d                 pr                  extproc('xmlTextWriterWriteRaw')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  content                        *   value options(*string)               const xmlChar *
 
      d xmlTextWriterWriteFormatString...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteFormatString')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  format                         *   value options(*string)               const char *
      d  #vararg1                       *   value options(*string: *nopass)      void *
@@ -253,56 +276,64 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatString...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteVFormatString')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  format                         *   value options(*string)               const char *
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteString...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteString')
+     d                 pr                  extproc('xmlTextWriterWriteString')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  content                        *   value options(*string)               const xmlChar *
 
      d xmlTextWriterWriteBase64...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteBase64')
+     d                 pr                  extproc('xmlTextWriterWriteBase64')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  data                           *   value options(*string)               const char *
-     d  start                        10i 0 value
-     d  len                          10i 0 value
+     d  start                              value like(xmlCint)
+     d  len                                value like(xmlCint)
 
      d xmlTextWriterWriteBinHex...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteBinHex')
+     d                 pr                  extproc('xmlTextWriterWriteBinHex')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  data                           *   value options(*string)               const char *
-     d  start                        10i 0 value
-     d  len                          10i 0 value
+     d  start                              value like(xmlCint)
+     d  len                                value like(xmlCint)
 
       * Attributes
 
      d xmlTextWriterStartAttribute...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterStartAttribute')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
 
      d xmlTextWriterStartAttributeNS...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterStartAttributeNS')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  prefix                         *   value options(*string)               const xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
      d  namespaceURI                   *   value options(*string)               const xmlChar *
 
      d xmlTextWriterEndAttribute...
-     d                 pr            10i 0 extproc('xmlTextWriterEndAttribute')
+     d                 pr                  extproc('xmlTextWriterEndAttribute')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
       * Attributes conveniency functions
 
      d xmlTextWriterWriteFormatAttribute...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteFormatAttribute')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
@@ -316,24 +347,27 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatAttribute...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteVFormatAttribute')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteAttribute...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteAttribute')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               const xmlChar *
 
      d xmlTextWriterWriteFormatAttributeNS...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteFormatAttributeNS'
      d                                     )
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  prefix                         *   value options(*string)               const xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
@@ -349,8 +383,9 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatAttributeNS...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteVFormatAt-
+     d                 pr                  extproc('xmlTextWriterWriteVFormatAt-
      d                                     tributeNS')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  prefix                         *   value options(*string)               const xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
@@ -359,8 +394,9 @@
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteAttributeNS...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteAttributeNS')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  prefix                         *   value options(*string)               const xmlChar *
      d  name                           *   value options(*string)               const xmlChar *
@@ -370,18 +406,21 @@
       * PI's
 
      d xmlTextWriterStartPI...
-     d                 pr            10i 0 extproc('xmlTextWriterStartPI')
+     d                 pr                  extproc('xmlTextWriterStartPI')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  target                         *   value options(*string)               const xmlChar *
 
      d xmlTextWriterEndPI...
-     d                 pr            10i 0 extproc('xmlTextWriterEndPI')
+     d                 pr                  extproc('xmlTextWriterEndPI')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
       * PI conveniency functions
 
      d xmlTextWriterWriteFormatPI...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteFormatPI')
+     d                 pr                  extproc('xmlTextWriterWriteFormatPI')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  target                         *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
@@ -395,15 +434,17 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatPI...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteVFormatPI')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  target                         *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWritePI...
-     d                 pr            10i 0 extproc('xmlTextWriterWritePI')
+     d                 pr                  extproc('xmlTextWriterWritePI')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  target                         *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               const xmlChar *
@@ -413,7 +454,8 @@
       * This macro maps to xmlTextWriterWritePI
 
      d xmlTextWriterWriteProcessingInstruction...
-     d                 pr            10i 0 extproc('xmlTextWriterWritePI')
+     d                 pr                  extproc('xmlTextWriterWritePI')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  target                         *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               const xmlChar *
@@ -421,18 +463,21 @@
       * CDATA
 
      d xmlTextWriterStartCDATA...
-     d                 pr            10i 0 extproc('xmlTextWriterStartCDATA')
+     d                 pr                  extproc('xmlTextWriterStartCDATA')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
      d xmlTextWriterEndCDATA...
-     d                 pr            10i 0 extproc('xmlTextWriterEndCDATA')
+     d                 pr                  extproc('xmlTextWriterEndCDATA')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
       * CDATA conveniency functions
 
      d xmlTextWriterWriteFormatCDATA...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteFormatCDATA')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  format                         *   value options(*string)               const char *
      d  #vararg1                       *   value options(*string: *nopass)      void *
@@ -445,35 +490,40 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatCDATA...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteVFormatCDATA')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  format                         *   value options(*string)               const char *
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteCDATA...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteCDATA')
+     d                 pr                  extproc('xmlTextWriterWriteCDATA')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  content                        *   value options(*string)               const xmlChar *
 
       * DTD
 
      d xmlTextWriterStartDTD...
-     d                 pr            10i 0 extproc('xmlTextWriterStartDTD')
+     d                 pr                  extproc('xmlTextWriterStartDTD')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  pubid                          *   value options(*string)               const xmlChar *
      d  sysid                          *   value options(*string)               const xmlChar *
 
      d xmlTextWriterEndDTD...
-     d                 pr            10i 0 extproc('xmlTextWriterEndDTD')
+     d                 pr                  extproc('xmlTextWriterEndDTD')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
       * DTD conveniency functions
 
      d xmlTextWriterWriteFormatDTD...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteFormatDTD')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  pubid                          *   value options(*string)               const xmlChar *
@@ -489,8 +539,9 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatDTD...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteVFormatDTD')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  pubid                          *   value options(*string)               const xmlChar *
@@ -499,7 +550,8 @@
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteDTD...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteDTD')
+     d                 pr                  extproc('xmlTextWriterWriteDTD')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  pubid                          *   value options(*string)               const xmlChar *
@@ -511,7 +563,8 @@
       * this macro maps to xmlTextWriterWriteDTD
 
      d xmlTextWriterWriteDocType...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteDTD')
+     d                 pr                  extproc('xmlTextWriterWriteDTD')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  pubid                          *   value options(*string)               const xmlChar *
@@ -521,20 +574,23 @@
       * DTD element definition
 
      d xmlTextWriterStartDTDElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterStartDTDElement')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
 
      d xmlTextWriterEndDTDElement...
-     d                 pr            10i 0 extproc('xmlTextWriterEndDTDElement')
+     d                 pr                  extproc('xmlTextWriterEndDTDElement')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
       * DTD element definition conveniency functions
 
      d xmlTextWriterWriteFormatDTDElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteFormatDTDElement')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
@@ -548,17 +604,19 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatDTDElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteVFormatDTDElement'
      d                                     )
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteDTDElement...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteDTDElement')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               const xmlChar *
@@ -566,20 +624,23 @@
       * DTD attribute list definition
 
      d xmlTextWriterStartDTDAttlist...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterStartDTDAttlist')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
 
      d xmlTextWriterEndDTDAttlist...
-     d                 pr            10i 0 extproc('xmlTextWriterEndDTDAttlist')
+     d                 pr                  extproc('xmlTextWriterEndDTDAttlist')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
       * DTD attribute list definition conveniency functions
 
      d xmlTextWriterWriteFormatDTDAttlist...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteFormatDTDAttlist')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
@@ -593,17 +654,19 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatDTDAttlist...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteVFormatDTDAttlist'
      d                                     )
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteDTDAttlist...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteDTDAttlist')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               const xmlChar *
@@ -611,23 +674,26 @@
       * DTD entity definition
 
      d xmlTextWriterStartDTDEntity...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterStartDTDEntity')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
-     d  pe                           10i 0 value
+     d  pe                                 value like(xmlCint)
      d  name                           *   value options(*string)               const xmlChar *
 
      d xmlTextWriterEndDTDEntity...
-     d                 pr            10i 0 extproc('xmlTextWriterEndDTDEntity')
+     d                 pr                  extproc('xmlTextWriterEndDTDEntity')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
       * DTD entity definition conveniency functions
 
      d xmlTextWriterWriteFormatDTDInternalEntity...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteFormatDTD-
+     d                 pr                  extproc('xmlTextWriterWriteFormatDTD-
      d                                     InternalEntity')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
-     d  pe                           10i 0 value
+     d  pe                                 value like(xmlCint)
      d  name                           *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
      d  #vararg1                       *   value options(*string: *nopass)      void *
@@ -640,47 +706,52 @@
      d  #vararg8                       *   value options(*string: *nopass)      void *
 
      d xmlTextWriterWriteVFormatDTDInternalEntity...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteVFormatDT-
+     d                 pr                  extproc('xmlTextWriterWriteVFormatDT-
      d                                     DInternalEntity')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
-     d  pe                           10i 0 value
+     d  pe                                 value like(xmlCint)
      d  name                           *   value options(*string)               const xmlChar *
      d  format                         *   value options(*string)               const char *
      d  argptr                             likeds(xmlVaList)
 
      d xmlTextWriterWriteDTDInternalEntity...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteDTDInternalEntity'
      d                                     )
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
-     d  pe                           10i 0 value
+     d  pe                                 value like(xmlCint)
      d  name                           *   value options(*string)               const xmlChar *
      d  content                        *   value options(*string)               const xmlChar *
 
      d xmlTextWriterWriteDTDExternalEntity...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteDTDExternalEntity'
      d                                     )
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
-     d  pe                           10i 0 value
+     d  pe                                 value like(xmlCint)
      d  name                           *   value options(*string)               const xmlChar *
      d  pubid                          *   value options(*string)               const xmlChar *
      d  sysid                          *   value options(*string)               const xmlChar *
      d  ndataid                        *   value options(*string)               const xmlChar *
 
      d xmlTextWriterWriteDTDExternalEntityContents...
-     d                 pr            10i 0 extproc('xmlTextWriterWriteDTDExtern-
+     d                 pr                  extproc('xmlTextWriterWriteDTDExtern-
      d                                     alEntityContents')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  pubid                          *   value options(*string)               const xmlChar *
      d  sysid                          *   value options(*string)               const xmlChar *
      d  ndataid                        *   value options(*string)               const xmlChar *
 
      d xmlTextWriterWriteDTDEntity...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteDTDEntity')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
-     d  pe                           10i 0 value
+     d  pe                                 value like(xmlCint)
      d  name                           *   value options(*string)               const xmlChar *
      d  pubid                          *   value options(*string)               const xmlChar *
      d  sysid                          *   value options(*string)               const xmlChar *
@@ -690,8 +761,9 @@
       * DTD notation definition
 
      d xmlTextWriterWriteDTDNotation...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterWriteDTDNotation')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  pubid                          *   value options(*string)               const xmlChar *
@@ -700,25 +772,29 @@
       * Indentation
 
      d xmlTextWriterSetIndent...
-     d                 pr            10i 0 extproc('xmlTextWriterSetIndent')
+     d                 pr                  extproc('xmlTextWriterSetIndent')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
-     d  indent                       10i 0 value
+     d  indent                             value like(xmlCint)
 
      d xmlTextWriterSetIndentString...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlTextWriterSetIndentString')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  str                            *   value options(*string)               const xmlChar *
 
      d xmlTextWriterSetQuoteChar...
-     d                 pr            10i 0 extproc('xmlTextWriterSetQuoteChar')
+     d                 pr                  extproc('xmlTextWriterSetQuoteChar')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
      d  quotechar                          value like(xmlChar)
 
       * misc
 
      d xmlTextWriterFlush...
-     d                 pr            10i 0 extproc('xmlTextWriterFlush')
+     d                 pr                  extproc('xmlTextWriterFlush')
+     d                                     like(xmlCint)
      d  writer                             value like(xmlTextWriterPtr)
 
       /endif                                                                    LIBXML_WRITER_ENABLD
diff --git a/os400/libxmlrpg/xpath.rpgle b/os400/libxmlrpg/xpath.rpgle
index 3f3be32..6e591ee 100644
--- a/os400/libxmlrpg/xpath.rpgle
+++ b/os400/libxmlrpg/xpath.rpgle
@@ -21,6 +21,7 @@
 
       /if defined(LIBXML_XPATH_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/xmlerror"
       /include "libxmlrpg/tree"
       /include "libxmlrpg/hash"
@@ -36,7 +37,8 @@
 
       * The set of XPath error codes.
 
-     d xmlXPathError   s             10i 0 based(######typedef######)           enum
+     d xmlXPathError   s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XPATH_EXPRESSION_OK...
      d                 c                   0
      d  XPATH_NUMBER_ERROR...
@@ -94,8 +96,8 @@
 
      d xmlNodeSet      ds                  based(xmlNodeSetPtr)
      d                                     align qualified
-     d  nodeNr                       10i 0                                      Set node count
-     d  nodeMax                      10i 0                                      Max # nodes in set
+     d  nodeNr                             like(xmlCint)                        Set node count
+     d  nodeMax                            like(xmlCint)                        Max # nodes in set
      d  nodeTab                        *                                        xmlNodePtr *
 
       * An expression is evaluated to yield an object, which
@@ -108,7 +110,8 @@
       * @@ XPointer will add more types !
 
      d xmlXPathObjectType...
-     d                 s             10i 0 based(######typedef######)           enum
+     d                 s                   based(######typedef######)
+     d                                     like(xmlCenum)
      d  XPATH_UNDEFINED...
      d                 c                   0
      d  XPATH_NODESET  c                   1
@@ -130,13 +133,13 @@
      d                                     align qualified
      d  type                               like(xmlXPathObjectType)
      d  nodesetval                         like(xmlNodeSetPtr)
-     d  boolval                      10i 0
-     d  floatval                      8f
+     d  boolval                            like(xmlCint)
+     d  floatval                           like(xmlCdouble)
      d  stringval                      *                                        xmlChar *
      d  user                           *                                        void *
-     d  index                        10i 0
+     d  index                              like(xmlCint)
      d  user2                          *                                        void *
-     d  index2                       10i 0
+     d  index2                             like(xmlCint)
 
       * xmlXPathConvertFunc:
       * @obj:  an XPath object
@@ -298,82 +301,82 @@
      d  node                               like(xmlNodePtr)                     Current node
       *
      d  nb_variables_unused...                                                  Unused (hash table)
-     d                               10i 0
-     d  max_variables_unused...                                                  Unused (hash table)
-     d                               10i 0
-     d  varHash                            like(xmlHashTablePtr)                 Defined variables
+     d                                     like(xmlCint)
+     d  max_variables_unused...                                                 Unused (hash table)
+     d                                     like(xmlCint)
+     d  varHash                            like(xmlHashTablePtr)                Defined variables
       *
-     d  nb_types                     10i 0                                       # of defined types
-     d  max_types                    10i 0                                       Max number of types
-     d  types                              like(xmlXPathTypePtr)                 Defined types array
+     d  nb_types                           like(xmlCint)                        # of defined types
+     d  max_types                          like(xmlCint)                        Max number of types
+     d  types                              like(xmlXPathTypePtr)                Defined types array
       *
      d  nb_funcs_unused...                                                      Unused (hash table)
-     d                               10i 0
-     d  max_funcs_unused...                                                      Unused (hash table)
-     d                               10i 0
-     d  funcHash                           like(xmlHashTablePtr)                 Defined functions
+     d                                     like(xmlCint)
+     d  max_funcs_unused...                                                     Unused (hash table)
+     d                                     like(xmlCint)
+     d  funcHash                           like(xmlHashTablePtr)                Defined functions
       *
-     d  nb_axis                      10i 0                                       # of defined axis
-     d  max_axis                     10i 0                                       Max number of axis
-     d  axis                               like(xmlXPathAxisPtr)                 Defined axis array
+     d  nb_axis                            like(xmlCint)                        # of defined axis
+     d  max_axis                           like(xmlCint)                        Max number of axis
+     d  axis                               like(xmlXPathAxisPtr)                Defined axis array
       *
       * the namespace nodes of the context node
       *
-     d  namespaces                     *                                         xmlNsPtr *
-     d  nsNr                         10i 0                                       # scope namespaces
-     d  user                           *   procptr                               Function to free
+     d  namespaces                     *                                        xmlNsPtr *
+     d  nsNr                               like(xmlCint)                        # scope namespaces
+     d  user                           *   procptr                              Function to free
       *
       * extra variables
       *
-     d  contextSize                  10i 0                                       The context size
+     d  contextSize                        like(xmlCint)                        The context size
      d  proximityPosition...
-     d                               10i 0
+     d                                     like(xmlCint)
       *
       * extra stuff for XPointer
       *
-     d  xptr                         10i 0                                       XPointer context ?
-     d  here                               like(xmlNodePtr)                      For here()
-     d  origin                             like(xmlNodePtr)                      For origin()
+     d  xptr                               like(xmlCint)                        XPointer context ?
+     d  here                               like(xmlNodePtr)                     For here()
+     d  origin                             like(xmlNodePtr)                     For origin()
       *
       * the set of namespace declarations in scope for the expression
       *
-     d  nsHash                             like(xmlHashTablePtr)                 Namespace hashtable
-     d  varLookupFunc                      like(xmlXPathVariableLookupFunc)      Var lookup function
-     d  varLookupData                  *                                         void *
+     d  nsHash                             like(xmlHashTablePtr)                Namespace hashtable
+     d  varLookupFunc                      like(xmlXPathVariableLookupFunc)     Var lookup function
+     d  varLookupData                  *                                        void *
       *
       * Possibility to link in an extra item
       *
-     d  extra                          *                                         void *
+     d  extra                          *                                        void *
       *
       * The function name and URI when calling a function
       *
-     d  function                       *                                         const xmlChar *
-     d  functionURI                    *                                         const xmlChar *
+     d  function                       *                                        const xmlChar *
+     d  functionURI                    *                                        const xmlChar *
       *
       * function lookup function and data
       *
-     d  funcLookupFunc...                                                        Func lookup func
+     d  funcLookupFunc...                                                       Func lookup func
      d                                     like(xmlXPathVariableLookupFunc)
-     d  funcLookupData...                                                        void *
+     d  funcLookupData...                                                       void *
      d                                 *
       *
       * temporary namespace lists kept for walking the namespace axis
       *
      d  tmpNsList                      *                                        xmlNsPtr *
-     d  tmpNsNr                      10i 0                                      # scope namespaces
+     d  tmpNsNr                            like(xmlCint)                        # scope namespaces
       *
       * error reporting mechanism
       *
      d  userData                       *                                        void *
      d  error                              like(xmlStructuredErrorFunc)         Error callback
-     d  lastError                          like(xmlError)                       The last error
+     d  lastError                          likeds(xmlError)                     The last error
      d  debugNode                          like(xmlNodePtr)                     XSLT source node
       *
       * dictionary
       *
      d  dict                               like(xmlDictPtr)                     Dictionary if any
       *
-     d  flags                        10i 0                                      Compilation control
+     d  flags                              like(xmlCint)                        Compilation control
       *
       * Cache for reusal of XPath objects
       *
@@ -395,19 +398,19 @@
      d  cur                            *                                        const xmlChar *
      d  base                           *                                        const xmlChar *
       *
-     d  error                        10i 0                                      Error code
+     d  error                              like(xmlCint)                        Error code
       *
      d  context                            like(xmlXPathContextPtr)             Evaluation context
      d  value                              like(xmlXPathObjectPtr)              The current value
-     d  valueNr                      10i 0                                      Value stack depth
-     d  valueMax                     10i 0                                      Max stack depth
+     d  valueNr                            like(xmlCint)                        Value stack depth
+     d  valueMax                           like(xmlCint)                        Max stack depth
      d  valueTab                       *                                        xmlXPathObjectPtr *
       *
      d  comp                               like(xmlXPathCompExprPtr)            Precompiled expr.
-     d  xptr                         10i 0                                      XPointer expression?
+     d  xptr                               like(xmlCint)                        XPointer expression?
      d  ancestor                           like(xmlNodePtr)                     To walk prec. axis
       *
-     d  valueFrame                   10i 0                                      Limit stack pop
+     d  valueFrame                         like(xmlCint)                        Limit stack pop
 
       **************************************************************************
       *                                                                        *
@@ -417,9 +420,14 @@
 
       * Objects and Nodesets handling
 
-     d xmlXPathNAN     s              8f   import('xmlXPathNAN')
-     d xmlXPathPINF    s              8f   import('xmlXPathPINF')
-     d xmlXPathNINF    s              8f   import('xmlXPathNINF')
+     d xmlXPathNAN     s                   import('xmlXPathNAN')
+     d                                     like(xmlCdouble)
+
+     d xmlXPathPINF    s                   import('xmlXPathPINF')
+     d                                     like(xmlCdouble)
+
+     d xmlXPathNINF    s                   import('xmlXPathNINF')
+     d                                     like(xmlCdouble)
 
      d xmlXPathFreeObject...
      d                 pr                  extproc('xmlXPathFreeObject')
@@ -444,62 +452,71 @@
      d val                                 value like(xmlXPathObjectPtr)
 
      d xmlXPathCmpNodes...
-     d                 pr            10i 0 extproc('xmlXPathCmpNodes')
+     d                 pr                  extproc('xmlXPathCmpNodes')
+     d                                     like(xmlCint)
      d node1                               value like(xmlNodePtr)
      d node2                               value like(xmlNodePtr)
 
       * Conversion functions to basic types.
 
      d xmlXPathCastNumberToBoolean...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                      'xmlXPathCastNumberToBoolean')
-     d val                            8f   value
+     d                                     like(xmlCint)
+     d val                                 value like(xmlCdouble)
 
      d xmlXPathCastStringToBoolean...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                      'xmlXPathCastStringToBoolean')
+     d                                     like(xmlCint)
      d val                             *   value options(*string)               const xmlChar *
 
      d xmlXPathCastNodeSetToBoolean...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlXPathCastNodeSetToBoolean')
+     d                                     like(xmlCint)
      d ns                                  value like(xmlNodeSetPtr)
 
      d xmlXPathCastToBoolean...
-     d                 pr            10i 0 extproc('xmlXPathCastToBoolean')
+     d                 pr                  extproc('xmlXPathCastToBoolean')
+     d                                     like(xmlCint)
      d val                                 value like(xmlXPathObjectPtr)
 
      d xmlXPathCastBooleanToNumber...
      d                 pr                  extproc(
      d                                      'xmlXPathCastBooleanToNumber')
-     d                                8f
-     d val                           10i 0 value
+     d                                     like(xmlCdouble)
+     d val                                 value like(xmlCint)
 
      d xmlXPathCastStringToNumber...
-     d                 pr             8f   extproc('xmlXPathCastStringToNumber')
+     d                 pr                  extproc('xmlXPathCastStringToNumber')
+     d                                     like(xmlCdouble)
      d val                             *   value options(*string)               const xmlChar *
 
      d xmlXPathCastNodeToNumber...
-     d                 pr             8f   extproc('xmlXPathCastNodeToNumber')
+     d                 pr                  extproc('xmlXPathCastNodeToNumber')
+     d                                     like(xmlCdouble)
      d node                                value like(xmlNodePtr)
 
      d xmlXPathCastNodeSetToNumber...
-     d                 pr             8f   extproc(
+     d                 pr                  extproc(
      d                                      'xmlXPathCastNodeSetToNumber')
+     d                                     like(xmlCdouble)
      d ns                                  value like(xmlNodeSetPtr)
 
      d xmlXPathCastToNumber...
-     d                 pr             8f   extproc('xmlXPathCastToNumber')
+     d                 pr                  extproc('xmlXPathCastToNumber')
+     d                                     like(xmlCdouble)
      d val                                 value like(xmlXPathObjectPtr)
 
      d xmlXPathCastBooleanToString...
      d                 pr              *   extproc(                             xmlChar *
      d                                      'xmlXPathCastBooleanToString')
-     d val                           10i 0 value
+     d val                                 value like(xmlCint)
 
      d xmlXPathCastNumberToString...
      d                 pr              *   extproc('xmlXPathCastNumberToString')xmlChar *
-     d val                            8f   value
+     d val                                 value like(xmlCdouble)
 
      d xmlXPathCastNodeToString...
      d                 pr              *   extproc('xmlXPathCastNodeToString')  xmlChar *
@@ -541,20 +558,23 @@
      d ctxt                                value like(xmlXPathContextPtr)
 
      d xmlXPathContextSetCache...
-     d                 pr            10i 0 extproc('xmlXPathContextSetCache')
+     d                 pr                  extproc('xmlXPathContextSetCache')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlXPathContextPtr)
-     d active                        10i 0 value
-     d value                         10i 0 value
-     d options                       10i 0 value
+     d active                              value like(xmlCint)
+     d value                               value like(xmlCint)
+     d options                             value like(xmlCint)
 
       * Evaluation functions.
 
      d xmlXPathOrderDocElems...
-     d                 pr            20i 0 extproc('xmlXPathOrderDocElems')
+     d                 pr                  extproc('xmlXPathOrderDocElems')
+     d                                     like(xmlClong)
      d doc                                 value like(xmlDocPtr)
 
      d xmlXPathSetContextNode...
-     d                 pr            10i 0 extproc('xmlXPathSetContextNode')
+     d                 pr                  extproc('xmlXPathSetContextNode')
+     d                                     like(xmlCint)
      d node                                value like(xmlNodePtr)
      d ctx                                 value like(xmlXPathContextPtr)
 
@@ -577,7 +597,8 @@
      d ctxt                                value like(xmlXPathContextPtr)
 
      d xmlXPathEvalPredicate...
-     d                 pr            10i 0 extproc('xmlXPathEvalPredicate')
+     d                 pr                  extproc('xmlXPathEvalPredicate')
+     d                                     like(xmlCint)
      d ctxt                                value like(xmlXPathContextPtr)
      d res                                 value like(xmlXPathObjectPtr)
 
@@ -601,8 +622,9 @@
      d ctx                                 value like(xmlXPathContextPtr)
 
      d xmlXPathCompiledEvalToBoolean...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlXPathCompiledEvalToBoolean')
+     d                                     like(xmlCint)
      d comp                                value like(xmlXPathCompExprPtr)
      d ctxt                                value like(xmlXPathContextPtr)
 
@@ -620,11 +642,13 @@
       /if defined(XML_TESTVAL)
      d xmlXPathInit    pr                  extproc('xmlXPathInit')
 
-     d xmlXPathIsNaN   pr            10i 0 extproc('xmlXPathIsNaN')
-     d val                            8f   value
+     d xmlXPathIsNaN   pr                  extproc('xmlXPathIsNaN')
+     d                                     like(xmlCint)
+     d val                                 value like(xmlCdouble)
 
-     d xmlXPathIsInf   pr            10i 0 extproc('xmlXPathIsInf')
-     d val                            8f   value
+     d xmlXPathIsInf   pr                  extproc('xmlXPathIsInf')
+     d                                     like(xmlCint)
+     d val                                 value like(xmlCdouble)
 
       /undefine XML_TESTVAL
       /endif
@@ -633,17 +657,19 @@
 
       /if defined(LIBXML_XPATH_ENABLED)
      d xmlXPathNodeSetGetLength...
-     d                 pr            10i 0 extproc('__xmlXPathNodeSetGetLength')
+     d                 pr                  extproc('__xmlXPathNodeSetGetLength')
+     d                                     like(xmlCint)
      d  ns                                 value like(xmlNodeSetPtr)
 
      d xmlXPathNodeSetItem...
      d                 pr                  extproc('__xmlXPathNodeSetItem')
      d                                     like(xmlNodePtr)
      d  ns                                 value like(xmlNodeSetPtr)
-     d  index                        10i 0 value
+     d  index                              value like(xmlCint)
 
      d xmlXPathNodeSetIsEmpty...
-     d                 pr            10i 0 extproc('__xmlXPathNodeSetIsEmpty')
+     d                 pr                  extproc('__xmlXPathNodeSetIsEmpty')
+     d                                     like(xmlCint)
      d  ns                                 value like(xmlNodeSetPtr)
       /endif                                                                    LIBXML_XPATH_ENABLED
       /endif                                                                    XML_XPATH_H__
diff --git a/os400/libxmlrpg/xpathInternals.rpgle b/os400/libxmlrpg/xpathInternals.rpgle
index 69f3ae0..a6d12e1 100644
--- a/os400/libxmlrpg/xpathInternals.rpgle
+++ b/os400/libxmlrpg/xpathInternals.rpgle
@@ -11,10 +11,12 @@
       /define XML_XPATH_INTERNALS_H__
 
       /include "libxmlrpg/xmlversion"
-      /include "libxmlrpg/xpath"
 
       /if defined(LIBXML_XPATH_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
+      /include "libxmlrpg/xpath"
+
       ************************************************************************
       *                                                                      *
       *                            Helpers                                   *
@@ -25,11 +27,13 @@
       * shouldn't be used in #ifdef's preprocessor instructions.
 
      d xmlXPathPopBoolean...
-     d                 pr            10i 0 extproc('xmlXPathPopBoolean')
+     d                 pr                  extproc('xmlXPathPopBoolean')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXPathParserContextPtr)
 
      d xmlXPathPopNumber...
-     d                 pr             8f   extproc('xmlXPathPopNumber')
+     d                 pr                  extproc('xmlXPathPopNumber')
+     d                                     like(xmlCdouble)
      d  ctxt                               value like(xmlXPathParserContextPtr)
 
      d xmlXPathPopString...
@@ -71,31 +75,32 @@
      d                 pr                  extproc('xmlXPatherror')
      d  ctxt                               value like(xmlXPathParserContextPtr)
      d  file                           *   value options(*string)               const char *
-     d  line                         10i 0 value
-     d  no                           10i 0 value
+     d  line                               value like(xmlCint)
+     d  no                                 value like(xmlCint)
 
      d xmlXPathErr     pr                  extproc('xmlXPathErr')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  error                        10i 0 value
+     d  error                              value like(xmlCint)
 
       /if defined(LIBXML_DEBUG_ENABLED)
      d xmlXPathDebugDumpObject...
      d                 pr                  extproc('xmlXPathDebugDumpObject')
      d  output                         *   value                                FILE *
      d  cur                                value like(xmlXPathObjectPtr)
-     d  depth                        10i 0 value
+     d  depth                              value like(xmlCint)
 
      d xmlXPathDebugDumpCompExpr...
      d                 pr                  extproc('xmlXPathDebugDumpCompExpr')
      d  output                         *   value                                FILE *
      d  comp                               value like(xmlXPathCompExprPtr)
-     d  depth                        10i 0 value
+     d  depth                              value like(xmlCint)
       /endif
 
       * NodeSet handling.
 
      d xmlXPathNodeSetContains...
-     d                 pr            10i 0 extproc('xmlXPathNodeSetContains')
+     d                 pr                  extproc('xmlXPathNodeSetContains')
+     d                                     like(xmlCint)
      d  cur                                value like(xmlNodeSetPtr)
      d  val                                value like(xmlNodePtr)
 
@@ -122,7 +127,8 @@
      d  nodes                              value like(xmlNodeSetPtr)
 
      d xmlXPathHasSameNodes...
-     d                 pr            10i 0 extproc('xmlXPathHasSameNodes')
+     d                 pr                  extproc('xmlXPathHasSameNodes')
+     d                                     like(xmlCint)
      d  nodes1                             value like(xmlNodeSetPtr)
      d  nodes2                             value like(xmlNodeSetPtr)
 
@@ -177,7 +183,8 @@
       * Extending a context.
 
      d xmlXPathRegisterNs...
-     d                 pr            10i 0 extproc('xmlXPathRegisterNs')
+     d                 pr                  extproc('xmlXPathRegisterNs')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXPathContextPtr)
      d  prefix                         *   value options(*string)               const xmlChar *
      d  ns_uri                         *   value options(*string)               const xmlChar *
@@ -193,26 +200,30 @@
      d  ctxt                               value like(xmlXPathContextPtr)
 
      d xmlXPathRegisterFunc...
-     d                 pr            10i 0 extproc('xmlXPathRegisterFunc')
+     d                 pr                  extproc('xmlXPathRegisterFunc')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXPathContextPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  f                                  value like(xmlXPathFunction)
 
      d xmlXPathRegisterFuncNS...
-     d                 pr            10i 0 extproc('xmlXPathRegisterFuncNS')
+     d                 pr                  extproc('xmlXPathRegisterFuncNS')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXPathContextPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  ns_uri                         *   value options(*string)               const xmlChar *
      d  f                                  value like(xmlXPathFunction)
 
      d xmlXPathRegisterVariable...
-     d                 pr            10i 0 extproc('xmlXPathRegisterVariable')
+     d                 pr                  extproc('xmlXPathRegisterVariable')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXPathContextPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  value                              value like(xmlXPathObjectPtr)
 
      d xmlXPathRegisterVariableNS...
-     d                 pr            10i 0 extproc('xmlXPathRegisterVariableNS')
+     d                 pr                  extproc('xmlXPathRegisterVariableNS')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXPathContextPtr)
      d  name                           *   value options(*string)               const xmlChar *
      d  ns_uri                         *   value options(*string)               const xmlChar *
@@ -273,7 +284,8 @@
      d                                     like(xmlXPathObjectPtr)
      d  ctxt                               value like(xmlXPathParserContextPtr)
 
-     d valuePush       pr            10i 0 extproc('valuePush')
+     d valuePush       pr                  extproc('valuePush')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXPathParserContextPtr)
      d  value                              value like(xmlXPathObjectPtr)
 
@@ -300,12 +312,12 @@
      d xmlXPathNewFloat...
      d                 pr                  extproc('xmlXPathNewFloat')
      d                                     like(xmlXPathObjectPtr)
-     d  val                           8f   value
+     d  val                                value like(xmlCdouble)
 
      d xmlXPathNewBoolean...
      d                 pr                  extproc('xmlXPathNewBoolean')
      d                                     like(xmlXPathObjectPtr)
-     d  val                          10i 0 value
+     d  val                                value like(xmlCint)
 
      d xmlXPathNewNodeSet...
      d                 pr                  extproc('xmlXPathNewNodeSet')
@@ -318,17 +330,20 @@
      d  val                                value like(xmlNodePtr)
 
      d xmlXPathNodeSetAdd...
-     d                 pr            10i 0 extproc('xmlXPathNodeSetAdd')
+     d                 pr                  extproc('xmlXPathNodeSetAdd')
+     d                                     like(xmlCint)
      d  cur                                value like(xmlNodeSetPtr)
      d  val                                value like(xmlNodePtr)
 
      d xmlXPathNodeSetAddUnique...
-     d                 pr            10i 0 extproc('xmlXPathNodeSetAddUnique')
+     d                 pr                  extproc('xmlXPathNodeSetAddUnique')
+     d                                     like(xmlCint)
      d  cur                                value like(xmlNodeSetPtr)
      d  val                                value like(xmlNodePtr)
 
      d xmlXPathNodeSetAddNs...
-     d                 pr            10i 0 extproc('xmlXPathNodeSetAddNs')
+     d                 pr                  extproc('xmlXPathNodeSetAddNs')
+     d                                     like(xmlCint)
      d  cur                                value like(xmlNodeSetPtr)
      d  node                               value like(xmlNodePtr)
      d  ns                                 value like(xmlNsPtr)
@@ -355,12 +370,14 @@
       * Existing functions.
 
      d xmlXPathStringEvalNumber...
-     d                 pr             8f   extproc('xmlXPathStringEvalNumber')
+     d                 pr                  extproc('xmlXPathStringEvalNumber')
+     d                                     like(xmlCdouble)
      d  str                            *   value options(*string)               const xmlChar *
 
      d xmlXPathEvaluatePredicateResult...
-     d                 pr            10i 0 extproc(
+     d                 pr                  extproc(
      d                                     'xmlXPathEvaluatePredicateResult')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXPathParserContextPtr)
      d  res                                value like(xmlXPathObjectPtr)
 
@@ -383,7 +400,7 @@
      d xmlXPathNodeSetRemove...
      d                 pr                  extproc('xmlXPathNodeSetRemove')
      d  cur                                value like(xmlNodeSetPtr)
-     d  val                          10i 0 value
+     d  val                                value like(xmlCint)
 
      d xmlXPathNewNodeSetList...
      d                 pr                  extproc('xmlXPathNewNodeSetList')
@@ -401,18 +418,21 @@
      d  val                            *   value                                void *
 
      d xmlXPathEqualValues...
-     d                 pr            10i 0 extproc('xmlXPathEqualValues')
+     d                 pr                  extproc('xmlXPathEqualValues')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXPathParserContextPtr)
 
      d xmlXPathNotEqualValues...
-     d                 pr            10i 0 extproc('xmlXPathNotEqualValues')
+     d                 pr                  extproc('xmlXPathNotEqualValues')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXPathParserContextPtr)
 
      d xmlXPathCompareValues...
-     d                 pr            10i 0 extproc('xmlXPathCompareValues')
+     d                 pr                  extproc('xmlXPathCompareValues')
+     d                                     like(xmlCint)
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  inf                          10i 0 value
-     d  strict                       10i 0 value
+     d  inf                                value like(xmlCint)
+     d  strict                             value like(xmlCint)
 
      d xmlXPathValueFlipSign...
      d                 pr                  extproc('xmlXPathValueFlipSign')
@@ -439,7 +459,8 @@
      d  ctxt                               value like(xmlXPathParserContextPtr)
 
      d xmlXPathIsNodeType...
-     d                 pr            10i 0 extproc('xmlXPathIsNodeType')
+     d                 pr                  extproc('xmlXPathIsNodeType')
+     d                                     like(xmlCint)
      d  name                           *   value options(*string)               const xmlChar *
 
       * Some of the axis navigation routines.
@@ -530,137 +551,137 @@
      d xmlXPathLastFunction...
      d                 pr                  extproc('xmlXPathLastFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathPositionFunction...
      d                 pr                  extproc('xmlXPathPositionFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathCountFunction...
      d                 pr                  extproc('xmlXPathCountFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathIdFunction...
      d                 pr                  extproc('xmlXPathIdFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathLocalNameFunction...
      d                 pr                  extproc('xmlXPathLocalNameFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathNamespaceURIFunction...
      d                 pr                  extproc(
      d                                     'xmlXPathNamespaceURIFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathStringFunction...
      d                 pr                  extproc('xmlXPathStringFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathStringLengthFunction...
      d                 pr                  extproc(
      d                                     'xmlXPathStringLengthFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathConcatFunction...
      d                 pr                  extproc('xmlXPathConcatFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathContainsFunction...
      d                 pr                  extproc('xmlXPathContainsFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathStartsWithFunction...
      d                 pr                  extproc('xmlXPathStartsWithFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathSubstringFunction...
      d                 pr                  extproc('xmlXPathSubstringFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathSubstringBeforeFunction...
      d                 pr                  extproc(
      d                                     'xmlXPathSubstringBeforeFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathSubstringAfterFunction...
      d                 pr                  extproc(
      d                                     'xmlXPathSubstringAfterFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
 
      d xmlXPathNormalizeFunction...
      d                 pr                  extproc('xmlXPathNormalizeFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathTranslateFunction...
      d                 pr                  extproc('xmlXPathTranslateFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathNotFunction...
      d                 pr                  extproc('xmlXPathNotFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathTrueFunction...
      d                 pr                  extproc('xmlXPathTrueFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathFalseFunction...
      d                 pr                  extproc('xmlXPathFalseFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathLangFunction...
      d                 pr                  extproc('xmlXPathLangFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathNumberFunction...
      d                 pr                  extproc('xmlXPathNumberFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathSumFunction...
      d                 pr                  extproc('xmlXPathSumFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathFloorFunction...
      d                 pr                  extproc('xmlXPathFloorFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathCeilingFunction...
      d                 pr                  extproc('xmlXPathCeilingFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathRoundFunction...
      d                 pr                  extproc('xmlXPathRoundFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
      d xmlXPathBooleanFunction...
      d                 pr                  extproc('xmlXPathBooleanFunction')
      d  ctxt                               value like(xmlXPathParserContextPtr)
-     d  nargs                        10i 0 value
+     d  nargs                              value like(xmlCint)
 
       * Really internal functions
 
diff --git a/os400/libxmlrpg/xpointer.rpgle b/os400/libxmlrpg/xpointer.rpgle
index 6f43314..29ef0f3 100644
--- a/os400/libxmlrpg/xpointer.rpgle
+++ b/os400/libxmlrpg/xpointer.rpgle
@@ -19,6 +19,7 @@
 
       /if defined(LIBXML_XPTR_ENABLED)
 
+      /include "libxmlrpg/xmlTypesC"
       /include "libxmlrpg/tree"
       /include "libxmlrpg/xpath"
 
@@ -29,8 +30,8 @@
 
      d xmlLocationSet  ds                  based(xmlLocationSetPtr)
      d                                     align qualified
-     d  locNr                        10i 0                                      # locations in set
-     d  locMax                       10i 0                                      Max locations in set
+     d  locNr                              like(xmlCint)                        # locations in set
+     d  locMax                             like(xmlCint)                        Max locations in set
      d  locTab                         *                                        xmlXPathObjectPtr *
 
       * Handling of location sets.
@@ -54,9 +55,9 @@
      d                 pr                  extproc('xmlXPtrNewRange')
      d                                     like(xmlXPathObjectPtr)
      d start                               value like(xmlNodePtr)
-     d startindex                    10i 0 value
+     d startindex                          value like(xmlCint)
      d end                                 value like(xmlNodePtr)
-     d endindex                      10i 0 value
+     d endindex                            value like(xmlCint)
 
      d xmlXPtrNewRangePoints...
      d                 pr                  extproc('xmlXPtrNewRangePoints')
@@ -123,7 +124,7 @@
      d xmlXPtrLocationSetRemove...
      d                 pr                  extproc('xmlXPtrLocationSetRemove')
      d cur                                 value like(xmlLocationSetPtr)
-     d val                           10i 0 value
+     d val                                 value like(xmlCint)
 
       * Functions.
 
@@ -142,7 +143,7 @@
      d xmlXPtrRangeToFunction...
      d                 pr                  extproc('xmlXPtrRangeToFunction')
      d ctxt                                value like(xmlXPathParserContextPtr)
-     d nargs                         10i 0 value
+     d nargs                               value like(xmlCint)
 
      d xmlXPtrBuildNodeList...
      d                 pr                  extproc('xmlXPtrBuildNodeList')
diff --git a/os400/make-rpg.sh b/os400/make-rpg.sh
index 95d3249..664b47b 100644
--- a/os400/make-rpg.sh
+++ b/os400/make-rpg.sh
@@ -25,8 +25,6 @@
 
 #       Map file names to DB2 name syntax.
 
-> tmpsubstfile
-
 for HFILE in *.rpgle *.rpgle.in
 do      NAME="`basename \"${HFILE}\" .in`"
         VAR="`basename \"${NAME}\" .rpgle`"
@@ -36,9 +34,14 @@
         then    VAL=SCHMTYPES
         fi
 
-        echo "s/${VAR}/${VAL}/g" >> tmpsubstfile
         eval "VAR_${VAR}=\"${VAL}\""
-done
+        echo "${VAR} s/${VAR}/${VAL}/g"
+done > tmpsubstfile1
+
+#       Order substitution commands so that a prefix appears after all
+#               file names beginning with the prefix.
+
+sort -r tmpsubstfile1 | sed 's/^[^ ]*[ ]*//' > tmpsubstfile2
 
 
 change_include()
@@ -47,7 +50,7 @@
         sed -e '\#^....../include  *"libxmlrpg/#{'                      \
             -e 's///'                                                   \
             -e 's/".*//'                                                \
-            -f tmpsubstfile                                             \
+            -f tmpsubstfile2                                            \
             -e 's#.*#      /include libxmlrpg,&#'                       \
             -e '}'
 }
diff --git a/os400/make-src.sh b/os400/make-src.sh
index f06cfaf..4c03c56 100644
--- a/os400/make-src.sh
+++ b/os400/make-src.sh
@@ -17,7 +17,7 @@
 echo '#pragma comment(user, "libxml2 version '"${LIBXML_VERSION}"'")' > os400.c
 echo '#pragma comment(user, __DATE__)' >> os400.c
 echo '#pragma comment(user, __TIME__)' >> os400.c
-echo '#pragma comment(copyright, "Copyright (C) 1998-2014 Daniel Veillard. OS/400 version by P. Monnerat.")' >> os400.c
+echo '#pragma comment(copyright, "Copyright (C) 1998-2017 Daniel Veillard. OS/400 version by P. Monnerat.")' >> os400.c
 make_module     OS400           os400.c
 LINK=                           # No need to rebuild service program yet.
 MODULES=
@@ -62,11 +62,11 @@
 
 #       OS/400 specific modules first.
 
-make_module     DLFCN           "${SCRIPTDIR}/dlfcn/dlfcn.c"    ''      ebcdic
-make_module     ICONV           "${SCRIPTDIR}/iconv/iconv.c"    ''      ebcdic
-make_module     WRAPPERS        "${SCRIPTDIR}/wrappers.c"       ''      ebcdic
-make_module     TRANSCODE       "${SCRIPTDIR}/transcode.c"
-make_module     RPGSUPPORT      "${SCRIPTDIR}/rpgsupport.c"
+make_module     --ebcdic        DLFCN           "${SCRIPTDIR}/dlfcn/dlfcn.c"
+make_module     --ebcdic        ICONV           "${SCRIPTDIR}/iconv/iconv.c"
+make_module     --ebcdic        WRAPPERS        "${SCRIPTDIR}/wrappers.c"
+make_module                     TRANSCODE       "${SCRIPTDIR}/transcode.c"
+make_module                     RPGSUPPORT      "${SCRIPTDIR}/rpgsupport.c"
 
 #       Regular libxml2 modules.
 
@@ -239,3 +239,117 @@
         CMD="${CMD} OBJ((*LIBL/${SRVPGM} *SRVPGM))"
         system "${CMD}"
 fi
+
+
+#       Compile the ASCII main() stub.
+
+make_module     --ebcdic --sysiconv     LIBXMLMAIN  "${SCRIPTDIR}/libxmlmain.c"
+
+
+#       Compile and link program xmllint.
+
+if action_needed "${LIBIFSNAME}/XMLLINT.PGM" "xmllint.c" ||
+   action_needed "${LIBIFSNAME}/XMLLINT.PGM" "${LIBIFSNAME}/${SRVPGM}.SRVPGM" ||
+   action_needed "${LIBIFSNAME}/XMLLINT.PGM" "${LIBIFSNAME}/LIBXMLMAIN.MODULE"
+then    make_module XMLLINT xmllint.c
+        CMD="CRTPGM PGM(${TARGETLIB}/XMLLINT) MODULE(${TARGETLIB}/XMLLINT)"
+        CMD="${CMD} ENTMOD(${TARGETLIB}/LIBXMLMAIN)"
+        CMD="${CMD} BNDSRVPGM(QADRTTS) BNDDIR((${TARGETLIB}/${STATBNDDIR})"
+        if [ "${WITH_ZLIB}" -ne 0 ]
+        then    CMD="${CMD} (${ZLIB_LIB}/${ZLIB_BNDDIR})"
+        fi
+        CMD="${CMD}) ACTGRP(*NEW) TEXT('XML tool')"
+        CMD="${CMD} TGTRLS(${TGTRLS})"
+        system "${CMD}"
+        rm -f "${LIBIFSNAME}/XMLLINT.MODULE"
+fi
+
+#       Install xmllint in IFS.
+
+if [ ! -d "${IFSDIR}/bin" ]
+then    mkdir -p "${IFSDIR}/bin"
+fi
+rm -f "${IFSDIR}/bin/xmllint"
+ln -s "${LIBIFSNAME}/XMLLINT.PGM" "${IFSDIR}/bin/xmllint"
+
+#       Prepare the XMLLINT command and its response program.
+
+if action_needed "${LIBIFSNAME}/XMLLINTCL.PGM" "${SCRIPTDIR}/xmllintcl.c"
+then    make_module --ebcdic XMLLINTCL "${SCRIPTDIR}/xmllintcl.c"
+        CMD="CRTPGM PGM(${TARGETLIB}/XMLLINTCL) MODULE(${TARGETLIB}/XMLLINTCL)"
+        CMD="${CMD} ACTGRP(*NEW) TEXT('XMLLINT command response')"
+        CMD="${CMD} TGTRLS(${TGTRLS})"
+        system "${CMD}"
+        rm -f "${LIBIFSNAME}/XMLLINTCL.MODULE"
+fi
+
+if action_needed "${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR"                 \
+                 "${SCRIPTDIR}/xmllint.cmd"
+then    CMD="CPY OBJ('${SCRIPTDIR}/xmllint.cmd')"
+        CMD="${CMD} TOOBJ('${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR')"
+        CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+        system "${CMD}"
+fi
+
+if action_needed "${LIBIFSNAME}/XMLLINT.CMD"                            \
+                 "${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR"
+then    CMD="CRTCMD CMD(${TARGETLIB}/XMLLINT) PGM(${TARGETLIB}/XMLLINTCL)"
+        CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(XMLLINT) THDSAFE(*YES)"
+        CMD="${CMD} TEXT('XML tool') REPLACE(*YES)"
+        system "${CMD}"
+fi
+
+
+#       Compile and link program xmlcatalog.
+
+if action_needed "${LIBIFSNAME}/XMLCATALOG.PGM" "xmlcatalog.c" ||
+   action_needed "${LIBIFSNAME}/XMLCATALOG.PGM"                         \
+                 "${LIBIFSNAME}/${SRVPGM}.SRVPGM" ||
+   action_needed "${LIBIFSNAME}/XMLCATALOG.PGM"                         \
+                 "${LIBIFSNAME}/LIBXMLMAIN.MODULE"
+then    make_module XMLCATALOG xmlcatalog.c
+        CMD="CRTPGM PGM(${TARGETLIB}/XMLCATALOG)"
+        CMD="${CMD}  MODULE(${TARGETLIB}/XMLCATALOG)"
+        CMD="${CMD} ENTMOD(${TARGETLIB}/LIBXMLMAIN)"
+        CMD="${CMD} BNDSRVPGM(QADRTTS) BNDDIR((${TARGETLIB}/${STATBNDDIR})"
+        if [ "${WITH_ZLIB}" -ne 0 ]
+        then    CMD="${CMD} (${ZLIB_LIB}/${ZLIB_BNDDIR})"
+        fi
+        CMD="${CMD}) ACTGRP(*NEW) TEXT('XML/SGML catalog tool')"
+        CMD="${CMD} TGTRLS(${TGTRLS})"
+        system "${CMD}"
+        rm -f "${LIBIFSNAME}/XMLCATALOG.MODULE"
+fi
+
+#       Install xmlcatalog in IFS.
+
+rm -f "${IFSDIR}/bin/xmlcatalog"
+ln -s "${LIBIFSNAME}/XMLCATALOG.PGM" "${IFSDIR}/bin/xmlcatalog"
+
+#       Prepare the XMLCATALOG command and its response program.
+
+if action_needed "${LIBIFSNAME}/XMLCATLGCL.PGM" "${SCRIPTDIR}/xmlcatlgcl.c"
+then    make_module --ebcdic XMLCATLGCL "${SCRIPTDIR}/xmlcatlgcl.c"
+        CMD="CRTPGM PGM(${TARGETLIB}/XMLCATLGCL)"
+        CMD="${CMD} MODULE(${TARGETLIB}/XMLCATLGCL)"
+        CMD="${CMD} ACTGRP(*NEW) TEXT('XMLCATALOG command response')"
+        CMD="${CMD} TGTRLS(${TGTRLS})"
+        system "${CMD}"
+        rm -f "${LIBIFSNAME}/XMLCATLGCL.MODULE"
+fi
+
+if action_needed "${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR"              \
+                 "${SCRIPTDIR}/xmlcatalog.cmd"
+then    CMD="CPY OBJ('${SCRIPTDIR}/xmlcatalog.cmd')"
+        CMD="${CMD} TOOBJ('${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR')"
+        CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+        system "${CMD}"
+fi
+
+if action_needed "${LIBIFSNAME}/XMLCATALOG.CMD"                         \
+                 "${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR"
+then    CMD="CRTCMD CMD(${TARGETLIB}/XMLCATALOG) PGM(${TARGETLIB}/XMLCATLGCL)"
+        CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(XMLCATALOG)"
+        CMD="${CMD} THDSAFE(*YES) TEXT('XML/SGML catalog tool') REPLACE(*YES)"
+        system "${CMD}"
+fi
diff --git a/os400/make.sh b/os400/make.sh
index 864e72b..860365e 100644
--- a/os400/make.sh
+++ b/os400/make.sh
@@ -34,7 +34,7 @@
 #       Copy some documentation files if needed.
 
 for TEXT in "${TOPDIR}/AUTHORS" "${TOPDIR}/ChangeLog"                   \
-    "${TOPDIR}/Copyright" "${TOPDIR}/HACKING" "${TOPDIR}/README"        \
+    "${TOPDIR}/Copyright" "${TOPDIR}/CONTRIBUTING" "${TOPDIR}/README"        \
     "${TOPDIR}/MAINTAINERS" "${TOPDIR}/NEWS" "${TOPDIR}/TODO"           \
     "${TOPDIR}/TODO_SCHEMAS" "${TOPDIR}/os400/README400"
 do      if [ -f "${TEXT}" ]
@@ -42,7 +42,16 @@
                 MEMBER="${LIBIFSNAME}/DOCS.FILE/`db2_name \"${MEMBER}\"`.MBR"
 
                 if action_needed "${MEMBER}" "${TEXT}"
-                then    CMD="CPY OBJ('${TEXT}') TOOBJ('${MEMBER}')"
+                then    # Sources are in UTF-8.
+                        rm -f "${TOPDIR}/tmpfile"[12]
+                        CMD="CPY OBJ('${TEXT}') TOOBJ('${TOPDIR}/tmpfile1')"
+                        CMD="${CMD} FROMCCSID(1208) TOCCSID(${TGTCCSID})"
+                        CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
+                        system "${CMD}"
+                        # Make sure all lines are < 100 characters.
+                        sed -e 's/.\{99\}/&\
+/g' -e 's/\n$//' "${TOPDIR}/tmpfile1" > "${TOPDIR}/tmpfile2"
+                        CMD="CPY OBJ('${TOPDIR}/tmpfile2') TOOBJ('${MEMBER}')"
                         CMD="${CMD} TOCCSID(${TGTCCSID})"
                         CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
                         system "${CMD}"
diff --git a/os400/os400config.h.in b/os400/os400config.h.in
index 3966ac8..1840c17 100644
--- a/os400/os400config.h.in
+++ b/os400/os400config.h.in
@@ -6,9 +6,6 @@
 ***     Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
 **/
 
-/* Define to 1 if you have the <ansidecl.h> header file. */
-#undef HAVE_ANSIDECL_H
-
 /* Define to 1 if you have the <arpa/inet.h> header file. */
 #define HAVE_ARPA_INET_H        1
 
@@ -18,9 +15,6 @@
 /* Whether struct sockaddr::__ss_family exists */
 #undef HAVE_BROKEN_SS_FAMILY
 
-/* Define to 1 if you have the `class' function. */
-#undef HAVE_CLASS
-
 /* Define to 1 if you have the <ctype.h> header file. */
 #define HAVE_CTYPE_H            1
 
@@ -42,24 +36,12 @@
 /* Define to 1 if you have the <fcntl.h> header file. */
 #define HAVE_FCNTL_H            1
 
-/* Define to 1 if you have the `finite' function. */
-#undef HAVE_FINITE
-
 /* Define to 1 if you have the <float.h> header file. */
 #define HAVE_FLOAT_H            1
 
-/* Define to 1 if you have the `fpclass' function. */
-#undef HAVE_FPCLASS
-
 /* Define to 1 if you have the `fprintf' function. */
 #undef HAVE_FPRINTF                     /* Use trio. */
 
-/* Define to 1 if you have the `fp_class' function. */
-#undef HAVE_FP_CLASS
-
-/* Define to 1 if you have the <fp_class.h> header file. */
-#undef HAVE_FP_CLASS_H
-
 /* Define to 1 if you have the `ftime' function. */
 #undef HAVE_FTIME
 
@@ -69,9 +51,6 @@
 /* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
-/* Define to 1 if you have the <ieeefp.h> header file. */
-#undef HAVE_IEEEFP_H
-
 /* Define to 1 if you have the <inttypes.h> header file. */
 #define HAVE_INTTYPES_H         1
 
@@ -84,15 +63,9 @@
 /* Define if isnan is there */
 #undef HAVE_ISNAN
 
-/* Define to 1 if you have the `isnand' function. */
-#undef HAVE_ISNAND
-
 /* Define if history library is there (-lhistory) */
 #undef HAVE_LIBHISTORY
 
-/* Have compression library */
-#undef HAVE_LIBLZMA
-
 /* Define if pthread library is there (-lpthread) */
 #undef HAVE_LIBPTHREAD
 
@@ -108,9 +81,6 @@
 /* Define to 1 if you have the `localtime' function. */
 #define HAVE_LOCALTIME          1
 
-/* Define to 1 if you have the <lzma.h> header file. */
-#undef HAVE_LZMA_H
-
 /* Define to 1 if you have the <malloc.h> header file. */
 #undef HAVE_MALLOC_H
 
@@ -131,9 +101,6 @@
 #  undef /**/ HAVE_MMAP
 #endif
 
-/* Define to 1 if you have the <nan.h> header file. */
-#undef HAVE_NAN_H
-
 /* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
 #undef HAVE_NDIR_H
 
@@ -206,12 +173,6 @@
 /* Define to 1 if you have the <stdlib.h> header file. */
 #define HAVE_STDLIB_H           1
 
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP             1
-
-/* Define to 1 if you have the `strerror' function. */
-#define HAVE_STRERROR           1
-
 /* Define to 1 if you have the `strftime' function. */
 #define HAVE_STRFTIME           1
 
@@ -221,9 +182,6 @@
 /* Define to 1 if you have the <string.h> header file. */
 #define HAVE_STRING_H           1
 
-/* Define to 1 if you have the `strndup' function. */
-#undef HAVE_STRNDUP
-
 /* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
    */
 #undef HAVE_SYS_DIR_H
@@ -274,17 +232,6 @@
 /* Define to 1 if you have the `vsprintf' function. */
 #undef HAVE_VSPRINTF                    /* Use trio. */
 
-/* Define to 1 if you have the <zlib.h> header file. */
-/* Actually dependent on the compilation script. */
-#if @WITH_ZLIB@
-#define HAVE_ZLIB_H             1
-#else
-#undef HAVE_ZLIB_H
-#endif
-
-/* Define to 1 if you have the `_stat' function. */
-#undef HAVE__STAT
-
 /* Whether __va_copy() is available */
 #undef HAVE___VA_COPY
 
@@ -333,9 +280,6 @@
    #define below would cause a syntax error. */
 #undef _UINT32_T
 
-/* Using the Win32 Socket implementation */
-#undef _WINSOCKAPI_
-
 /* ss_family is not defined here, use __ss_family instead */
 #undef ss_family
 
diff --git a/os400/rpgsupport.c b/os400/rpgsupport.c
index a3609c0..ad4cc5d 100644
--- a/os400/rpgsupport.c
+++ b/os400/rpgsupport.c
@@ -219,7 +219,7 @@
 __xmlXPathNodeSetGetLength(const xmlNodeSet * ns)
 
 {
-	return xmlXPathNodeSetGetLength(ns);
+        return xmlXPathNodeSetGetLength(ns);
 }
 
 
@@ -227,7 +227,7 @@
 __xmlXPathNodeSetItem(const xmlNodeSet * ns, int index)
 
 {
-	return xmlXPathNodeSetItem(ns, index);
+        return xmlXPathNodeSetItem(ns, index);
 }
 
 
@@ -235,7 +235,7 @@
 __xmlXPathNodeSetIsEmpty(const xmlNodeSet * ns)
 
 {
-	return xmlXPathNodeSetIsEmpty(ns);
+        return xmlXPathNodeSetIsEmpty(ns);
 }
 
 #endif
@@ -247,16 +247,16 @@
 __htmlDefaultSubelement(const htmlElemDesc * elt)
 
 {
-	return htmlDefaultSubelement(elt);
+        return htmlDefaultSubelement(elt);
 }
 
 
 int
 __htmlElementAllowedHereDesc(const htmlElemDesc * parent,
-						const htmlElemDesc * elt)
+                                                const htmlElemDesc * elt)
 
 {
-	return htmlElementAllowedHereDesc(parent, elt);
+        return htmlElementAllowedHereDesc(parent, elt);
 }
 
 
@@ -264,7 +264,7 @@
 __htmlRequiredAttrs(const htmlElemDesc * elt)
 
 {
-	return htmlRequiredAttrs(elt);
+        return htmlRequiredAttrs(elt);
 }
 
 #endif
diff --git a/os400/rpgsupport.h b/os400/rpgsupport.h
index 6725b59..d8016d7 100644
--- a/os400/rpgsupport.h
+++ b/os400/rpgsupport.h
@@ -141,17 +141,17 @@
 XMLPUBFUN void          __xmlVaEnd(char * * list);
 
 #ifdef LIBXML_XPATH_ENABLED
-XMLPUBFUN int		__xmlXPathNodeSetGetLength(xmlNodeSetPtr ns);
-XMLPUBFUN xmlNodePtr	__xmlXPathNodeSetItem(xmlNodeSetPtr ns, int index);
-XMLPUBFUN int		__xmlXPathNodeSetIsEmpty(xmlNodeSetPtr ns);
+XMLPUBFUN int           __xmlXPathNodeSetGetLength(xmlNodeSetPtr ns);
+XMLPUBFUN xmlNodePtr    __xmlXPathNodeSetItem(xmlNodeSetPtr ns, int index);
+XMLPUBFUN int           __xmlXPathNodeSetIsEmpty(xmlNodeSetPtr ns);
 #endif
 
 #ifdef LIBXML_HTML_ENABLED
-XMLPUBFUN const char *	__htmlDefaultSubelement(const htmlElemDesc * elt);
-XMLPUBFUN int	__htmlElementAllowedHereDesc(const htmlElemDesc * parent,
-			const htmlElemDesc * elt);
+XMLPUBFUN const char *  __htmlDefaultSubelement(const htmlElemDesc * elt);
+XMLPUBFUN int   __htmlElementAllowedHereDesc(const htmlElemDesc * parent,
+                        const htmlElemDesc * elt);
 XMLPUBFUN const char * *
-			__htmlRequiredAttrs(const htmlElemDesc * elt);
+                        __htmlRequiredAttrs(const htmlElemDesc * elt);
 #endif
 
 #endif
diff --git a/os400/wrappers.c b/os400/wrappers.c
index 9f592b7..06f6c26 100644
--- a/os400/wrappers.c
+++ b/os400/wrappers.c
@@ -110,7 +110,7 @@
 }
 
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 #include <zlib.h>
 
 gzFile
diff --git a/os400/wrappers.h b/os400/wrappers.h
index 388ec8c..6f3e6c9 100644
--- a/os400/wrappers.h
+++ b/os400/wrappers.h
@@ -43,7 +43,7 @@
 extern char *   _lx_dlerror(void);
 
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 
 #include <zlib.h>
 
diff --git a/os400/xmlcatalog.cmd b/os400/xmlcatalog.cmd
new file mode 100644
index 0000000..92f0270
--- /dev/null
+++ b/os400/xmlcatalog.cmd
@@ -0,0 +1,112 @@
+/*      XMLCATALOG CL command.                                                */
+/*                                                                            */
+/*      See Copyright for the status of this software.                        */
+/*                                                                            */
+/*      Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.          */
+
+/*      Interface to program XMLCATLGCL                                       */
+
+             CMD        PROMPT('XML/SGML catalog  tool')
+
+             /* Catalog file path. */
+
+             PARM       KWD(INSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2)    +
+                          CASE(*MIXED) EXPR(*YES) MIN(1) SPCVAL((*NEW ''))     +
+                          CHOICE('Stream file path')                           +
+                          PROMPT('XML/SGML catalog file')
+
+             /* Catalog kind: XML/SGML. */
+
+             PARM       KWD(KIND) TYPE(*CHAR) LEN(7) VARY(*YES *INT2)          +
+                          EXPR(*YES) RSTD(*YES) DFT(*XML)                      +
+                          SPCVAL((*XML '') (*SGML '--sgml'))                   +
+                          PROMPT('Catalog kind')
+
+             /* Output file. */
+
+             PARM       KWD(OUTSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2)   +
+                          CASE(*MIXED) EXPR(*YES) DFT(*STDOUT)                 +
+                          SPCVAL((*STDOUT '') (*INSTMF X'00'))                 +
+                          CHOICE('*STDOUT, *INSTMF or file path')              +
+                          PROMPT('Output stream file path')
+
+             /* Convert SGML to XML catalog. */
+
+             PARM       KWD(CONVERT) TYPE(*CHAR) LEN(10) VARY(*YES *INT2)      +
+                          RSTD(*YES) SPCVAL((*YES '--convert') (*NO ''))       +
+                          EXPR(*YES) DFT(*NO) PMTCTL(TYPEXML)                  +
+                          PROMPT('Convert SGML to XML catalog')
+
+             /* SGML super catalog update. */
+
+             PARM       KWD(SUPERUPD) TYPE(*CHAR) LEN(17) VARY(*YES *INT2)     +
+                          SPCVAL((*YES '') (*NO '--no-super-update'))          +
+                          EXPR(*YES) DFT(*YES) RSTD(*YES) PMTCTL(TYPESGML)     +
+                          PROMPT('Update the SGML super catalog')
+
+             /* Verbose/debug output. */
+
+             PARM       KWD(VERBOSE) TYPE(*CHAR) LEN(4) VARY(*YES *INT2)       +
+                          RSTD(*YES) SPCVAL((*YES '-v') (*NO ''))              +
+                          EXPR(*YES) DFT(*NO)                                  +
+                          PROMPT('Output debugging information')
+
+             /* Interactive shell not supported. */
+
+             /* Values to delete. */
+
+             PARM       KWD(DELETE) TYPE(*PNAME) LEN(256) VARY(*YES *INT2)     +
+                          CASE(*MIXED) MAX(64) EXPR(*YES)                      +
+                          CHOICE('Identifier value')                           +
+                          PROMPT('Delete System/URI identifier')
+
+             /* Values to add. */
+
+             PARM       KWD(ADD) TYPE(XMLELEM) MAX(10) PMTCTL(TYPEXML)         +
+                          PROMPT('Add definition')
+XMLELEM:     ELEM       TYPE(*CHAR) LEN(16) VARY(*YES *INT2) DFT(*PUBLIC)      +
+                          PROMPT('Entry type')                                 +
+                          EXPR(*YES) RSTD(*YES) SPCVAL(                        +
+                            (*PUBLIC         'public')                         +
+                            (*SYSTEM         'system')                         +
+                            (*URI            'uri')                            +
+                            (*REWRITESYSTEM  'rewriteSystem')                  +
+                            (*REWRITEURI     'rewriteURI')                     +
+                            (*DELEGATEPUBLIC 'delegatePublic')                 +
+                            (*DELEGATESYSTEM 'delegateSystem')                 +
+                            (*DELEGATEURI    'delegateURI')                    +
+                            (*NEXTCATALOG    'nextCatalog')                    +
+                          )
+             ELEM       TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES)      +
+                          CASE(*MIXED) PROMPT('Original reference/file name')
+             ELEM       TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES)      +
+                          CASE(*MIXED) PROMPT('Replacement entity URI')
+
+             PARM       KWD(SGMLADD) TYPE(SGMLELEM) MAX(10)                    +
+                          PMTCTL(TYPESGML) PROMPT('Add SGML definition')
+SGMLELEM:    ELEM       TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES)      +
+                          CASE(*MIXED) PROMPT('SGML catalog file name')
+             ELEM       TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES)      +
+                          CASE(*MIXED) PROMPT('SGML definition')
+
+             /* Entities to resolve. */
+
+             PARM       KWD(ENTITY) TYPE(*PNAME) LEN(256) VARY(*YES *INT2)     +
+                          CASE(*MIXED) EXPR(*YES) MAX(150)                     +
+                          PROMPT('Resolve entity')
+
+             /* Additional catalog files. */
+
+             PARM       KWD(CATALOG) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2)   +
+                          CASE(*MIXED) EXPR(*YES) MAX(150) DFT(*DEFAULT)       +
+                          CHOICE('Catalog stream file path')                   +
+                          PROMPT('Additional catalog file') SPCVAL(            +
+                            (*DEFAULT       '/etc/xml/catalog')                +
+                            (*NONE          '')                                +
+                          )
+
+
+             /* Conditional prompting. */
+
+TYPEXML:     PMTCTL     CTL(KIND) COND((*EQ ''))
+TYPESGML:    PMTCTL     CTL(KIND) COND((*NE ''))
diff --git a/os400/xmlcatlgcl.c b/os400/xmlcatlgcl.c
new file mode 100644
index 0000000..6f1e4ff
--- /dev/null
+++ b/os400/xmlcatlgcl.c
@@ -0,0 +1,288 @@
+/**
+***     XMLCATALOG command response program.
+***
+***     See Copyright for the status of this software.
+***
+***     Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <qshell.h>
+
+
+/* Variable-length string, with 16-bit length. */
+typedef struct {
+        short           len;
+        char            string[5000];
+}               vary2;
+
+
+/* Variable-length string, with 32-bit length. */
+typedef struct {
+        int             len;
+        char            string[5000];
+}               vary4;
+
+
+/* Multiple occurrence parameter list. */
+#define paramlist(itemsize, itemtype)                                   \
+        _Packed struct {                                                \
+                short           len;                                    \
+                _Packed union {                                         \
+                         char           _pad[itemsize];                 \
+                        itemtype        param;                          \
+                }               item[1];                                \
+        }
+
+/* Add element list structure. */
+typedef struct {
+        short           elcount;        /* Element count (=3). */
+        paramlist(16, char) type;       /* vary2(16). */
+        paramlist(256, char) origin;    /* vary2(256). */
+        paramlist(256, char) replace;   /* vary2(256). */
+}               addelement;
+
+/* SGML add element list structure. */
+typedef struct {
+        short           elcount;        /* Element count (=3). */
+        paramlist(256, char) catalog;   /* vary2(256). */
+        paramlist(256, char) ident;     /* vary2(256). */
+}               sgmladdelement;
+
+
+/* Arguments from CL command. */
+typedef struct {
+        char *          pgm;            /* Program name. */
+        vary2 *         instmf;         /* Input catalog file name. */
+        vary2 *         kind;           /* Catalog kind. */
+        vary2 *         outstmf;        /* Output catalog file name. */
+        vary2 *         convert;        /* Convert SGML to XML. */
+        vary2 *         superupd;       /* --no-super-update. */
+        vary2 *         verbose;        /* Verbose output. */
+        paramlist(256 + 2, vary2) * delete; /* Identifiers to delete. */
+        paramlist(2, unsigned short) * add; /* Items to add. */
+        paramlist(2, unsigned short) * sgmladd; /* SGML items to add. */
+        paramlist(256 + 2, vary2) * resolve; /* Identifiers to resolve. */
+        paramlist(5000 + 2, vary2) * catalog; /* Additional catalog files. */
+}               arguments;
+
+
+/* Definition of QSHELL program. */
+extern void     qshell(vary4 * cmd);
+#pragma linkage(qshell, OS)
+#pragma map(qshell, "QSHELL/QZSHQSHC")
+
+/* Macro to handle displacements. */
+#define OFFSETBY(t, p, n)       ((t *) (((char *) (p)) + (n)))
+
+
+static void
+vary4nappend(vary4 * dst, const char * src, size_t len)
+
+{
+        if (len > sizeof(dst->string) - dst->len)
+                len = sizeof(dst->string) - dst->len;
+
+        if (len) {
+                memcpy(dst->string + dst->len, src, len);
+                dst->len += len;
+                }
+}
+
+
+static void
+vary4append(vary4 * dst, const char * src)
+
+{
+        vary4nappend(dst, src, strlen(src));
+}
+
+
+static void
+vary4arg(vary4 * dst, const char * arg)
+
+{
+        vary4nappend(dst, " ", 1);
+        vary4append(dst, arg);
+}
+
+
+static void
+vary4varg(vary4 * dst, vary2 * arg)
+
+{
+        vary4nappend(dst, " ", 1);
+        vary4nappend(dst, arg->string, arg->len);
+}
+
+
+static void
+vary4vescape(vary4 * dst, vary2 * arg)
+
+{
+        int i;
+
+        for (i = 0; i < arg->len; i++)
+                if (arg->string[i] == '\'')
+                        vary4nappend(dst, "'\"'\"'", 5);
+                else
+                        vary4nappend(dst, arg->string + i, 1);
+}
+
+
+static void
+vary4vargquote(vary4 * dst, vary2 * arg)
+
+{
+        vary4nappend(dst, " '", 2);
+        vary4vescape(dst, arg);
+        vary4nappend(dst, "'", 1);
+}
+
+
+int
+main(int argsc, arguments * args)
+
+{
+        vary4 cmd;
+        int i;
+        char c;
+        addelement * aelp;
+        sgmladdelement * saelp;
+
+        /* Specify additional catalogs. */
+        cmd.len = 0;
+        if (args->catalog->len) {
+                for (i = 0; i < args->catalog->len &&
+                            !args->catalog->item[i].param.len; i++)
+                        ;
+
+                vary4append(&cmd, "XML_CATALOG_FILES=");
+                if (i < args->catalog->len) {
+                        c = '\'';
+                        for (i = 0; i < args->catalog->len; i++) {
+                                if (!args->catalog->item[i].param.len)
+                                        continue;
+                                vary4nappend(&cmd, &c, 1);
+                                c = ' ';
+                                vary4vescape(&cmd,
+                                            &args->catalog->item[i].param);
+                                }
+                        vary4nappend(&cmd, "'", 1);
+                        }
+                vary4nappend(&cmd, " ", 1);
+                }
+
+        /* find length of library name. */
+        for (i = 0; i < 10 && args->pgm[i] && args->pgm[i] != '/'; i++)
+                ;
+
+        /* Store program name in command buffer. */
+        vary4append(&cmd, "/QSYS.LIB/");
+        vary4nappend(&cmd, args->pgm, i);
+        vary4append(&cmd, ".LIB/XMLCATALOG.PGM");
+
+        /* Map command arguments to standard xmlcatalog argument vector. */
+        if (args->kind && args->kind->len)
+                vary4varg(&cmd, args->kind);
+
+        if (args->verbose && args->verbose->len)
+                vary4varg(&cmd, args->verbose);
+
+        if (args->delete)
+                for (i = 0; i < args->delete->len; i++) {
+                        vary4arg(&cmd, "--del");
+                        vary4vargquote(&cmd, &args->delete->item[i].param);
+                        }
+
+        if (args->kind && args->kind->len) {
+                /* Process SGML-specific parameters. */
+                if (args->superupd && args->superupd->len)
+                        vary4varg(&cmd, args->superupd);
+
+                if (args->sgmladd)
+                        for (i = 0; i < args->sgmladd->len; i++) {
+                                saelp = OFFSETBY(sgmladdelement, args->sgmladd,
+                                                args->sgmladd->item[i].param);
+                                if (!((vary2 *) &saelp->catalog)->len)
+                                        continue;
+                                vary4arg(&cmd, "--add");
+                                vary4vargquote(&cmd, (vary2 *) &saelp->catalog);
+                                vary4vargquote(&cmd, (vary2 *) &saelp->ident);
+                                }
+                }
+        else {
+                /* Process XML-specific parameters. */
+                if (args->convert && args->convert->len)
+                        vary4varg(&cmd, args->convert);
+
+                if (args->add)
+                        for (i = 0; i < args->add->len; i++) {
+                                aelp = OFFSETBY(addelement, args->add,
+                                                args->add->item[i].param);
+                                if (!((vary2 *) &aelp->origin)->len)
+                                        continue;
+                                vary4arg(&cmd, "--add");
+                                vary4varg(&cmd, (vary2 *) &aelp->type);
+                                vary4vargquote(&cmd, (vary2 *) &aelp->origin);
+                                vary4vargquote(&cmd, (vary2 *) &aelp->replace);
+                                }
+                }
+
+        /* Avoid INSTMF(*NEW) and OUTSMTF(*INSTMF). */
+        if (args->outstmf && args->outstmf->len && !args->outstmf->string[0])
+                if (args->instmf && args->instmf->len)
+                        args->outstmf = args->instmf;
+                else
+                        args->outstmf = NULL;
+
+        /* If INSTMF(*NEW) and OUTSTMF(somepath), Use --create --noout and
+           somepath as (unexisting) input file. */
+        if (args->outstmf && args->outstmf->len)
+                if (!args->instmf || !args->instmf->len) {
+                        vary4arg(&cmd, "--create");
+                        vary4arg(&cmd, "--noout");
+                        args->instmf = args->outstmf;
+                        args->outstmf = NULL;
+                        }
+
+        /* If output to input file, use --noout option. */
+        if (args->instmf && args->outstmf && args->instmf->len &&
+            args->instmf->len == args->outstmf->len &&
+            !strncmp(args->instmf->string, args->outstmf->string,
+                     args->instmf->len)) {
+                vary4arg(&cmd, "--noout");
+                args->outstmf = NULL;
+                }
+
+        /* If no input file create catalog, else specify the input file name. */
+        /* Specify the input file name: my be a dummy one. */
+        if (!args->instmf || !args->instmf->len) {
+                vary4arg(&cmd, "--create -");
+                vary4arg(&cmd, ".dmyxmlcatalog");
+                }
+        else {
+                vary4arg(&cmd, "-");
+                vary4vargquote(&cmd, args->instmf);
+                }
+
+        /* Query entities. */
+
+        if (args->resolve)
+                for (i = 0; i < args->resolve->len; i++)
+                        vary4vargquote(&cmd, &args->resolve->item[i].param);
+
+        /* Redirect output if requested. */
+        if (args->outstmf && args->outstmf->len) {
+                vary4arg(&cmd, ">");
+                vary4vargquote(&cmd, args->outstmf);
+                }
+
+        /* Execute the shell command. */
+        qshell(&cmd);
+
+        /* Terminate. */
+        exit(0);
+}
diff --git a/os400/xmllint.cmd b/os400/xmllint.cmd
new file mode 100644
index 0000000..1582837
--- /dev/null
+++ b/os400/xmllint.cmd
@@ -0,0 +1,146 @@
+/*      XMLLINT CL command.                                                   */
+/*                                                                            */
+/*      See Copyright for the status of this software.                        */
+/*                                                                            */
+/*      Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.          */
+
+/*      Interface to program XMLLINTCL                                        */
+
+             CMD        PROMPT('XML tool')
+
+             /* XML input file location. */
+
+             PARM       KWD(STMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2)      +
+                          CASE(*MIXED) EXPR(*YES) MIN(1)                       +
+                          CHOICE('Stream file path')                           +
+                          PROMPT('XML Stream file')
+
+             /* DTD location. */
+
+             PARM       KWD(DTD) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2)       +
+                          CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL)               +
+                          CHOICE('ID, URL or stream file path')                +
+                          PROMPT('DTD id, URL or file path')
+
+             PARM       KWD(DTDLOCATOR) TYPE(*CHAR) LEN(8) DFT(*DTDURL)        +
+                          SPCVAL(*DTDURL *DTDFPI) EXPR(*YES) RSTD(*YES)        +
+                          PROMPT('DTD locator is URL/FPI')
+
+             /* Schema location. */
+
+             PARM       KWD(SCHEMA) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2)    +
+                          CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL)               +
+                          CHOICE('URL or stream file path')                    +
+                          PROMPT('Schema URL or stream file path')
+
+             PARM       KWD(SCHEMAKIND) TYPE(*CHAR) LEN(12) VARY(*YES *INT2)   +
+                          RSTD(*YES) DFT(*XSD)                                 +
+                          PROMPT('Validating schema kind')                     +
+                          CHOICE('Keyword') SPCVAL(                            +
+                            (*XSD               '--schema')                    +
+                            (*RELAXNG           '--relaxng')                   +
+                            (*SCHEMATRON        '--schematron')                +
+                          )
+
+             /* Output location. */
+
+             PARM       KWD(OUTSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2)   +
+                          CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL)               +
+                          CHOICE('Stream file path')                           +
+                          PROMPT('Output stream file path')
+
+             /* Other parameters with arguments. */
+
+             PARM       KWD(XPATH) TYPE(*CHAR) LEN(5000) VARY(*YES *INT2)      +
+                          CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL)               +
+                          CHOICE('XPath expression')                           +
+                          PROMPT('XPath filter')
+
+             PARM       KWD(PATTERN) TYPE(*CHAR) LEN(5000) VARY(*YES *INT2)    +
+                          CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL)               +
+                          CHOICE('Reader pattern')                             +
+                          PROMPT('Reader node filter')
+
+             /* Paths for resources. */
+
+             PARM       KWD(PATH) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2)      +
+                          CASE(*MIXED) EXPR(*YES) MAX(64)                      +
+                          CHOICE('IFS directory path')                         +
+                          PROMPT('Path for resources')
+
+             PARM       KWD(PRETTY) TYPE(*CHAR) LEN(11) VARY(*YES *INT2)       +
+                          RSTD(*YES) DFT(*NONE)                                +
+                          PROMPT('Pretty-print style')                         +
+                          CHOICE('Keyword') SPCVAL(                            +
+                            (*NONE              '0')                           +
+                            (*FORMAT            '1')                           +
+                            (*WHITESPACE        '2')                           +
+                          )
+
+             PARM       KWD(MAXMEM) TYPE(*UINT4) EXPR(*YES) DFT(0)             +
+                          CHOICE('Number of bytes')                            +
+                          PROMPT('Maximum dynamic memory')
+
+             PARM       KWD(ENCODING) TYPE(*CHAR) LEN(32) VARY(*YES *INT2)     +
+                          CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL)               +
+                          PMTCTL(ENCODING) CHOICE('Encoding name')             +
+                          PROMPT('Output character encoding')
+ENCODING:    PMTCTL     CTL(OUTSTMF) COND(*SPCFD)
+
+             /* Boolean options. */
+             /* --shell is not supported from command mode. */
+
+             PARM       KWD(OPTIONS) TYPE(*CHAR) LEN(20) VARY(*YES *INT2)      +
+                          MAX(50) RSTD(*YES) PROMPT('Options')                 +
+                          CHOICE('Keyword') SPCVAL(                            +
+                            (*VERSION         '--version')                     +
+                            (*DEBUG           '--debug')                       +
+                            (*DEBUGENT        '--debugent')                    +
+                            (*COPY            '--copy')                        +
+                            (*RECOVER         '--recover')                     +
+                            (*HUGE            '--huge')                        +
+                            (*NOENT           '--noent')                       +
+                            (*NOENC           '--noenc')                       +
+                            (*NOOUT           '--noout')                       +
+                            (*LOADTRACE       '--load-trace')                  +
+                            (*NONET           '--nonet')                       +
+                            (*NOCOMPACT       '--nocompact')                   +
+                            (*HTMLOUT         '--htmlout')                     +
+                            (*NOWRAP          '--nowrap')                      +
+                            (*VALID           '--valid')                       +
+                            (*POSTVALID       '--postvalid')                   +
+                            (*TIMING          '--timing')                      +
+                            (*REPEAT          '--repeat')                      +
+                            (*INSERT          '--insert')                      +
+                            (*COMPRESS        '--compress')                    +
+                            (*HTML            '--html')                        +
+                            (*XMLOUT          '--xmlout')                      +
+                            (*NODEFDTD        '--nodefdtd')                    +
+                            (*PUSH            '--push')                        +
+                            (*PUSHSMALL       '--pushsmall')                   +
+                            (*MEMORY          '--memory')                      +
+                            (*NOWARNING       '--nowarning')                   +
+                            (*NOBLANKS        '--noblanks')                    +
+                            (*NOCDATA         '--nocdata')                     +
+                            (*FORMAT          '--format')                      +
+                            (*DROPDTD         '--dropdtd')                     +
+                            (*NSCLEAN         '--nsclean')                     +
+                            (*TESTIO          '--testIO')                      +
+                            (*CATALOGS        '--catalogs')                    +
+                            (*NOCATALOGS      '--nocatalogs')                  +
+                            (*AUTO            '--auto')                        +
+                            (*XINCLUDE        '--xinclude')                    +
+                            (*NOXINCLUDENODE  '--noxincludenode')              +
+                            (*NOFIXUPBASEURIS '--nofixup-base-uris')           +
+                            (*LOADDTD         '--loaddtd')                     +
+                            (*DTDATTR         '--dtdattr')                     +
+                            (*STREAM          '--stream')                      +
+                            (*WALKER          '--walker')                      +
+                            (*CHKREGISTER     '--chkregister')                 +
+                            (*C14N            '--c14n')                        +
+                            (*C14N11          '--c14n11')                      +
+                            (*EXCC14N         '--exc-c14n')                    +
+                            (*SAX1            '--sax1')                        +
+                            (*SAX             '--sax')                         +
+                            (*OLDXML10        '--oldxml10')                    +
+                          )
diff --git a/os400/xmllintcl.c b/os400/xmllintcl.c
new file mode 100644
index 0000000..1226385
--- /dev/null
+++ b/os400/xmllintcl.c
@@ -0,0 +1,216 @@
+/**
+***     XMLLINT command response program.
+***
+***     See Copyright for the status of this software.
+***
+***     Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <qshell.h>
+
+
+/* Variable-length string, with 16-bit length. */
+typedef struct {
+        short           len;
+        char            string[5000];
+}               vary2;
+
+
+/* Variable-length string, with 32-bit length. */
+typedef struct {
+        int             len;
+        char            string[5000];
+}               vary4;
+
+
+/* Multiple occurrence parameter list. */
+#define paramlist(itemsize, itemtype)                                   \
+        _Packed struct {                                                \
+                short           len;                                    \
+                union {                                                 \
+                         char           _pad[itemsize];                 \
+                        itemtype        param;                          \
+                }               item[1];                                \
+        }
+
+
+/* Arguments from CL command. */
+typedef struct {
+        char *          pgm;            /* Program name. */
+        vary2 *         stmf;           /* XML file name or URL. */
+        vary2 *         dtd;            /* DTD location or public identifier. */
+        char *          dtdvalid;       /* *DTDURL or *DTDFPI. */
+        vary2 *         schema;         /* Schema file name or URL. */
+        vary2 *         schemakind;     /* --schema/--relaxng/--schematron. */
+        vary2 *         outstmf;        /* Output stream file name. */
+        vary2 *         xpath;          /* XPath filter. */
+        vary2 *         pattern;        /* Reader filter pattern. */
+        paramlist(5000 + 2, vary2) * path; /* Path for resources. */
+        vary2 *         pretty;         /* Pretty-print style. */
+        unsigned long * maxmem;         /* Maximum dynamic memory. */
+        vary2 *         encoding;       /* Output encoding. */
+        paramlist(20 + 2, vary2) * options; /* Other options. */
+}               arguments;
+
+
+/* Definition of QSHELL program. */
+extern void     qshell(vary4 * cmd);
+#pragma linkage(qshell, OS)
+#pragma map(qshell, "QSHELL/QZSHQSHC")
+
+
+static void
+vary4nappend(vary4 * dst, const char * src, size_t len)
+
+{
+        if (len > sizeof(dst->string) - dst->len)
+                len = sizeof(dst->string) - dst->len;
+
+        if (len) {
+                memcpy(dst->string + dst->len, src, len);
+                dst->len += len;
+                }
+}
+
+
+static void
+vary4append(vary4 * dst, const char * src)
+
+{
+        vary4nappend(dst, src, strlen(src));
+}
+
+
+static void
+vary4arg(vary4 * dst, const char * arg)
+
+{
+        vary4nappend(dst, " ", 1);
+        vary4append(dst, arg);
+}
+
+
+static void
+vary4varg(vary4 * dst, vary2 * arg)
+
+{
+        vary4nappend(dst, " ", 1);
+        vary4nappend(dst, arg->string, arg->len);
+}
+
+
+static void
+vary4vescape(vary4 * dst, vary2 * arg)
+
+{
+        int i;
+
+        for (i = 0; i < arg->len; i++)
+                if (arg->string[i] == '\'')
+                        vary4nappend(dst, "'\"'\"'", 5);
+                else
+                        vary4nappend(dst, arg->string + i, 1);
+}
+
+
+static void
+vary4vargquote(vary4 * dst, vary2 * arg)
+
+{
+        vary4nappend(dst, " '", 2);
+        vary4vescape(dst, arg);
+        vary4nappend(dst, "'", 1);
+}
+
+
+int
+main(int argsc, arguments * args)
+
+{
+        vary4 cmd;
+        int i;
+        char textbuf[20];
+        char * lang;
+
+        /* find length of library name. */
+        for (i = 0; i < 10 && args->pgm[i] && args->pgm[i] != '/'; i++)
+                ;
+
+        /* Store program name in command buffer. */
+        cmd.len = 0;
+        vary4append(&cmd, "/QSYS.LIB/");
+        vary4nappend(&cmd, args->pgm, i);
+        vary4append(&cmd, ".LIB/XMLLINT.PGM");
+
+        /* Map command arguments to standard xmllint argument vector. */
+
+        if (args->dtd && args->dtd->len) {
+                if (args->dtdvalid && args->dtdvalid[4] == 'F')
+                        vary4arg(&cmd, "--dtdvalidfpi");
+                else
+                        vary4arg(&cmd, "--dtdvalid");
+
+                vary4vargquote(&cmd, args->dtd);
+                }
+
+        if (args->schema && args->schema->len) {
+                vary4varg(&cmd, args->schemakind);
+                vary4vargquote(&cmd, args->schema);
+                }
+
+        if (args->outstmf && args->outstmf->len) {
+                vary4arg(&cmd, "--output");
+                vary4vargquote(&cmd, args->outstmf);
+
+                if (args->encoding && args->encoding->len) {
+                        vary4arg(&cmd, "--encoding");
+                        vary4vargquote(&cmd, args->encoding);
+                        }
+                }
+
+        if (args->xpath && args->xpath->len) {
+                vary4arg(&cmd, "--xpath");
+                vary4vargquote(&cmd, args->xpath);
+                }
+
+        if (args->pattern && args->pattern->len) {
+                vary4arg(&cmd, "--pattern");
+                vary4vargquote(&cmd, args->pattern);
+                }
+
+        if (args->path && args->path->len) {
+                vary4arg(&cmd, "--path '");
+                vary4vescape(&cmd, &args->path->item[0].param);
+                for (i = 1; i < args->path->len; i++) {
+                        vary4nappend(&cmd, ":", 1);
+                        vary4vescape(&cmd, &args->path->item[i].param);
+                        }
+                vary4nappend(&cmd, "'", 1);
+                }
+
+        if (args->pretty && args->pretty->len &&
+            args->pretty->string[0] != '0') {
+                vary4arg(&cmd, "--pretty");
+                vary4varg(&cmd, args->pretty);
+                }
+
+        if (args->maxmem && *args->maxmem) {
+                snprintf(textbuf, sizeof textbuf, "%lu", *args->maxmem);
+                vary4arg(&cmd, "--maxmem");
+                vary4arg(&cmd, textbuf);
+                }
+
+        for (i = 0; i < args->options->len; i++)
+                vary4varg(&cmd, &args->options->item[i].param);
+
+        vary4vargquote(&cmd, args->stmf);
+
+        /* Execute the shell command. */
+        qshell(&cmd);
+
+        /* Terminate. */
+        exit(0);
+}
diff --git a/parser.c b/parser.c
index 63ae15f..ca9fde2 100644
--- a/parser.c
+++ b/parser.c
@@ -30,10 +30,15 @@
  * daniel@veillard.com
  */
 
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
 #define IN_LIBXML
 #include "libxml.h"
 
-#if defined(WIN32) && !defined (__CYGWIN__)
+#if defined(_WIN32) && !defined (__CYGWIN__)
 #define XML_DIR_SEP '\\'
 #else
 #define XML_DIR_SEP '/'
@@ -43,6 +48,7 @@
 #include <limits.h>
 #include <string.h>
 #include <stdarg.h>
+#include <stddef.h>
 #include <libxml/xmlmemory.h>
 #include <libxml/threads.h>
 #include <libxml/globals.h>
@@ -77,12 +83,6 @@
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#ifdef HAVE_ZLIB_H
-#include <zlib.h>
-#endif
-#ifdef HAVE_LZMA_H
-#include <lzma.h>
-#endif
 
 #include "buf.h"
 #include "enc.h"
@@ -149,7 +149,7 @@
 	rep = xmlStringDecodeEntities(ctxt, ent->content,
 				  XML_SUBSTITUTE_REF, 0, 0, 0);
         --ctxt->depth;
-	if (ctxt->errNo == XML_ERR_ENTITY_LOOP) {
+	if ((rep == NULL) || (ctxt->errNo == XML_ERR_ENTITY_LOOP)) {
 	    ent->content[0] = 0;
 	}
 
@@ -1087,7 +1087,12 @@
 struct _xmlDefAttrs {
     int nbAttrs;	/* number of defaulted attributes on that element */
     int maxAttrs;       /* the size of the array */
-    const xmlChar *values[5]; /* array of localname/prefix/values/external */
+#if __STDC_VERSION__ >= 199901L
+    /* Using a C99 flexible array member avoids UBSan errors. */
+    const xmlChar *values[]; /* array of localname/prefix/values/external */
+#else
+    const xmlChar *values[5];
+#endif
 };
 
 /**
@@ -1324,7 +1329,7 @@
         return;
 
     xmlHashAddEntry2(ctxt->attsSpecial, fullname, fullattr,
-                     (void *) (long) type);
+                     (void *) (ptrdiff_t) type);
     return;
 
 mem_error:
@@ -1343,7 +1348,7 @@
                             const xmlChar *unused ATTRIBUTE_UNUSED) {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) data;
 
-    if (((long) payload) == XML_ATTRIBUTE_CDATA) {
+    if (((ptrdiff_t) payload) == XML_ATTRIBUTE_CDATA) {
         xmlHashRemoveEntry2(ctxt->attsSpecial, fullname, fullattr, NULL);
     }
 }
@@ -1855,7 +1860,7 @@
     ctxt->name = value;
     ctxt->pushTab[ctxt->nameNr * 3] = (void *) prefix;
     ctxt->pushTab[ctxt->nameNr * 3 + 1] = (void *) URI;
-    ctxt->pushTab[ctxt->nameNr * 3 + 2] = (void *) (long) nsNr;
+    ctxt->pushTab[ctxt->nameNr * 3 + 2] = (void *) (ptrdiff_t) nsNr;
     return (ctxt->nameNr++);
 mem_error:
     xmlErrMemory(ctxt, NULL);
@@ -2037,10 +2042,8 @@
 
 #define SKIP(val) do {							\
     ctxt->nbChars += (val),ctxt->input->cur += (val),ctxt->input->col+=(val);			\
-    if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt);	\
-    if ((*ctxt->input->cur == 0) &&					\
-        (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0))		\
-	    xmlPopInput(ctxt);						\
+    if (*ctxt->input->cur == 0)						\
+        xmlParserInputGrow(ctxt->input, INPUT_CHUNK);			\
   } while (0)
 
 #define SKIPL(val) do {							\
@@ -2052,10 +2055,8 @@
 	ctxt->nbChars++;						\
 	ctxt->input->cur++;						\
     }									\
-    if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt);	\
-    if ((*ctxt->input->cur == 0) &&					\
-        (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0))		\
-	    xmlPopInput(ctxt);						\
+    if (*ctxt->input->cur == 0)						\
+        xmlParserInputGrow(ctxt->input, INPUT_CHUNK);			\
   } while (0)
 
 #define SHRINK if ((ctxt->progressive == 0) &&				\
@@ -2065,10 +2066,9 @@
 
 static void xmlSHRINK (xmlParserCtxtPtr ctxt) {
     xmlParserInputShrink(ctxt->input);
-    if ((*ctxt->input->cur == 0) &&
-        (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0))
-	    xmlPopInput(ctxt);
-  }
+    if (*ctxt->input->cur == 0)
+        xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+}
 
 #define GROW if ((ctxt->progressive == 0) &&				\
 		 (ctxt->input->end - ctxt->input->cur < INPUT_CHUNK))	\
@@ -2080,7 +2080,8 @@
 
     if (((curEnd > (unsigned long) XML_MAX_LOOKUP_LIMIT) ||
          (curBase > (unsigned long) XML_MAX_LOOKUP_LIMIT)) &&
-         ((ctxt->input->buf) && (ctxt->input->buf->readcallback != (xmlInputReadCallback) xmlNop)) &&
+         ((ctxt->input->buf) &&
+          (ctxt->input->buf->readcallback != xmlInputReadCallbackNop)) &&
         ((ctxt->options & XML_PARSE_HUGE) == 0)) {
         xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, "Huge input lookup");
         xmlHaltParser(ctxt);
@@ -2093,9 +2094,8 @@
         xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, "cur index out of bound");
 	return;
     }
-    if ((ctxt->input->cur != NULL) && (*ctxt->input->cur == 0) &&
-        (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0))
-	    xmlPopInput(ctxt);
+    if ((ctxt->input->cur != NULL) && (*ctxt->input->cur == 0))
+        xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
 }
 
 #define SKIP_BLANKS xmlSkipBlankChars(ctxt)
@@ -2115,7 +2115,6 @@
 	ctxt->input->line++; ctxt->input->col = 1;			\
     } else ctxt->input->col++;						\
     ctxt->input->cur += l;				\
-    if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt);	\
   } while (0)
 
 #define CUR_CHAR(l) xmlCurrentChar(ctxt, &l)
@@ -2165,26 +2164,35 @@
 	}
 	ctxt->input->cur = cur;
     } else {
-	int cur;
-	do {
-	    cur = CUR;
-	    while ((IS_BLANK_CH(cur) && /* CHECKED tstblanks.xml */
-	           (ctxt->instate != XML_PARSER_EOF))) {
+        int expandPE = ((ctxt->external != 0) || (ctxt->inputNr != 1));
+
+	while (1) {
+            if (IS_BLANK_CH(CUR)) { /* CHECKED tstblanks.xml */
 		NEXT;
-		cur = CUR;
-		res++;
-	    }
-	    while ((cur == 0) && (ctxt->inputNr > 1) &&
-		   (ctxt->instate != XML_PARSER_COMMENT)) {
-		xmlPopInput(ctxt);
-		cur = CUR;
-	    }
-	    /*
-	     * Need to handle support of entities branching here
-	     */
-	    if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt);
-	} while ((IS_BLANK(cur)) && /* CHECKED tstblanks.xml */
-	         (ctxt->instate != XML_PARSER_EOF));
+	    } else if (CUR == '%') {
+                /*
+                 * Need to handle support of entities branching here
+                 */
+	        if ((expandPE == 0) || (IS_BLANK_CH(NXT(1))) || (NXT(1) == 0))
+                    break;
+	        xmlParsePEReference(ctxt);
+            } else if (CUR == 0) {
+                if (ctxt->inputNr <= 1)
+                    break;
+                xmlPopInput(ctxt);
+            } else {
+                break;
+            }
+
+            /*
+             * Also increase the counter when entering or exiting a PERef.
+             * The spec says: "When a parameter-entity reference is recognized
+             * in the DTD and included, its replacement text MUST be enlarged
+             * by the attachment of one leading and one following space (#x20)
+             * character."
+             */
+	    res++;
+        }
     }
     return(res);
 }
@@ -2210,10 +2218,13 @@
     if (xmlParserDebugEntities)
 	xmlGenericError(xmlGenericErrorContext,
 		"Popping input %d\n", ctxt->inputNr);
+    if ((ctxt->inputNr > 1) && (ctxt->inSubset == 0) &&
+        (ctxt->instate != XML_PARSER_EOF))
+        xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
+                    "Unfinished entity outside the DTD");
     xmlFreeInputStream(inputPop(ctxt));
-    if ((*ctxt->input->cur == 0) &&
-        (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0))
-	    return(xmlPopInput(ctxt));
+    if (*ctxt->input->cur == 0)
+        xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
     return(CUR);
 }
 
@@ -2239,6 +2250,13 @@
 	xmlGenericError(xmlGenericErrorContext,
 		"Pushing input %d : %.30s\n", ctxt->inputNr+1, input->cur);
     }
+    if (((ctxt->inputNr > 40) && ((ctxt->options & XML_PARSE_HUGE) == 0)) ||
+        (ctxt->inputNr > 1024)) {
+        xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL);
+        while (ctxt->inputNr > 1)
+            xmlFreeInputStream(inputPop(ctxt));
+	return(-1);
+    }
     ret = inputPush(ctxt, input);
     if (ctxt->instate == XML_PARSER_EOF)
         return(-1);
@@ -2444,57 +2462,6 @@
 }
 
 /**
- * xmlNewBlanksWrapperInputStream:
- * @ctxt:  an XML parser context
- * @entity:  an Entity pointer
- *
- * Create a new input stream for wrapping
- * blanks around a PEReference
- *
- * Returns the new input stream or NULL
- */
-
-static void deallocblankswrapper (xmlChar *str) {xmlFree(str);}
-
-static xmlParserInputPtr
-xmlNewBlanksWrapperInputStream(xmlParserCtxtPtr ctxt, xmlEntityPtr entity) {
-    xmlParserInputPtr input;
-    xmlChar *buffer;
-    size_t length;
-    if (entity == NULL) {
-	xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
-	            "xmlNewBlanksWrapperInputStream entity\n");
-	return(NULL);
-    }
-    if (xmlParserDebugEntities)
-	xmlGenericError(xmlGenericErrorContext,
-		"new blanks wrapper for entity: %s\n", entity->name);
-    input = xmlNewInputStream(ctxt);
-    if (input == NULL) {
-	return(NULL);
-    }
-    length = xmlStrlen(entity->name) + 5;
-    buffer = xmlMallocAtomic(length);
-    if (buffer == NULL) {
-	xmlErrMemory(ctxt, NULL);
-        xmlFree(input);
-	return(NULL);
-    }
-    buffer [0] = ' ';
-    buffer [1] = '%';
-    buffer [length-3] = ';';
-    buffer [length-2] = ' ';
-    buffer [length-1] = 0;
-    memcpy(buffer + 2, entity->name, length - 5);
-    input->free = deallocblankswrapper;
-    input->base = buffer;
-    input->cur = buffer;
-    input->length = length;
-    input->end = &buffer[length];
-    return(input);
-}
-
-/**
  * xmlParserHandlePEReference:
  * @ctxt:  the parser context
  *
@@ -2528,11 +2495,6 @@
  */
 void
 xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) {
-    const xmlChar *name;
-    xmlEntityPtr entity = NULL;
-    xmlParserInputPtr input;
-
-    if (RAW != '%') return;
     switch(ctxt->instate) {
 	case XML_PARSER_CDATA_SECTION:
 	    return;
@@ -2587,128 +2549,7 @@
             return;
     }
 
-    NEXT;
-    name = xmlParseName(ctxt);
-    if (xmlParserDebugEntities)
-	xmlGenericError(xmlGenericErrorContext,
-		"PEReference: %s\n", name);
-    if (name == NULL) {
-	xmlFatalErr(ctxt, XML_ERR_PEREF_NO_NAME, NULL);
-    } else {
-	if (RAW == ';') {
-	    NEXT;
-	    if ((ctxt->sax != NULL) && (ctxt->sax->getParameterEntity != NULL))
-		entity = ctxt->sax->getParameterEntity(ctxt->userData, name);
-	    if (ctxt->instate == XML_PARSER_EOF)
-	        return;
-	    if (entity == NULL) {
-
-		/*
-		 * [ WFC: Entity Declared ]
-		 * In a document without any DTD, a document with only an
-		 * internal DTD subset which contains no parameter entity
-		 * references, or a document with "standalone='yes'", ...
-		 * ... The declaration of a parameter entity must precede
-		 * any reference to it...
-		 */
-		if ((ctxt->standalone == 1) ||
-		    ((ctxt->hasExternalSubset == 0) &&
-		     (ctxt->hasPErefs == 0))) {
-		    xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY,
-			 "PEReference: %%%s; not found\n", name);
-	        } else {
-		    /*
-		     * [ VC: Entity Declared ]
-		     * In a document with an external subset or external
-		     * parameter entities with "standalone='no'", ...
-		     * ... The declaration of a parameter entity must precede
-		     * any reference to it...
-		     */
-		    if ((ctxt->validate) && (ctxt->vctxt.error != NULL)) {
-		        xmlValidityError(ctxt, XML_WAR_UNDECLARED_ENTITY,
-			                 "PEReference: %%%s; not found\n",
-				         name, NULL);
-		    } else
-		        xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY,
-			              "PEReference: %%%s; not found\n",
-				      name, NULL);
-		    ctxt->valid = 0;
-		}
-		xmlParserEntityCheck(ctxt, 0, NULL, 0);
-	    } else if (ctxt->input->free != deallocblankswrapper) {
-		    input = xmlNewBlanksWrapperInputStream(ctxt, entity);
-		    if (xmlPushInput(ctxt, input) < 0)
-		        return;
-	    } else {
-	        if ((entity->etype == XML_INTERNAL_PARAMETER_ENTITY) ||
-		    (entity->etype == XML_EXTERNAL_PARAMETER_ENTITY)) {
-		    xmlChar start[4];
-		    xmlCharEncoding enc;
-
-		    /*
-		     * Note: external parameter entities will not be loaded, it
-		     * is not required for a non-validating parser, unless the
-		     * option of validating, or substituting entities were
-		     * given. Doing so is far more secure as the parser will
-		     * only process data coming from the document entity by
-		     * default.
-		     */
-                    if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
-		        ((ctxt->options & XML_PARSE_NOENT) == 0) &&
-			((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
-			((ctxt->options & XML_PARSE_DTDLOAD) == 0) &&
-			((ctxt->options & XML_PARSE_DTDATTR) == 0) &&
-			(ctxt->replaceEntities == 0) &&
-			(ctxt->validate == 0))
-			return;
-
-		    /*
-		     * handle the extra spaces added before and after
-		     * c.f. http://www.w3.org/TR/REC-xml#as-PE
-		     * this is done independently.
-		     */
-		    input = xmlNewEntityInputStream(ctxt, entity);
-		    if (xmlPushInput(ctxt, input) < 0)
-		        return;
-
-		    /*
-		     * Get the 4 first bytes and decode the charset
-		     * if enc != XML_CHAR_ENCODING_NONE
-		     * plug some encoding conversion routines.
-		     * Note that, since we may have some non-UTF8
-		     * encoding (like UTF16, bug 135229), the 'length'
-		     * is not known, but we can calculate based upon
-		     * the amount of data in the buffer.
-		     */
-		    GROW
-                    if (ctxt->instate == XML_PARSER_EOF)
-                        return;
-		    if ((ctxt->input->end - ctxt->input->cur)>=4) {
-			start[0] = RAW;
-			start[1] = NXT(1);
-			start[2] = NXT(2);
-			start[3] = NXT(3);
-			enc = xmlDetectCharEncoding(start, 4);
-			if (enc != XML_CHAR_ENCODING_NONE) {
-			    xmlSwitchEncoding(ctxt, enc);
-			}
-		    }
-
-		    if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
-			(CMP5(CUR_PTR, '<', '?', 'x', 'm', 'l' )) &&
-			(IS_BLANK_CH(NXT(5)))) {
-			xmlParseTextDecl(ctxt);
-		    }
-		} else {
-		    xmlFatalErrMsgStr(ctxt, XML_ERR_ENTITY_IS_PARAMETER,
-			     "PEReference: %s is not a parameter entity\n",
-				      name);
-		}
-	    }
-	} else {
-	    xmlFatalErr(ctxt, XML_ERR_PEREF_SEMICOL_MISSING, NULL);
-	}
-    }
+    xmlParsePEReference(ctxt);
 }
 
 /*
@@ -2790,9 +2631,9 @@
 	if (c == 0) break;
         if ((c == '&') && (str[1] == '#')) {
 	    int val = xmlParseStringCharRef(ctxt, &str);
-	    if (val != 0) {
-		COPY_BUF(0,buffer,nbchars,val);
-	    }
+	    if (val == 0)
+                goto int_error;
+	    COPY_BUF(0,buffer,nbchars,val);
 	    if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
 	        growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
 	    }
@@ -2802,9 +2643,6 @@
 			"String decoding Entity Reference: %.30s\n",
 			str);
 	    ent = xmlParseStringEntityRef(ctxt, &str);
-	    if ((ctxt->lastError.code == XML_ERR_ENTITY_LOOP) ||
-	        (ctxt->lastError.code == XML_ERR_INTERNAL_ERROR))
-	        goto int_error;
 	    xmlParserEntityCheck(ctxt, 0, ent, 0);
 	    if (ent != NULL)
 	        ctxt->nbentities += ent->checked / 2;
@@ -2818,30 +2656,27 @@
 		} else {
 		    xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR,
 			    "predefined entity has no content\n");
+                    goto int_error;
 		}
 	    } else if ((ent != NULL) && (ent->content != NULL)) {
 		ctxt->depth++;
 		rep = xmlStringDecodeEntities(ctxt, ent->content, what,
 			                      0, 0, 0);
 		ctxt->depth--;
+		if (rep == NULL)
+                    goto int_error;
 
-		if ((ctxt->lastError.code == XML_ERR_ENTITY_LOOP) ||
-		    (ctxt->lastError.code == XML_ERR_INTERNAL_ERROR))
-		    goto int_error;
-
-		if (rep != NULL) {
-		    current = rep;
-		    while (*current != 0) { /* non input consuming loop */
-			buffer[nbchars++] = *current++;
-			if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
-			    if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
-				goto int_error;
-			    growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
-			}
-		    }
-		    xmlFree(rep);
-		    rep = NULL;
-		}
+                current = rep;
+                while (*current != 0) { /* non input consuming loop */
+                    buffer[nbchars++] = *current++;
+                    if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
+                        if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
+                            goto int_error;
+                        growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
+                    }
+                }
+                xmlFree(rep);
+                rep = NULL;
 	    } else if (ent != NULL) {
 		int i = xmlStrlen(ent->name);
 		const xmlChar *cur = ent->name;
@@ -2859,8 +2694,6 @@
 		xmlGenericError(xmlGenericErrorContext,
 			"String decoding PE Reference: %.30s\n", str);
 	    ent = xmlParseStringPEReference(ctxt, &str);
-	    if (ctxt->lastError.code == XML_ERR_ENTITY_LOOP)
-	        goto int_error;
 	    xmlParserEntityCheck(ctxt, 0, ent, 0);
 	    if (ent != NULL)
 	        ctxt->nbentities += ent->checked / 2;
@@ -2886,19 +2719,19 @@
 		rep = xmlStringDecodeEntities(ctxt, ent->content, what,
 			                      0, 0, 0);
 		ctxt->depth--;
-		if (rep != NULL) {
-		    current = rep;
-		    while (*current != 0) { /* non input consuming loop */
-			buffer[nbchars++] = *current++;
-			if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
-			    if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
-			        goto int_error;
-			    growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
-			}
-		    }
-		    xmlFree(rep);
-		    rep = NULL;
-		}
+		if (rep == NULL)
+                    goto int_error;
+                current = rep;
+                while (*current != 0) { /* non input consuming loop */
+                    buffer[nbchars++] = *current++;
+                    if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
+                        if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
+                            goto int_error;
+                        growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
+                    }
+                }
+                xmlFree(rep);
+                rep = NULL;
 	    }
 	} else {
 	    COPY_BUF(l,buffer,nbchars,c);
@@ -3406,13 +3239,6 @@
 	    len += l;
 	    NEXTL(l);
 	    c = CUR_CHAR(l);
-	    if (c == 0) {
-		count = 0;
-		GROW;
-                if (ctxt->instate == XML_PARSER_EOF)
-                    return(NULL);
-		c = CUR_CHAR(l);
-	    }
 	}
     }
     if ((len > XML_MAX_NAME_LENGTH) &&
@@ -3420,15 +3246,18 @@
         xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "Name");
         return(NULL);
     }
-    if (ctxt->input->cur > ctxt->input->base && (*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r')) {
-        if (ctxt->input->base > ctxt->input->cur - (len + 1)) {
-            return(NULL);
-        }
+    if (ctxt->input->cur - ctxt->input->base < len) {
+        /*
+         * There were a couple of bugs where PERefs lead to to a change
+         * of the buffer. Check the buffer size to avoid passing an invalid
+         * pointer to xmlDictLookup.
+         */
+        xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
+                    "unexpected change of input buffer");
+        return (NULL);
+    }
+    if ((*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r'))
         return(xmlDictLookup(ctxt->dict, ctxt->input->cur - (len + 1), len));
-    }
-    if (ctxt->input->base > ctxt->input->cur - len) {
-        return(NULL);
-    }
     return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len));
 }
 
@@ -3541,9 +3370,9 @@
 	     */
 	    ctxt->input->cur -= l;
 	    GROW;
-	    ctxt->input->cur += l;
             if (ctxt->instate == XML_PARSER_EOF)
                 return(NULL);
+	    ctxt->input->cur += l;
 	    c = CUR_CHAR(l);
 	}
     }
@@ -3899,10 +3728,8 @@
     ctxt->instate = XML_PARSER_ENTITY_VALUE;
     input = ctxt->input;
     GROW;
-    if (ctxt->instate == XML_PARSER_EOF) {
-        xmlFree(buf);
-        return(NULL);
-    }
+    if (ctxt->instate == XML_PARSER_EOF)
+        goto error;
     NEXT;
     c = CUR_CHAR(l);
     /*
@@ -3923,18 +3750,12 @@
 	    tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar));
 	    if (tmp == NULL) {
 		xmlErrMemory(ctxt, NULL);
-		xmlFree(buf);
-		return(NULL);
+                goto error;
 	    }
 	    buf = tmp;
 	}
 	COPY_BUF(l,buf,len,c);
 	NEXTL(l);
-	/*
-	 * Pop-up of finished entities.
-	 */
-	while ((RAW == 0) && (ctxt->inputNr > 1)) /* non input consuming */
-	    xmlPopInput(ctxt);
 
 	GROW;
 	c = CUR_CHAR(l);
@@ -3944,10 +3765,13 @@
 	}
     }
     buf[len] = 0;
-    if (ctxt->instate == XML_PARSER_EOF) {
-        xmlFree(buf);
-        return(NULL);
+    if (ctxt->instate == XML_PARSER_EOF)
+        goto error;
+    if (c != stop) {
+        xmlFatalErr(ctxt, XML_ERR_ENTITY_NOT_FINISHED, NULL);
+        goto error;
     }
+    NEXT;
 
     /*
      * Raise problem w.r.t. '&' and '%' being used in non-entities
@@ -3959,20 +3783,25 @@
 	if ((*cur == '%') || ((*cur == '&') && (cur[1] != '#'))) {
 	    xmlChar *name;
 	    xmlChar tmp = *cur;
+            int nameOk = 0;
 
 	    cur++;
 	    name = xmlParseStringName(ctxt, &cur);
-            if ((name == NULL) || (*cur != ';')) {
+            if (name != NULL) {
+                nameOk = 1;
+                xmlFree(name);
+            }
+            if ((nameOk == 0) || (*cur != ';')) {
 		xmlFatalErrMsgInt(ctxt, XML_ERR_ENTITY_CHAR_ERROR,
 	    "EntityValue: '%c' forbidden except for entities references\n",
 	                          tmp);
+                goto error;
 	    }
 	    if ((tmp == '%') && (ctxt->inSubset == 1) &&
 		(ctxt->inputNr == 1)) {
 		xmlFatalErr(ctxt, XML_ERR_ENTITY_PE_INTERNAL, NULL);
+                goto error;
 	    }
-	    if (name != NULL)
-		xmlFree(name);
 	    if (*cur == 0)
 	        break;
 	}
@@ -3981,28 +3810,24 @@
 
     /*
      * Then PEReference entities are substituted.
+     *
+     * NOTE: 4.4.7 Bypassed
+     * When a general entity reference appears in the EntityValue in
+     * an entity declaration, it is bypassed and left as is.
+     * so XML_SUBSTITUTE_REF is not set here.
      */
-    if (c != stop) {
-	xmlFatalErr(ctxt, XML_ERR_ENTITY_NOT_FINISHED, NULL);
-	xmlFree(buf);
-    } else {
-	NEXT;
-	/*
-	 * NOTE: 4.4.7 Bypassed
-	 * When a general entity reference appears in the EntityValue in
-	 * an entity declaration, it is bypassed and left as is.
-	 * so XML_SUBSTITUTE_REF is not set here.
-	 */
-        ++ctxt->depth;
-	ret = xmlStringDecodeEntities(ctxt, buf, XML_SUBSTITUTE_PEREF,
-				      0, 0, 0);
-        --ctxt->depth;
-	if (orig != NULL)
-	    *orig = buf;
-	else
-	    xmlFree(buf);
+    ++ctxt->depth;
+    ret = xmlStringDecodeEntities(ctxt, buf, XML_SUBSTITUTE_PEREF,
+                                  0, 0, 0);
+    --ctxt->depth;
+    if (orig != NULL) {
+        *orig = buf;
+        buf = NULL;
     }
 
+error:
+    if (buf != NULL)
+        xmlFree(buf);
     return(ret);
 }
 
@@ -4172,7 +3997,9 @@
 			        ent->checked |= 1;
 			    xmlFree(rep);
 			    rep = NULL;
-			}
+			} else {
+                            ent->content[0] = 0;
+                        }
 		    }
 
 		    /*
@@ -4596,7 +4423,7 @@
 	    if (*in == ']') {
 		if ((in[1] == ']') && (in[2] == '>')) {
 		    xmlFatalErr(ctxt, XML_ERR_MISPLACED_CDATA_END, NULL);
-		    ctxt->input->cur = in;
+		    ctxt->input->cur = in + 1;
 		    return;
 		}
 		in++;
@@ -4789,22 +4616,20 @@
     *publicID = NULL;
     if (CMP6(CUR_PTR, 'S', 'Y', 'S', 'T', 'E', 'M')) {
         SKIP(6);
-	if (!IS_BLANK_CH(CUR)) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 	                   "Space required after 'SYSTEM'\n");
 	}
-        SKIP_BLANKS;
 	URI = xmlParseSystemLiteral(ctxt);
 	if (URI == NULL) {
 	    xmlFatalErr(ctxt, XML_ERR_URI_REQUIRED, NULL);
         }
     } else if (CMP6(CUR_PTR, 'P', 'U', 'B', 'L', 'I', 'C')) {
         SKIP(6);
-	if (!IS_BLANK_CH(CUR)) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 		    "Space required after 'PUBLIC'\n");
 	}
-        SKIP_BLANKS;
 	*publicID = xmlParsePubidLiteral(ctxt);
 	if (*publicID == NULL) {
 	    xmlFatalErr(ctxt, XML_ERR_PUBID_REQUIRED, NULL);
@@ -4813,26 +4638,20 @@
 	    /*
 	     * We don't handle [83] so "S SystemLiteral" is required.
 	     */
-	    if (!IS_BLANK_CH(CUR)) {
+	    if (SKIP_BLANKS == 0) {
 		xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			"Space required after the Public Identifier\n");
 	    }
 	} else {
 	    /*
 	     * We handle [83] so we return immediately, if
-	     * "S SystemLiteral" is not detected. From a purely parsing
-	     * point of view that's a nice mess.
+	     * "S SystemLiteral" is not detected. We skip blanks if no
+             * system literal was found, but this is harmless since we must
+             * be at the end of a NotationDecl.
 	     */
-	    const xmlChar *ptr;
-	    GROW;
-
-	    ptr = CUR_PTR;
-	    if (!IS_BLANK_CH(*ptr)) return(NULL);
-
-	    while (IS_BLANK_CH(*ptr)) ptr++; /* TODO: dangerous, fix ! */
-	    if ((*ptr != '\'') && (*ptr != '"')) return(NULL);
+	    if (SKIP_BLANKS == 0) return(NULL);
+	    if ((CUR != '\'') && (CUR != '"')) return(NULL);
 	}
-        SKIP_BLANKS;
 	URI = xmlParseSystemLiteral(ctxt);
 	if (URI == NULL) {
 	    xmlFatalErr(ctxt, XML_ERR_URI_REQUIRED, NULL);
@@ -4962,7 +4781,8 @@
     } else {
 	if (inputid != ctxt->input->id) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
-		"Comment doesn't start and stop in the same entity\n");
+		           "Comment doesn't start and stop in the same"
+                           " entity\n");
 	}
         NEXT;
 	if ((ctxt->sax != NULL) && (ctxt->sax->comment != NULL) &&
@@ -5110,7 +4930,8 @@
 	        if (in[2] == '>') {
 		    if (ctxt->input->id != inputid) {
 			xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
-			"comment doesn't start and stop in the same entity\n");
+			               "comment doesn't start and stop in the"
+                                       " same entity\n");
 		    }
 		    SKIP(3);
 		    if ((ctxt->sax != NULL) && (ctxt->sax->comment != NULL) &&
@@ -5278,7 +5099,7 @@
     int count = 0;
 
     if ((RAW == '<') && (NXT(1) == '?')) {
-	xmlParserInputPtr input = ctxt->input;
+	int inputid = ctxt->input->id;
 	state = ctxt->instate;
         ctxt->instate = XML_PARSER_PI;
 	/*
@@ -5294,9 +5115,10 @@
         target = xmlParsePITarget(ctxt);
 	if (target != NULL) {
 	    if ((RAW == '?') && (NXT(1) == '>')) {
-		if (input != ctxt->input) {
+		if (inputid != ctxt->input->id) {
 		    xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
-	    "PI declaration doesn't start and stop in the same entity\n");
+	                           "PI declaration doesn't start and stop in"
+                                   " the same entity\n");
 		}
 		SKIP(2);
 
@@ -5317,12 +5139,10 @@
 		ctxt->instate = state;
 		return;
 	    }
-	    cur = CUR;
-	    if (!IS_BLANK(cur)) {
+	    if (SKIP_BLANKS == 0) {
 		xmlFatalErrMsgStr(ctxt, XML_ERR_SPACE_REQUIRED,
 			  "ParsePI: PI %s space expected\n", target);
 	    }
-            SKIP_BLANKS;
 	    cur = CUR_CHAR(l);
 	    while (IS_CHAR(cur) && /* checked */
 		   ((cur != '?') || (NXT(1) != '>'))) {
@@ -5378,9 +5198,10 @@
 		xmlFatalErrMsgStr(ctxt, XML_ERR_PI_NOT_FINISHED,
 		      "ParsePI: PI %s never end ...\n", target);
 	    } else {
-		if (input != ctxt->input) {
-		    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
-	    "PI declaration doesn't start and stop in the same entity\n");
+		if (inputid != ctxt->input->id) {
+		    xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+	                           "PI declaration doesn't start and stop in"
+                                   " the same entity\n");
 		}
 		SKIP(2);
 
@@ -5436,32 +5257,30 @@
     xmlChar *Systemid;
 
     if (CMP10(CUR_PTR, '<', '!', 'N', 'O', 'T', 'A', 'T', 'I', 'O', 'N')) {
-	xmlParserInputPtr input = ctxt->input;
+	int inputid = ctxt->input->id;
 	SHRINK;
 	SKIP(10);
-	if (!IS_BLANK_CH(CUR)) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			   "Space required after '<!NOTATION'\n");
 	    return;
 	}
-	SKIP_BLANKS;
 
         name = xmlParseName(ctxt);
 	if (name == NULL) {
 	    xmlFatalErr(ctxt, XML_ERR_NOTATION_NOT_STARTED, NULL);
 	    return;
 	}
-	if (!IS_BLANK_CH(CUR)) {
-	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
-		     "Space required after the NOTATION name'\n");
-	    return;
-	}
 	if (xmlStrchr(name, ':') != NULL) {
 	    xmlNsErr(ctxt, XML_NS_ERR_COLON,
 		     "colons are forbidden from notation names '%s'\n",
 		     name, NULL, NULL);
 	}
-	SKIP_BLANKS;
+	if (SKIP_BLANKS == 0) {
+	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
+		     "Space required after the NOTATION name'\n");
+	    return;
+	}
 
 	/*
 	 * Parse the IDs.
@@ -5470,9 +5289,10 @@
 	SKIP_BLANKS;
 
 	if (RAW == '>') {
-	    if (input != ctxt->input) {
-		xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
-	"Notation declaration doesn't start and stop in the same entity\n");
+	    if (inputid != ctxt->input->id) {
+		xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+	                       "Notation declaration doesn't start and stop"
+                               " in the same entity\n");
 	    }
 	    NEXT;
 	    if ((ctxt->sax != NULL) && (!ctxt->disableSAX) &&
@@ -5516,23 +5336,20 @@
     const xmlChar *ndata = NULL;
     int isParameter = 0;
     xmlChar *orig = NULL;
-    int skipped;
 
     /* GROW; done in the caller */
     if (CMP8(CUR_PTR, '<', '!', 'E', 'N', 'T', 'I', 'T', 'Y')) {
-	xmlParserInputPtr input = ctxt->input;
+	int inputid = ctxt->input->id;
 	SHRINK;
 	SKIP(8);
-	skipped = SKIP_BLANKS;
-	if (skipped == 0) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			   "Space required after '<!ENTITY'\n");
 	}
 
 	if (RAW == '%') {
 	    NEXT;
-	    skipped = SKIP_BLANKS;
-	    if (skipped == 0) {
+	    if (SKIP_BLANKS == 0) {
 		xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			       "Space required after '%%'\n");
 	    }
@@ -5550,8 +5367,7 @@
 		     "colons are forbidden from entities names '%s'\n",
 		     name, NULL, NULL);
 	}
-        skipped = SKIP_BLANKS;
-	if (skipped == 0) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			   "Space required after the entity name\n");
 	}
@@ -5662,18 +5478,16 @@
 			xmlFreeURI(uri);
 		    }
 		}
-		if ((RAW != '>') && (!IS_BLANK_CH(CUR))) {
+		if ((RAW != '>') && (SKIP_BLANKS == 0)) {
 		    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 				   "Space required before 'NDATA'\n");
 		}
-		SKIP_BLANKS;
 		if (CMP5(CUR_PTR, 'N', 'D', 'A', 'T', 'A')) {
 		    SKIP(5);
-		    if (!IS_BLANK_CH(CUR)) {
+		    if (SKIP_BLANKS == 0) {
 			xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 				       "Space required after 'NDATA'\n");
 		    }
-		    SKIP_BLANKS;
 		    ndata = xmlParseName(ctxt);
 		    if ((ctxt->sax != NULL) && (!ctxt->disableSAX) &&
 		        (ctxt->sax->unparsedEntityDecl != NULL))
@@ -5712,16 +5526,17 @@
 	    }
 	}
 	if (ctxt->instate == XML_PARSER_EOF)
-	    return;
+	    goto done;
 	SKIP_BLANKS;
 	if (RAW != '>') {
 	    xmlFatalErrMsgStr(ctxt, XML_ERR_ENTITY_NOT_FINISHED,
 	            "xmlParseEntityDecl: entity %s not terminated\n", name);
 	    xmlHaltParser(ctxt);
 	} else {
-	    if (input != ctxt->input) {
+	    if (inputid != ctxt->input->id) {
 		xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
-	"Entity declaration doesn't start and stop in the same entity\n");
+	                       "Entity declaration doesn't start and stop in"
+                               " the same entity\n");
 	    }
 	    NEXT;
 	}
@@ -5743,17 +5558,17 @@
 		    cur = xmlSAX2GetEntity(ctxt, name);
 		}
 	    }
-            if (cur != NULL) {
-	        if (cur->orig != NULL)
-		    xmlFree(orig);
-		else
-		    cur->orig = orig;
-	    } else
-		xmlFree(orig);
+            if ((cur != NULL) && (cur->orig == NULL)) {
+		cur->orig = orig;
+                orig = NULL;
+	    }
 	}
+
+done:
 	if (value != NULL) xmlFree(value);
 	if (URI != NULL) xmlFree(URI);
 	if (literal != NULL) xmlFree(literal);
+        if (orig != NULL) xmlFree(orig);
     }
 }
 
@@ -5804,11 +5619,10 @@
     if (CMP6(CUR_PTR, '#', 'F', 'I', 'X', 'E', 'D')) {
 	SKIP(6);
 	val = XML_ATTRIBUTE_FIXED;
-	if (!IS_BLANK_CH(CUR)) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			   "Space required after '#FIXED'\n");
 	}
-	SKIP_BLANKS;
     }
     ret = xmlParseAttValue(ctxt);
     ctxt->instate = XML_PARSER_DTD;
@@ -5980,12 +5794,11 @@
 xmlParseEnumeratedType(xmlParserCtxtPtr ctxt, xmlEnumerationPtr *tree) {
     if (CMP8(CUR_PTR, 'N', 'O', 'T', 'A', 'T', 'I', 'O', 'N')) {
 	SKIP(8);
-	if (!IS_BLANK_CH(CUR)) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			   "Space required after 'NOTATION'\n");
 	    return(0);
 	}
-        SKIP_BLANKS;
 	*tree = xmlParseNotationType(ctxt);
 	if (*tree == NULL) return(0);
 	return(XML_ATTRIBUTE_NOTATION);
@@ -6089,14 +5902,13 @@
     xmlEnumerationPtr tree;
 
     if (CMP9(CUR_PTR, '<', '!', 'A', 'T', 'T', 'L', 'I', 'S', 'T')) {
-	xmlParserInputPtr input = ctxt->input;
+	int inputid = ctxt->input->id;
 
 	SKIP(9);
-	if (!IS_BLANK_CH(CUR)) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 		                 "Space required after '<!ATTLIST'\n");
 	}
-        SKIP_BLANKS;
         elemName = xmlParseName(ctxt);
 	if (elemName == NULL) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED,
@@ -6106,7 +5918,6 @@
 	SKIP_BLANKS;
 	GROW;
 	while ((RAW != '>') && (ctxt->instate != XML_PARSER_EOF)) {
-	    const xmlChar *check = CUR_PTR;
 	    int type;
 	    int def;
 	    xmlChar *defaultValue = NULL;
@@ -6120,12 +5931,11 @@
 		break;
 	    }
 	    GROW;
-	    if (!IS_BLANK_CH(CUR)) {
+	    if (SKIP_BLANKS == 0) {
 		xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 		        "Space required after the attribute name\n");
 		break;
 	    }
-	    SKIP_BLANKS;
 
 	    type = xmlParseAttributeType(ctxt, &tree);
 	    if (type <= 0) {
@@ -6133,14 +5943,13 @@
 	    }
 
 	    GROW;
-	    if (!IS_BLANK_CH(CUR)) {
+	    if (SKIP_BLANKS == 0) {
 		xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			       "Space required after the attribute type\n");
 	        if (tree != NULL)
 		    xmlFreeEnumeration(tree);
 		break;
 	    }
-	    SKIP_BLANKS;
 
 	    def = xmlParseDefaultDecl(ctxt, &defaultValue);
 	    if (def <= 0) {
@@ -6155,7 +5964,7 @@
 
 	    GROW;
             if (RAW != '>') {
-		if (!IS_BLANK_CH(CUR)) {
+		if (SKIP_BLANKS == 0) {
 		    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			"Space required after the attribute default value\n");
 		    if (defaultValue != NULL)
@@ -6164,16 +5973,6 @@
 			xmlFreeEnumeration(tree);
 		    break;
 		}
-		SKIP_BLANKS;
-	    }
-	    if (check == CUR_PTR) {
-		xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
-		            "in xmlParseAttributeListDecl\n");
-		if (defaultValue != NULL)
-		    xmlFree(defaultValue);
-	        if (tree != NULL)
-		    xmlFreeEnumeration(tree);
-		break;
 	    }
 	    if ((ctxt->sax != NULL) && (!ctxt->disableSAX) &&
 		(ctxt->sax->attributeDecl != NULL))
@@ -6195,10 +5994,10 @@
 	    GROW;
 	}
 	if (RAW == '>') {
-	    if (input != ctxt->input) {
-		xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
-    "Attribute list declaration doesn't start and stop in the same entity\n",
-                                 NULL, NULL);
+	    if (inputid != ctxt->input->id) {
+		xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+                               "Attribute list declaration doesn't start and"
+                               " stop in the same entity\n");
 	    }
 	    NEXT;
 	}
@@ -6235,10 +6034,10 @@
 	SKIP_BLANKS;
 	SHRINK;
 	if (RAW == ')') {
-	    if ((ctxt->validate) && (ctxt->input->id != inputchk)) {
-		xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
-"Element content declaration doesn't start and stop in the same entity\n",
-                                 NULL, NULL);
+	    if (ctxt->input->id != inputchk) {
+		xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+                               "Element content declaration doesn't start and"
+                               " stop in the same entity\n");
 	    }
 	    NEXT;
 	    ret = xmlNewDocElementContent(ctxt->myDoc, NULL, XML_ELEMENT_CONTENT_PCDATA);
@@ -6279,7 +6078,7 @@
 	    if (elem == NULL) {
 		xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED,
 			"xmlParseElementMixedContentDecl : Name expected\n");
-		xmlFreeDocElementContent(ctxt->myDoc, cur);
+		xmlFreeDocElementContent(ctxt->myDoc, ret);
 		return(NULL);
 	    }
 	    SKIP_BLANKS;
@@ -6294,10 +6093,10 @@
             }
             if (ret != NULL)
                 ret->ocur = XML_ELEMENT_CONTENT_MULT;
-	    if ((ctxt->validate) && (ctxt->input->id != inputchk)) {
-		xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
-"Element content declaration doesn't start and stop in the same entity\n",
-				 NULL, NULL);
+	    if (ctxt->input->id != inputchk) {
+		xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+                               "Element content declaration doesn't start and"
+                               " stop in the same entity\n");
 	    }
 	    SKIP(2);
 	} else {
@@ -6537,10 +6336,10 @@
 	if (last != NULL)
 	    last->parent = cur;
     }
-    if ((ctxt->validate) && (ctxt->input->id != inputchk)) {
-	xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
-"Element content declaration doesn't start and stop in the same entity\n",
-			 NULL, NULL);
+    if (ctxt->input->id != inputchk) {
+	xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+                       "Element content declaration doesn't start and stop in"
+                       " the same entity\n");
     }
     NEXT;
     if (RAW == '?') {
@@ -6713,28 +6512,24 @@
 
     /* GROW; done in the caller */
     if (CMP9(CUR_PTR, '<', '!', 'E', 'L', 'E', 'M', 'E', 'N', 'T')) {
-	xmlParserInputPtr input = ctxt->input;
+	int inputid = ctxt->input->id;
 
 	SKIP(9);
-	if (!IS_BLANK_CH(CUR)) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 		           "Space required after 'ELEMENT'\n");
 	    return(-1);
 	}
-        SKIP_BLANKS;
         name = xmlParseName(ctxt);
 	if (name == NULL) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED,
 			   "xmlParseElementDecl: no name for Element\n");
 	    return(-1);
 	}
-	while ((RAW == 0) && (ctxt->inputNr > 1))
-	    xmlPopInput(ctxt);
-	if (!IS_BLANK_CH(CUR)) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			   "Space required after the element name\n");
 	}
-        SKIP_BLANKS;
 	if (CMP5(CUR_PTR, 'E', 'M', 'P', 'T', 'Y')) {
 	    SKIP(5);
 	    /*
@@ -6766,12 +6561,6 @@
 	}
 
 	SKIP_BLANKS;
-	/*
-	 * Pop-up of finished entities.
-	 */
-	while ((RAW == 0) && (ctxt->inputNr > 1))
-	    xmlPopInput(ctxt);
-	SKIP_BLANKS;
 
 	if (RAW != '>') {
 	    xmlFatalErr(ctxt, XML_ERR_GT_REQUIRED, NULL);
@@ -6779,9 +6568,10 @@
 		xmlFreeDocElementContent(ctxt->myDoc, content);
 	    }
 	} else {
-	    if (input != ctxt->input) {
+	    if (inputid != ctxt->input->id) {
 		xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
-    "Element declaration doesn't start and stop in the same entity\n");
+                               "Element declaration doesn't start and stop in"
+                               " the same entity\n");
 	    }
 
 	    NEXT;
@@ -6834,9 +6624,9 @@
 	    return;
 	} else {
 	    if (ctxt->input->id != id) {
-		xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
-	    "All markup of the conditional section is not in the same entity\n",
-				     NULL, NULL);
+		xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+	                       "All markup of the conditional section is not"
+                               " in the same entity\n");
 	    }
 	    NEXT;
 	}
@@ -6849,6 +6639,8 @@
 		    "Entering INCLUDE Conditional Section\n");
 	}
 
+        SKIP_BLANKS;
+        GROW;
 	while (((RAW != 0) && ((RAW != ']') || (NXT(1) != ']') ||
 	        (NXT(2) != '>'))) && (ctxt->instate != XML_PARSER_EOF)) {
 	    const xmlChar *check = CUR_PTR;
@@ -6856,18 +6648,11 @@
 
 	    if ((RAW == '<') && (NXT(1) == '!') && (NXT(2) == '[')) {
 		xmlParseConditionalSections(ctxt);
-	    } else if (IS_BLANK_CH(CUR)) {
-		NEXT;
-	    } else if (RAW == '%') {
-		xmlParsePEReference(ctxt);
 	    } else
 		xmlParseMarkupDecl(ctxt);
 
-	    /*
-	     * Pop-up of finished entities.
-	     */
-	    while ((RAW == 0) && (ctxt->inputNr > 1))
-		xmlPopInput(ctxt);
+            SKIP_BLANKS;
+            GROW;
 
 	    if ((CUR_PTR == check) && (cons == ctxt->input->consumed)) {
 		xmlFatalErr(ctxt, XML_ERR_EXT_SUBSET_NOT_FINISHED, NULL);
@@ -6897,9 +6682,9 @@
 	    return;
 	} else {
 	    if (ctxt->input->id != id) {
-		xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
-	    "All markup of the conditional section is not in the same entity\n",
-				     NULL, NULL);
+		xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+	                       "All markup of the conditional section is not"
+                               " in the same entity\n");
 	    }
 	    NEXT;
 	}
@@ -6961,9 +6746,9 @@
 	xmlFatalErr(ctxt, XML_ERR_CONDSEC_NOT_FINISHED, NULL);
     } else {
 	if (ctxt->input->id != id) {
-	    xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
-	"All markup of the conditional section is not in the same entity\n",
-				 NULL, NULL);
+	    xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+	                   "All markup of the conditional section is not in"
+                           " the same entity\n");
 	}
 	if ((ctxt-> instate != XML_PARSER_EOF) &&
 	    ((ctxt->input->cur + 3) <= ctxt->input->end))
@@ -7031,13 +6816,6 @@
         return;
 
     /*
-     * This is only for internal subset. On external entities,
-     * the replacement is done before parsing stage
-     */
-    if ((ctxt->external == 0) && (ctxt->inputNr == 1))
-	xmlParsePEReference(ctxt);
-
-    /*
      * Conditional sections are allowed from entities included
      * by PE References in the internal subset.
      */
@@ -7074,11 +6852,10 @@
 	return;
     }
 
-    if (!IS_BLANK_CH(CUR)) {
+    if (SKIP_BLANKS == 0) {
 	xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 		       "Space needed after '<?xml'\n");
     }
-    SKIP_BLANKS;
 
     /*
      * We may have the VersionInfo here.
@@ -7087,7 +6864,7 @@
     if (version == NULL)
 	version = xmlCharStrdup(XML_DEFAULT_VERSION);
     else {
-	if (!IS_BLANK_CH(CUR)) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 		           "Space needed here\n");
 	}
@@ -7178,27 +6955,19 @@
 
     ctxt->instate = XML_PARSER_DTD;
     ctxt->external = 1;
+    SKIP_BLANKS;
     while (((RAW == '<') && (NXT(1) == '?')) ||
            ((RAW == '<') && (NXT(1) == '!')) ||
-	   (RAW == '%') || IS_BLANK_CH(CUR)) {
+	   (RAW == '%')) {
 	const xmlChar *check = CUR_PTR;
 	unsigned int cons = ctxt->input->consumed;
 
 	GROW;
         if ((RAW == '<') && (NXT(1) == '!') && (NXT(2) == '[')) {
 	    xmlParseConditionalSections(ctxt);
-	} else if (IS_BLANK_CH(CUR)) {
-	    NEXT;
-	} else if (RAW == '%') {
-            xmlParsePEReference(ctxt);
 	} else
 	    xmlParseMarkupDecl(ctxt);
-
-	/*
-	 * Pop-up of finished entities.
-	 */
-	while ((RAW == 0) && (ctxt->inputNr > 1))
-	    xmlPopInput(ctxt);
+        SKIP_BLANKS;
 
 	if ((CUR_PTR == check) && (cons == ctxt->input->consumed)) {
 	    xmlFatalErr(ctxt, XML_ERR_EXT_SUBSET_NOT_FINISHED, NULL);
@@ -7420,6 +7189,8 @@
 		   (ret != XML_WAR_UNDECLARED_ENTITY)) {
 	    xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY,
 		     "Entity '%s' failed to parse\n", ent->name);
+            if (ent->content != NULL)
+                ent->content[0] = 0;
 	    xmlParserEntityCheck(ctxt, 0, ent, 0);
 	} else if (list != NULL) {
 	    xmlFreeNodeList(list);
@@ -7427,6 +7198,9 @@
 	}
 	if (ent->checked == 0)
 	    ent->checked = 2;
+
+        /* Prevent entity from being parsed and expanded twice (Bug 760367). */
+        was_checked = 0;
     } else if (ent->checked != 1) {
 	ctxt->nbentities += ent->checked / 2;
     }
@@ -8063,12 +7837,14 @@
     NEXT;
     name = xmlParseName(ctxt);
     if (name == NULL) {
-	xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED,
-		       "xmlParsePEReference: no name\n");
+	xmlFatalErrMsg(ctxt, XML_ERR_PEREF_NO_NAME, "PEReference: no name\n");
 	return;
     }
+    if (xmlParserDebugEntities)
+	xmlGenericError(xmlGenericErrorContext,
+		"PEReference: %s\n", name);
     if (RAW != ';') {
-	xmlFatalErr(ctxt, XML_ERR_ENTITYREF_SEMICOL_MISSING, NULL);
+	xmlFatalErr(ctxt, XML_ERR_PEREF_SEMICOL_MISSING, NULL);
         return;
     }
 
@@ -8110,10 +7886,15 @@
 	     * ... The declaration of a parameter entity must
 	     * precede any reference to it...
 	     */
-	    xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY,
-			  "PEReference: %%%s; not found\n",
-			  name, NULL);
-	    ctxt->valid = 0;
+            if ((ctxt->validate) && (ctxt->vctxt.error != NULL)) {
+                xmlValidityError(ctxt, XML_WAR_UNDECLARED_ENTITY,
+                                 "PEReference: %%%s; not found\n",
+                                 name, NULL);
+            } else
+                xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY,
+                              "PEReference: %%%s; not found\n",
+                              name, NULL);
+            ctxt->valid = 0;
 	}
 	xmlParserEntityCheck(ctxt, 0, NULL, 0);
     } else {
@@ -8125,41 +7906,54 @@
 	    xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY,
 		  "Internal: %%%s; is not a parameter entity\n",
 			  name, NULL);
-	} else if (ctxt->input->free != deallocblankswrapper) {
-	    input = xmlNewBlanksWrapperInputStream(ctxt, entity);
-	    if (xmlPushInput(ctxt, input) < 0)
-		return;
 	} else {
+            xmlChar start[4];
+            xmlCharEncoding enc;
+
 	    if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
 	        ((ctxt->options & XML_PARSE_NOENT) == 0) &&
-	        ((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
-	        ((ctxt->options & XML_PARSE_DTDLOAD) == 0) &&
-	        ((ctxt->options & XML_PARSE_DTDATTR) == 0) &&
-	        (ctxt->replaceEntities == 0) &&
-	        (ctxt->validate == 0))
-	        return;
-	    /*
-	     * TODO !!!
-	     * handle the extra spaces added before and after
-	     * c.f. http://www.w3.org/TR/REC-xml#as-PE
-	     */
-	    input = xmlNewEntityInputStream(ctxt, entity);
-	    if (xmlPushInput(ctxt, input) < 0)
+		((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
+		((ctxt->options & XML_PARSE_DTDLOAD) == 0) &&
+		((ctxt->options & XML_PARSE_DTDATTR) == 0) &&
+		(ctxt->replaceEntities == 0) &&
+		(ctxt->validate == 0))
 		return;
-	    if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
-		(CMP5(CUR_PTR, '<', '?', 'x', 'm', 'l')) &&
-		(IS_BLANK_CH(NXT(5)))) {
-		xmlParseTextDecl(ctxt);
-		if (ctxt->errNo ==
-		    XML_ERR_UNSUPPORTED_ENCODING) {
-		    /*
-		     * The XML REC instructs us to stop parsing
-		     * right here
-		     */
-		    xmlHaltParser(ctxt);
-		    return;
-		}
-	    }
+
+	    input = xmlNewEntityInputStream(ctxt, entity);
+	    if (xmlPushInput(ctxt, input) < 0) {
+                xmlFreeInputStream(input);
+		return;
+            }
+
+	    if (entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) {
+                /*
+                 * Get the 4 first bytes and decode the charset
+                 * if enc != XML_CHAR_ENCODING_NONE
+                 * plug some encoding conversion routines.
+                 * Note that, since we may have some non-UTF8
+                 * encoding (like UTF16, bug 135229), the 'length'
+                 * is not known, but we can calculate based upon
+                 * the amount of data in the buffer.
+                 */
+                GROW
+                if (ctxt->instate == XML_PARSER_EOF)
+                    return;
+                if ((ctxt->input->end - ctxt->input->cur)>=4) {
+                    start[0] = RAW;
+                    start[1] = NXT(1);
+                    start[2] = NXT(2);
+                    start[3] = NXT(3);
+                    enc = xmlDetectCharEncoding(start, 4);
+                    if (enc != XML_CHAR_ENCODING_NONE) {
+                        xmlSwitchEncoding(ctxt, enc);
+                    }
+                }
+
+                if ((CMP5(CUR_PTR, '<', '?', 'x', 'm', 'l')) &&
+                    (IS_BLANK_CH(NXT(5)))) {
+                    xmlParseTextDecl(ctxt);
+                }
+            }
 	}
     }
     ctxt->hasPErefs = 1;
@@ -8335,6 +8129,7 @@
 	entity = ctxt->sax->getParameterEntity(ctxt->userData, name);
     if (ctxt->instate == XML_PARSER_EOF) {
 	xmlFree(name);
+	*str = ptr;
 	return(NULL);
     }
     if (entity == NULL) {
@@ -8473,6 +8268,7 @@
      * Is there any DTD definition ?
      */
     if (RAW == '[') {
+        int baseInputNr = ctxt->inputNr;
         ctxt->instate = XML_PARSER_DTD;
         NEXT;
 	/*
@@ -8480,7 +8276,8 @@
 	 * PEReferences.
 	 * Subsequence (markupdecl | PEReference | S)*
 	 */
-	while ((RAW != ']') && (ctxt->instate != XML_PARSER_EOF)) {
+	while (((RAW != ']') || (ctxt->inputNr > baseInputNr)) &&
+               (ctxt->instate != XML_PARSER_EOF)) {
 	    const xmlChar *check = CUR_PTR;
 	    unsigned int cons = ctxt->input->consumed;
 
@@ -8488,16 +8285,13 @@
 	    xmlParseMarkupDecl(ctxt);
 	    xmlParsePEReference(ctxt);
 
-	    /*
-	     * Pop-up of finished entities.
-	     */
-	    while ((RAW == 0) && (ctxt->inputNr > 1))
-		xmlPopInput(ctxt);
-
 	    if ((CUR_PTR == check) && (cons == ctxt->input->consumed)) {
 		xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
 	     "xmlParseInternalSubset: error detected in Markup declaration\n");
-		break;
+                if (ctxt->inputNr > baseInputNr)
+                    xmlPopInput(ctxt);
+                else
+		    break;
 	    }
 	}
 	if (RAW == ']') {
@@ -8575,7 +8369,7 @@
 	ctxt->instate = XML_PARSER_CONTENT;
     } else {
 	xmlFatalErrMsgStr(ctxt, XML_ERR_ATTRIBUTE_WITHOUT_VALUE,
-	       "Specification mandate value for attribute %s\n", name);
+	       "Specification mandates value for attribute %s\n", name);
 	return(NULL);
     }
 
@@ -8732,11 +8526,10 @@
 	GROW
 	if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))
 	    break;
-	if (!IS_BLANK_CH(RAW)) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			   "attributes construct error\n");
 	}
-	SKIP_BLANKS;
         if ((cons == ctxt->input->consumed) && (q == CUR_PTR) &&
             (attname == NULL) && (attvalue == NULL)) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR,
@@ -9274,8 +9067,8 @@
     if (ctxt->attsSpecial != NULL) {
         int type;
 
-        type = (int) (long) xmlHashQLookup2(ctxt->attsSpecial,
-                                            pref, elem, *prefix, name);
+        type = (int) (ptrdiff_t) xmlHashQLookup2(ctxt->attsSpecial,
+                                                 pref, elem, *prefix, name);
         if (type != 0)
             normalize = 1;
     }
@@ -9308,7 +9101,7 @@
         ctxt->instate = XML_PARSER_CONTENT;
     } else {
         xmlFatalErrMsgStr(ctxt, XML_ERR_ATTRIBUTE_WITHOUT_VALUE,
-                          "Specification mandate value for attribute %s\n",
+                          "Specification mandates value for attribute %s\n",
                           name);
         return (NULL);
     }
@@ -9391,9 +9184,8 @@
     xmlChar *attvalue;
     const xmlChar **atts = ctxt->atts;
     int maxatts = ctxt->maxatts;
-    int nratts, nbatts, nbdef;
-    int i, j, nbNs, attval, oldline, oldcol, inputNr;
-    const xmlChar *base;
+    int nratts, nbatts, nbdef, inputid;
+    int i, j, nbNs, attval;
     unsigned long cur;
     int nsNr = ctxt->nsNr;
 
@@ -9407,13 +9199,9 @@
      *       The Shrinking is only possible once the full set of attribute
      *       callbacks have been done.
      */
-reparse:
     SHRINK;
-    base = ctxt->input->base;
     cur = ctxt->input->cur - ctxt->input->base;
-    inputNr = ctxt->inputNr;
-    oldline = ctxt->input->line;
-    oldcol = ctxt->input->col;
+    inputid = ctxt->input->id;
     nbatts = 0;
     nratts = 0;
     nbdef = 0;
@@ -9437,8 +9225,6 @@
      */
     SKIP_BLANKS;
     GROW;
-    if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))
-        goto base_changed;
 
     while (((RAW != '>') &&
 	   ((RAW != '/') || (NXT(1) != '>')) &&
@@ -9449,211 +9235,181 @@
 
 	attname = xmlParseAttribute2(ctxt, prefix, localname,
 	                             &aprefix, &attvalue, &len, &alloc);
-	if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr)) {
-	    if ((attvalue != NULL) && (alloc != 0))
-	        xmlFree(attvalue);
-	    attvalue = NULL;
-	    goto base_changed;
-	}
-        if ((attname != NULL) && (attvalue != NULL)) {
-	    if (len < 0) len = xmlStrlen(attvalue);
-            if ((attname == ctxt->str_xmlns) && (aprefix == NULL)) {
-	        const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);
-		xmlURIPtr uri;
+        if ((attname == NULL) || (attvalue == NULL))
+            goto next_attr;
+	if (len < 0) len = xmlStrlen(attvalue);
 
-                if (URL == NULL) {
-		    xmlErrMemory(ctxt, "dictionary allocation failure");
-		    if ((attvalue != NULL) && (alloc != 0))
-			xmlFree(attvalue);
-		    return(NULL);
-		}
-                if (*URL != 0) {
-		    uri = xmlParseURI((const char *) URL);
-		    if (uri == NULL) {
-			xmlNsErr(ctxt, XML_WAR_NS_URI,
-			         "xmlns: '%s' is not a valid URI\n",
-					   URL, NULL, NULL);
-		    } else {
-			if (uri->scheme == NULL) {
-			    xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
-				      "xmlns: URI %s is not absolute\n",
-				      URL, NULL, NULL);
-			}
-			xmlFreeURI(uri);
-		    }
-		    if (URL == ctxt->str_xml_ns) {
-			if (attname != ctxt->str_xml) {
-			    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-			 "xml namespace URI cannot be the default namespace\n",
-				     NULL, NULL, NULL);
-			}
-			goto skip_default_ns;
-		    }
-		    if ((len == 29) &&
-			(xmlStrEqual(URL,
-				 BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
-			xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-			     "reuse of the xmlns namespace name is forbidden\n",
-				 NULL, NULL, NULL);
-			goto skip_default_ns;
-		    }
-		}
-		/*
-		 * check that it's not a defined namespace
-		 */
-		for (j = 1;j <= nbNs;j++)
-		    if (ctxt->nsTab[ctxt->nsNr - 2 * j] == NULL)
-			break;
-		if (j <= nbNs)
-		    xmlErrAttributeDup(ctxt, NULL, attname);
-		else
-		    if (nsPush(ctxt, NULL, URL) > 0) nbNs++;
-skip_default_ns:
-		if ((attvalue != NULL) && (alloc != 0)) {
-		    xmlFree(attvalue);
-		    attvalue = NULL;
-		}
-		if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))
-		    break;
-		if (!IS_BLANK_CH(RAW)) {
-		    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
-				   "attributes construct error\n");
-		    break;
-		}
-		SKIP_BLANKS;
-		if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))
-		    goto base_changed;
-		continue;
-	    }
-            if (aprefix == ctxt->str_xmlns) {
-	        const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);
-		xmlURIPtr uri;
+        if ((attname == ctxt->str_xmlns) && (aprefix == NULL)) {
+            const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);
+            xmlURIPtr uri;
 
-                if (attname == ctxt->str_xml) {
-		    if (URL != ctxt->str_xml_ns) {
-		        xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-			         "xml namespace prefix mapped to wrong URI\n",
-			         NULL, NULL, NULL);
-		    }
-		    /*
-		     * Do not keep a namespace definition node
-		     */
-		    goto skip_ns;
-		}
+            if (URL == NULL) {
+                xmlErrMemory(ctxt, "dictionary allocation failure");
+                if ((attvalue != NULL) && (alloc != 0))
+                    xmlFree(attvalue);
+                return(NULL);
+            }
+            if (*URL != 0) {
+                uri = xmlParseURI((const char *) URL);
+                if (uri == NULL) {
+                    xmlNsErr(ctxt, XML_WAR_NS_URI,
+                             "xmlns: '%s' is not a valid URI\n",
+                                       URL, NULL, NULL);
+                } else {
+                    if (uri->scheme == NULL) {
+                        xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
+                                  "xmlns: URI %s is not absolute\n",
+                                  URL, NULL, NULL);
+                    }
+                    xmlFreeURI(uri);
+                }
                 if (URL == ctxt->str_xml_ns) {
-		    if (attname != ctxt->str_xml) {
-		        xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-			         "xml namespace URI mapped to wrong prefix\n",
-			         NULL, NULL, NULL);
-		    }
-		    goto skip_ns;
-		}
-                if (attname == ctxt->str_xmlns) {
-		    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-			     "redefinition of the xmlns prefix is forbidden\n",
-			     NULL, NULL, NULL);
-		    goto skip_ns;
-		}
-		if ((len == 29) &&
-		    (xmlStrEqual(URL,
-		                 BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
-		    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-			     "reuse of the xmlns namespace name is forbidden\n",
-			     NULL, NULL, NULL);
-		    goto skip_ns;
-		}
-		if ((URL == NULL) || (URL[0] == 0)) {
-		    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-		             "xmlns:%s: Empty XML namespace is not allowed\n",
-			          attname, NULL, NULL);
-		    goto skip_ns;
-		} else {
-		    uri = xmlParseURI((const char *) URL);
-		    if (uri == NULL) {
-			xmlNsErr(ctxt, XML_WAR_NS_URI,
-			     "xmlns:%s: '%s' is not a valid URI\n",
-					   attname, URL, NULL);
-		    } else {
-			if ((ctxt->pedantic) && (uri->scheme == NULL)) {
-			    xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
-				      "xmlns:%s: URI %s is not absolute\n",
-				      attname, URL, NULL);
-			}
-			xmlFreeURI(uri);
-		    }
-		}
+                    if (attname != ctxt->str_xml) {
+                        xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                     "xml namespace URI cannot be the default namespace\n",
+                                 NULL, NULL, NULL);
+                    }
+                    goto next_attr;
+                }
+                if ((len == 29) &&
+                    (xmlStrEqual(URL,
+                             BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
+                    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                         "reuse of the xmlns namespace name is forbidden\n",
+                             NULL, NULL, NULL);
+                    goto next_attr;
+                }
+            }
+            /*
+             * check that it's not a defined namespace
+             */
+            for (j = 1;j <= nbNs;j++)
+                if (ctxt->nsTab[ctxt->nsNr - 2 * j] == NULL)
+                    break;
+            if (j <= nbNs)
+                xmlErrAttributeDup(ctxt, NULL, attname);
+            else
+                if (nsPush(ctxt, NULL, URL) > 0) nbNs++;
 
-		/*
-		 * check that it's not a defined namespace
-		 */
-		for (j = 1;j <= nbNs;j++)
-		    if (ctxt->nsTab[ctxt->nsNr - 2 * j] == attname)
-			break;
-		if (j <= nbNs)
-		    xmlErrAttributeDup(ctxt, aprefix, attname);
-		else
-		    if (nsPush(ctxt, attname, URL) > 0) nbNs++;
-skip_ns:
-		if ((attvalue != NULL) && (alloc != 0)) {
-		    xmlFree(attvalue);
-		    attvalue = NULL;
-		}
-		if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))
-		    break;
-		if (!IS_BLANK_CH(RAW)) {
-		    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
-				   "attributes construct error\n");
-		    break;
-		}
-		SKIP_BLANKS;
-		if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))
-		    goto base_changed;
-		continue;
-	    }
+        } else if (aprefix == ctxt->str_xmlns) {
+            const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);
+            xmlURIPtr uri;
 
-	    /*
-	     * Add the pair to atts
-	     */
-	    if ((atts == NULL) || (nbatts + 5 > maxatts)) {
-	        if (xmlCtxtGrowAttrs(ctxt, nbatts + 5) < 0) {
-		    if (attvalue[len] == 0)
-			xmlFree(attvalue);
-		    goto failed;
-		}
-	        maxatts = ctxt->maxatts;
-		atts = ctxt->atts;
-	    }
-	    ctxt->attallocs[nratts++] = alloc;
-	    atts[nbatts++] = attname;
-	    atts[nbatts++] = aprefix;
-	    atts[nbatts++] = NULL; /* the URI will be fetched later */
-	    atts[nbatts++] = attvalue;
-	    attvalue += len;
-	    atts[nbatts++] = attvalue;
-	    /*
-	     * tag if some deallocation is needed
-	     */
-	    if (alloc != 0) attval = 1;
-	} else {
-	    if ((attvalue != NULL) && (attvalue[len] == 0))
-		xmlFree(attvalue);
-	}
+            if (attname == ctxt->str_xml) {
+                if (URL != ctxt->str_xml_ns) {
+                    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                             "xml namespace prefix mapped to wrong URI\n",
+                             NULL, NULL, NULL);
+                }
+                /*
+                 * Do not keep a namespace definition node
+                 */
+                goto next_attr;
+            }
+            if (URL == ctxt->str_xml_ns) {
+                if (attname != ctxt->str_xml) {
+                    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                             "xml namespace URI mapped to wrong prefix\n",
+                             NULL, NULL, NULL);
+                }
+                goto next_attr;
+            }
+            if (attname == ctxt->str_xmlns) {
+                xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                         "redefinition of the xmlns prefix is forbidden\n",
+                         NULL, NULL, NULL);
+                goto next_attr;
+            }
+            if ((len == 29) &&
+                (xmlStrEqual(URL,
+                             BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
+                xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                         "reuse of the xmlns namespace name is forbidden\n",
+                         NULL, NULL, NULL);
+                goto next_attr;
+            }
+            if ((URL == NULL) || (URL[0] == 0)) {
+                xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                         "xmlns:%s: Empty XML namespace is not allowed\n",
+                              attname, NULL, NULL);
+                goto next_attr;
+            } else {
+                uri = xmlParseURI((const char *) URL);
+                if (uri == NULL) {
+                    xmlNsErr(ctxt, XML_WAR_NS_URI,
+                         "xmlns:%s: '%s' is not a valid URI\n",
+                                       attname, URL, NULL);
+                } else {
+                    if ((ctxt->pedantic) && (uri->scheme == NULL)) {
+                        xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
+                                  "xmlns:%s: URI %s is not absolute\n",
+                                  attname, URL, NULL);
+                    }
+                    xmlFreeURI(uri);
+                }
+            }
 
-failed:
+            /*
+             * check that it's not a defined namespace
+             */
+            for (j = 1;j <= nbNs;j++)
+                if (ctxt->nsTab[ctxt->nsNr - 2 * j] == attname)
+                    break;
+            if (j <= nbNs)
+                xmlErrAttributeDup(ctxt, aprefix, attname);
+            else
+                if (nsPush(ctxt, attname, URL) > 0) nbNs++;
+
+        } else {
+            /*
+             * Add the pair to atts
+             */
+            if ((atts == NULL) || (nbatts + 5 > maxatts)) {
+                if (xmlCtxtGrowAttrs(ctxt, nbatts + 5) < 0) {
+                    goto next_attr;
+                }
+                maxatts = ctxt->maxatts;
+                atts = ctxt->atts;
+            }
+            ctxt->attallocs[nratts++] = alloc;
+            atts[nbatts++] = attname;
+            atts[nbatts++] = aprefix;
+            /*
+             * The namespace URI field is used temporarily to point at the
+             * base of the current input buffer for non-alloced attributes.
+             * When the input buffer is reallocated, all the pointers become
+             * invalid, but they can be reconstructed later.
+             */
+            if (alloc)
+                atts[nbatts++] = NULL;
+            else
+                atts[nbatts++] = ctxt->input->base;
+            atts[nbatts++] = attvalue;
+            attvalue += len;
+            atts[nbatts++] = attvalue;
+            /*
+             * tag if some deallocation is needed
+             */
+            if (alloc != 0) attval = 1;
+            attvalue = NULL; /* moved into atts */
+        }
+
+next_attr:
+        if ((attvalue != NULL) && (alloc != 0)) {
+            xmlFree(attvalue);
+            attvalue = NULL;
+        }
 
 	GROW
         if (ctxt->instate == XML_PARSER_EOF)
             break;
-	if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))
-	    goto base_changed;
 	if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))
 	    break;
-	if (!IS_BLANK_CH(RAW)) {
+	if (SKIP_BLANKS == 0) {
 	    xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
 			   "attributes construct error\n");
 	    break;
 	}
-	SKIP_BLANKS;
         if ((cons == ctxt->input->consumed) && (q == CUR_PTR) &&
             (attname == NULL) && (attvalue == NULL)) {
 	    xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
@@ -9661,8 +9417,27 @@
 	    break;
 	}
         GROW;
-	if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))
-	    goto base_changed;
+    }
+
+    if (ctxt->input->id != inputid) {
+        xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
+                    "Unexpected change of input\n");
+        localname = NULL;
+        goto done;
+    }
+
+    /* Reconstruct attribute value pointers. */
+    for (i = 0, j = 0; j < nratts; i += 5, j++) {
+        if (atts[i+2] != NULL) {
+            /*
+             * Arithmetic on dangling pointers is technically undefined
+             * behavior, but well...
+             */
+            ptrdiff_t offset = ctxt->input->base - atts[i+2];
+            atts[i+2]  = NULL;    /* Reset repurposed namespace URI */
+            atts[i+3] += offset;  /* value */
+            atts[i+4] += offset;  /* valuend */
+        }
     }
 
     /*
@@ -9809,6 +9584,7 @@
 	                  nsname, 0, NULL, nbatts / 5, nbdef, atts);
     }
 
+done:
     /*
      * Free up attribute allocated strings if needed
      */
@@ -9819,34 +9595,6 @@
     }
 
     return(localname);
-
-base_changed:
-    /*
-     * the attribute strings are valid iif the base didn't changed
-     */
-    if (attval != 0) {
-	for (i = 3,j = 0; j < nratts;i += 5,j++)
-	    if ((ctxt->attallocs[j] != 0) && (atts[i] != NULL))
-	        xmlFree((xmlChar *) atts[i]);
-    }
-
-    /*
-     * We can't switch from one entity to another in the middle
-     * of a start tag
-     */
-    if (inputNr != ctxt->inputNr) {
-        xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
-		    "Start tag doesn't start and stop in the same entity\n");
-	return(NULL);
-    }
-
-    ctxt->input->cur = ctxt->input->base + cur;
-    ctxt->input->line = oldline;
-    ctxt->input->col = oldcol;
-    if (ctxt->wellFormed == 1) {
-	goto reparse;
-    }
-    return(NULL);
 }
 
 /**
@@ -10115,11 +9863,6 @@
 	}
 
 	GROW;
-	/*
-	 * Pop-up of finished entities.
-	 */
-	while ((RAW == 0) && (ctxt->inputNr > 1))
-	    xmlPopInput(ctxt);
 	SHRINK;
 
 	if ((cons == ctxt->input->consumed) && (test == CUR_PTR)) {
@@ -11272,7 +11015,7 @@
  * Check that the block of characters is okay as SCdata content [20]
  *
  * Returns the number of bytes to pass if okay, a negative index where an
- *         UTF-8 error occured otherwise
+ *         UTF-8 error occurred otherwise
  */
 static int
 xmlCheckCdataPush(const xmlChar *utf, int len, int complete) {
@@ -11414,13 +11157,6 @@
 	if ((ctxt->errNo != XML_ERR_OK) && (ctxt->disableSAX == 1))
 	    return(0);
 
-
-	/*
-	 * Pop-up of finished entities.
-	 */
-	while ((RAW == 0) && (ctxt->inputNr > 1))
-	    xmlPopInput(ctxt);
-
 	if (ctxt->input == NULL) break;
 	if (ctxt->input->buf == NULL)
 	    avail = ctxt->input->length -
@@ -11771,11 +11507,6 @@
 		    ctxt->checkIndex = 0;
 		    xmlParseCharData(ctxt, 0);
 		}
-		/*
-		 * Pop-up of finished entities.
-		 */
-		while ((RAW == 0) && (ctxt->inputNr > 1))
-		    xmlPopInput(ctxt);
 		if ((cons == ctxt->input->consumed) && (test == CUR_PTR)) {
 		    xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
 		                "detected an error in element content\n");
@@ -11798,9 +11529,10 @@
 		}
 		if (ctxt->sax2) {
 		    xmlParseEndTag2(ctxt,
-		           (void *) ctxt->pushTab[ctxt->nameNr * 3 - 3],
-		           (void *) ctxt->pushTab[ctxt->nameNr * 3 - 2], 0,
-		       (int) (long) ctxt->pushTab[ctxt->nameNr * 3 - 1], 0);
+		            (void *) ctxt->pushTab[ctxt->nameNr * 3 - 3],
+		            (void *) ctxt->pushTab[ctxt->nameNr * 3 - 2], 0,
+		            (int) (ptrdiff_t)
+                                ctxt->pushTab[ctxt->nameNr * 3 - 1], 0);
 		    nameNsPop(ctxt);
 		}
 #ifdef LIBXML_SAX1_ENABLED
@@ -12486,6 +12218,7 @@
 		    /* TODO 2.6.0 */
 		    xmlGenericError(xmlGenericErrorContext,
 				    "xmlParseChunk: encoder error\n");
+                    xmlHaltParser(ctxt);
 		    return(XML_ERR_INVALID_ENCODING);
 		}
 		xmlBufSetInputBaseCur(in->buffer, ctxt->input, base, current);
@@ -12718,6 +12451,8 @@
         return;
     ctxt->instate = XML_PARSER_EOF;
     ctxt->disableSAX = 1;
+    while (ctxt->inputNr > 1)
+        xmlFreeInputStream(inputPop(ctxt));
     if (ctxt->input != NULL) {
         /*
 	 * in case there was a specific allocation deallocate before
@@ -12729,6 +12464,7 @@
 	}
 	ctxt->input->cur = BAD_CAST"";
 	ctxt->input->base = ctxt->input->cur;
+        ctxt->input->end = ctxt->input->cur;
     }
 }
 
@@ -13497,7 +13233,7 @@
     /*
      * And record the last error if any
      */
-    if (ctxt->lastError.code != XML_ERR_OK)
+    if ((oldctxt != NULL) && (ctxt->lastError.code != XML_ERR_OK))
         xmlCopyError(&ctxt->lastError, &oldctxt->lastError);
 
     if (sax != NULL)
@@ -13631,6 +13367,7 @@
 	ctxt->userData = ctxt;
     if (ctxt->dict != NULL) xmlDictFree(ctxt->dict);
     ctxt->dict = oldctxt->dict;
+    ctxt->input_id = oldctxt->input_id + 1;
     ctxt->str_xml = xmlDictLookup(ctxt->dict, BAD_CAST "xml", 3);
     ctxt->str_xmlns = xmlDictLookup(ctxt->dict, BAD_CAST "xmlns", 5);
     ctxt->str_xml_ns = xmlDictLookup(ctxt->dict, XML_XML_NAMESPACE, 36);
@@ -13884,6 +13621,7 @@
     xmlDetectSAX2(ctxt);
     ctxt->myDoc = doc;
     /* parsing in context, i.e. as within existing content */
+    ctxt->input_id = 2;
     ctxt->instate = XML_PARSER_CONTENT;
 
     fake = xmlNewComment(NULL);
@@ -14096,6 +13834,7 @@
 	newDoc->oldNs = doc->oldNs;
     }
     ctxt->instate = XML_PARSER_CONTENT;
+    ctxt->input_id = 2;
     ctxt->depth = depth;
 
     /*
@@ -14256,6 +13995,11 @@
     if (pctx != NULL) {
         ctxt->options = pctx->options;
         ctxt->_private = pctx->_private;
+	/*
+	 * this is a subparser of pctx, so the input_id should be
+	 * incremented to distinguish from main entity
+	 */
+	ctxt->input_id = pctx->input_id + 1;
     }
 
     uri = xmlBuildURI(URL, base);
@@ -15137,7 +14881,7 @@
     xmlInitNodeInfoSeq(&ctxt->node_seq);
 
     if (ctxt->attsDefault != NULL) {
-        xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
+        xmlHashFree(ctxt->attsDefault, xmlHashDefaultDeallocator);
         ctxt->attsDefault = NULL;
     }
     if (ctxt->attsSpecial != NULL) {
diff --git a/parserInternals.c b/parserInternals.c
index bfc778a..8c0cd57 100644
--- a/parserInternals.c
+++ b/parserInternals.c
@@ -10,7 +10,7 @@
 #define IN_LIBXML
 #include "libxml.h"
 
-#if defined(WIN32) && !defined (__CYGWIN__)
+#if defined(_WIN32) && !defined (__CYGWIN__)
 #define XML_DIR_SEP '\\'
 #else
 #define XML_DIR_SEP '/'
@@ -32,7 +32,7 @@
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 #include <zlib.h>
 #endif
 
@@ -435,8 +435,6 @@
 
     if ((*ctxt->input->cur == 0) &&
         (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) {
-        if ((ctxt->instate != XML_PARSER_COMMENT))
-            xmlPopInput(ctxt);
         return;
     }
 
@@ -470,8 +468,8 @@
 
         c = *cur;
         if (c & 0x80) {
-        if (c == 0xC0)
-	    goto encoding_error;
+            if (c == 0xC0)
+	        goto encoding_error;
             if (cur[1] == 0) {
                 xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
                 cur = ctxt->input->cur;
@@ -523,8 +521,6 @@
             ctxt->input->cur++;
 
         ctxt->nbChars++;
-        if (*ctxt->input->cur == 0)
-            xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
     } else {
         /*
          * Assume it's a fixed length encoding (1) with
@@ -538,14 +534,9 @@
             ctxt->input->col++;
         ctxt->input->cur++;
         ctxt->nbChars++;
-        if (*ctxt->input->cur == 0)
-            xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
     }
-    if ((*ctxt->input->cur == '%') && (!ctxt->html))
-        xmlParserHandlePEReference(ctxt);
-    if ((*ctxt->input->cur == 0) &&
-        (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0))
-        xmlPopInput(ctxt);
+    if (*ctxt->input->cur == 0)
+        xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
     return;
 encoding_error:
     /*
@@ -1101,8 +1092,15 @@
 	        break;
 	}
     }
-    if (handler == NULL)
+    /*
+     * TODO: We could recover from errors in external entites if we
+     * didn't stop the parser. But most callers of this function don't
+     * check the return value.
+     */
+    if (handler == NULL) {
+        xmlStopParser(ctxt);
 	return(-1);
+    }
     ctxt->charset = XML_CHAR_ENCODING_UTF8;
     ret = xmlSwitchToEncodingInt(ctxt, handler, len);
     if ((ret < 0) || (ctxt->errNo == XML_I18N_CONV_FAILED)) {
@@ -1216,7 +1214,7 @@
                 /*
                  * convert as much as possible of the buffer
                  */
-                nbchars = xmlCharEncInput(input->buf, 1);
+                nbchars = xmlCharEncInput(input->buf, 0);
             } else {
                 /*
                  * convert just enough to get
@@ -1226,6 +1224,7 @@
                  */
                 nbchars = xmlCharEncFirstLineInput(input->buf, len);
             }
+            xmlBufResetInput(input->buf->buffer, input);
             if (nbchars < 0) {
                 xmlErrInternal(ctxt,
                                "switching encoding: encoder error\n",
@@ -1233,7 +1232,6 @@
                 return (-1);
             }
 	    input->buf->rawconsumed += use - xmlBufUse(input->buf->raw);
-            xmlBufResetInput(input->buf->buffer, input);
         }
         return (0);
     } else if (input->length == 0) {
@@ -1797,7 +1795,7 @@
     if (ctxt->pushTab != NULL) xmlFree(ctxt->pushTab);
     if (ctxt->attallocs != NULL) xmlFree(ctxt->attallocs);
     if (ctxt->attsDefault != NULL)
-        xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
+        xmlHashFree(ctxt->attsDefault, xmlHashDefaultDeallocator);
     if (ctxt->attsSpecial != NULL)
         xmlHashFree(ctxt->attsSpecial, NULL);
     if (ctxt->freeElems != NULL) {
diff --git a/pattern.c b/pattern.c
index 33dee3a..0eb8d81 100644
--- a/pattern.c
+++ b/pattern.c
@@ -969,6 +969,7 @@
 		ERROR5(NULL, NULL, NULL,
 		    "xmlCompileAttributeTest : no namespace bound to prefix %s\n",
 		    prefix);
+	        XML_PAT_FREE_STRING(ctxt, prefix);
 		ctxt->error = 1;
 		goto error;
 	    }
diff --git a/python/drv_libxml2.py b/python/drv_libxml2.py
index c2ec3e2..71b1c67 100644
--- a/python/drv_libxml2.py
+++ b/python/drv_libxml2.py
@@ -44,8 +44,18 @@
     __author__  = codecs.unicode_escape_decode(__author__)[0]
 
     StringTypes = (str, unicode)
+    # libxml2 returns strings as UTF8
+    _decoder = codecs.lookup("utf8")[1]
+    def _d(s):
+        if s is None:
+            return s
+        else:
+            return _decoder(s)[0]
 else:
     StringTypes = str
+    # s is Unicode `str` already
+    def _d(s):
+        return s
 
 from xml.sax._exceptions import *
 from xml.sax import xmlreader, saxutils
@@ -61,14 +71,6 @@
      property_dom_node, \
      property_xml_string
 
-# libxml2 returns strings as UTF8
-_decoder = codecs.lookup("utf8")[1]
-def _d(s):
-    if s is None:
-        return s
-    else:
-        return _decoder(s)[0]
-
 try:
     import libxml2
 except ImportError:
diff --git a/python/libxml.c b/python/libxml.c
index 30b71f3..5b1ff6e 100644
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -906,7 +906,7 @@
         type = 2;
     if (type != 0) {
         /*
-         * the xmllib interface always generate a dictionnary,
+         * the xmllib interface always generates a dictionary,
          * possibly empty
          */
         if ((attrs == NULL) && (type == 1)) {
diff --git a/python/setup.py b/python/setup.py
deleted file mode 100755
index e1ff365..0000000
--- a/python/setup.py
+++ /dev/null
@@ -1,242 +0,0 @@
-#!/usr/bin/python -u
-#
-# Setup script for libxml2 and libxslt if found
-#
-import sys, os
-from distutils.core import setup, Extension
-
-# Below ROOT, we expect to find include, include/libxml2, lib and bin.
-# On *nix, it is not needed (but should not harm),
-# on Windows, it is set by configure.js.
-ROOT = r'/usr/local'
-
-# Thread-enabled libxml2
-with_threads = 1
-
-# If this flag is set (windows only),
-# a private copy of the dlls are included in the package.
-# If this flag is not set, the libxml2 and libxslt
-# dlls must be found somewhere in the PATH at runtime.
-WITHDLLS = 1 and sys.platform.startswith('win')
-
-def missing(file):
-    if os.access(file, os.R_OK) == 0:
-        return 1
-    return 0
-
-try:
-    HOME = os.environ['HOME']
-except:
-    HOME="C:"
-
-if WITHDLLS:
-    # libxml dlls (expected in ROOT/bin)
-    dlls = [ 'iconv.dll','libxml2.dll','libxslt.dll','libexslt.dll' ]
-    dlls = [os.path.join(ROOT,'bin',dll) for dll in dlls]
-
-    # create __init__.py for the libxmlmods package
-    if not os.path.exists("libxmlmods"):
-        os.mkdir("libxmlmods")
-        open("libxmlmods/__init__.py","w").close()
-
-    def altImport(s):
-        s = s.replace("import libxml2mod","from libxmlmods import libxml2mod")
-        s = s.replace("import libxsltmod","from libxmlmods import libxsltmod")
-        return s
-
-if sys.platform.startswith('win'):
-    libraryPrefix = 'lib'
-    platformLibs = []
-else:
-    libraryPrefix = ''
-    platformLibs = ["m","z"]
-
-# those are examined to find
-# - libxml2/libxml/tree.h
-# - iconv.h
-# - libxslt/xsltconfig.h
-includes_dir = [
-"/usr/include",
-"/usr/local/include",
-"/opt/include",
-os.path.join(ROOT,'include'),
-HOME
-];
-
-xml_includes=""
-for dir in includes_dir:
-    if not missing(dir + "/libxml2/libxml/tree.h"):
-        xml_includes=dir + "/libxml2"
-        break;
-
-if xml_includes == "":
-    print("failed to find headers for libxml2: update includes_dir")
-    sys.exit(1)
-
-iconv_includes=""
-for dir in includes_dir:
-    if not missing(dir + "/iconv.h"):
-        iconv_includes=dir
-        break;
-
-if iconv_includes == "":
-    print("failed to find headers for libiconv: update includes_dir")
-    sys.exit(1)
-
-# those are added in the linker search path for libraries
-libdirs = [
-os.path.join(ROOT,'lib'),
-]
-
-xml_files = ["libxml2-api.xml", "libxml2-python-api.xml",
-             "libxml.c", "libxml.py", "libxml_wrap.h", "types.c",
-             "xmlgenerator.py", "README", "TODO", "drv_libxml2.py"]
-
-xslt_files = ["libxslt-api.xml", "libxslt-python-api.xml",
-             "libxslt.c", "libxsl.py", "libxslt_wrap.h",
-             "xsltgenerator.py"]
-
-if missing("libxml2-py.c") or missing("libxml2.py"):
-    try:
-        try:
-            import xmlgenerator
-        except:
-            import generator
-    except:
-        print("failed to find and generate stubs for libxml2, aborting ...")
-        print(sys.exc_info()[0], sys.exc_info()[1])
-        sys.exit(1)
-
-    head = open("libxml.py", "r")
-    generated = open("libxml2class.py", "r")
-    result = open("libxml2.py", "w")
-    for line in head.readlines():
-        if WITHDLLS:
-            result.write(altImport(line))
-        else:
-            result.write(line)
-    for line in generated.readlines():
-        result.write(line)
-    head.close()
-    generated.close()
-    result.close()
-
-with_xslt=0
-if missing("libxslt-py.c") or missing("libxslt.py"):
-    if missing("xsltgenerator.py") or missing("libxslt-api.xml"):
-        print("libxslt stub generator not found, libxslt not built")
-    else:
-        try:
-            import xsltgenerator
-        except:
-            print("failed to generate stubs for libxslt, aborting ...")
-            print(sys.exc_info()[0], sys.exc_info()[1])
-        else:
-            head = open("libxsl.py", "r")
-            generated = open("libxsltclass.py", "r")
-            result = open("libxslt.py", "w")
-            for line in head.readlines():
-                if WITHDLLS:
-                    result.write(altImport(line))
-                else:
-                    result.write(line)
-            for line in generated.readlines():
-                result.write(line)
-            head.close()
-            generated.close()
-            result.close()
-            with_xslt=1
-else:
-    with_xslt=1
-
-if with_xslt == 1:
-    xslt_includes=""
-    for dir in includes_dir:
-        if not missing(dir + "/libxslt/xsltconfig.h"):
-            xslt_includes=dir + "/libxslt"
-            break;
-
-    if xslt_includes == "":
-        print("failed to find headers for libxslt: update includes_dir")
-        with_xslt = 0
-
-
-descr = "libxml2 package"
-modules = [ 'libxml2', 'drv_libxml2' ]
-if WITHDLLS:
-    modules.append('libxmlmods.__init__')
-c_files = ['libxml2-py.c', 'libxml.c', 'types.c' ]
-includes= [xml_includes, iconv_includes]
-libs    = [libraryPrefix + "xml2"] + platformLibs
-macros  = []
-if with_threads:
-    macros.append(('_REENTRANT','1'))
-if with_xslt == 1:
-    descr = "libxml2 and libxslt package"
-    if not sys.platform.startswith('win'):
-        #
-        # We are gonna build 2 identical shared libs with merge initializing
-        # both libxml2mod and libxsltmod
-        #
-        c_files = c_files + ['libxslt-py.c', 'libxslt.c']
-        xslt_c_files = c_files
-        macros.append(('MERGED_MODULES', '1'))
-    else:
-        #
-        # On windows the MERGED_MODULE option is not needed
-        # (and does not work)
-        #
-        xslt_c_files = ['libxslt-py.c', 'libxslt.c', 'types.c']
-    libs.insert(0, libraryPrefix + 'exslt')
-    libs.insert(0, libraryPrefix + 'xslt')
-    includes.append(xslt_includes)
-    modules.append('libxslt')
-
-
-extens=[Extension('libxml2mod', c_files, include_dirs=includes,
-                  library_dirs=libdirs,
-                  libraries=libs, define_macros=macros)]
-if with_xslt == 1:
-    extens.append(Extension('libxsltmod', xslt_c_files, include_dirs=includes,
-                            library_dirs=libdirs,
-                            libraries=libs, define_macros=macros))
-
-if missing("MANIFEST"):
-
-    manifest = open("MANIFEST", "w")
-    manifest.write("setup.py\n")
-    for file in xml_files:
-        manifest.write(file + "\n")
-    if with_xslt == 1:
-        for file in xslt_files:
-            manifest.write(file + "\n")
-    manifest.close()
-
-if WITHDLLS:
-    ext_package = "libxmlmods"
-    if sys.version >= "2.2":
-        base = "lib/site-packages/"
-    else:
-        base = ""
-    data_files = [(base+"libxmlmods",dlls)]
-else:
-    ext_package = None
-    data_files = []
-
-setup (name = "libxml2-python",
-       # On *nix, the version number is created from setup.py.in
-       # On windows, it is set by configure.js
-       version = "2.9.2",
-       description = descr,
-       author = "Daniel Veillard",
-       author_email = "veillard@redhat.com",
-       url = "http://xmlsoft.org/python.html",
-       licence="MIT Licence",
-       py_modules=modules,
-       ext_modules=extens,
-       ext_package=ext_package,
-       data_files=data_files,
-       )
-
-sys.exit(0)
-
diff --git a/python/tests/xpathleak.py b/python/tests/xpathleak.py
index 33ab61c..6940b79 100755
--- a/python/tests/xpathleak.py
+++ b/python/tests/xpathleak.py
@@ -4,25 +4,15 @@
 libxml2.debugMemory(True)
 
 expect="""--> Invalid expression
---> xmlXPathEval: evaluation failed
 --> Invalid expression
---> xmlXPathEval: evaluation failed
 --> Invalid expression
---> xmlXPathEval: evaluation failed
 --> Invalid expression
---> xmlXPathEval: evaluation failed
 --> Invalid expression
---> xmlXPathEval: evaluation failed
 --> Invalid expression
---> xmlXPathEval: evaluation failed
 --> Invalid expression
---> xmlXPathEval: evaluation failed
 --> Invalid expression
---> xmlXPathEval: evaluation failed
 --> Invalid expression
---> xmlXPathEval: evaluation failed
 --> Invalid expression
---> xmlXPathEval: evaluation failed
 """
 err=""
 def callback(ctx, str):
diff --git a/python/types.c b/python/types.c
index f237677..124af56 100644
--- a/python/types.c
+++ b/python/types.c
@@ -31,8 +31,6 @@
     const char *mode;
 
     fd = PyObject_AsFileDescriptor(f);
-    if (!_PyVerify_fd(fd))
-        return(NULL);
     /*
      * Get the flags on the fd to understand how it was opened
      */
diff --git a/relaxng.c b/relaxng.c
index 3d3e69c..88d351d 100644
--- a/relaxng.c
+++ b/relaxng.c
@@ -20,6 +20,7 @@
 
 #include <string.h>
 #include <stdio.h>
+#include <stddef.h>
 #include <libxml/xmlmemory.h>
 #include <libxml/parser.h>
 #include <libxml/parserInternals.h>
@@ -2728,9 +2729,10 @@
  * Free the structure associated to the type library
  */
 static void
-xmlRelaxNGFreeTypeLibrary(xmlRelaxNGTypeLibraryPtr lib,
+xmlRelaxNGFreeTypeLibrary(void *payload,
                           const xmlChar * namespace ATTRIBUTE_UNUSED)
 {
+    xmlRelaxNGTypeLibraryPtr lib = (xmlRelaxNGTypeLibraryPtr) payload;
     if (lib == NULL)
         return;
     if (lib->namespace != NULL)
@@ -2841,8 +2843,7 @@
     xmlSchemaCleanupTypes();
     if (xmlRelaxNGTypeInitialized == 0)
         return;
-    xmlHashFree(xmlRelaxNGRegisteredTypes, (xmlHashDeallocator)
-                xmlRelaxNGFreeTypeLibrary);
+    xmlHashFree(xmlRelaxNGRegisteredTypes, xmlRelaxNGFreeTypeLibrary);
     xmlRelaxNGTypeInitialized = 0;
 }
 
@@ -4310,10 +4311,11 @@
  *     algorithm
  */
 static void
-xmlRelaxNGComputeInterleaves(xmlRelaxNGDefinePtr def,
-                             xmlRelaxNGParserCtxtPtr ctxt,
-                             xmlChar * name ATTRIBUTE_UNUSED)
+xmlRelaxNGComputeInterleaves(void *payload, void *data,
+                             const xmlChar * name ATTRIBUTE_UNUSED)
 {
+    xmlRelaxNGDefinePtr def = (xmlRelaxNGDefinePtr) payload;
+    xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data;
     xmlRelaxNGDefinePtr cur, *tmp;
 
     xmlRelaxNGPartitionPtr partitions = NULL;
@@ -4404,7 +4406,7 @@
                 if ((*tmp)->type == XML_RELAXNG_TEXT) {
                     res = xmlHashAddEntry2(partitions->triage,
                                            BAD_CAST "#text", NULL,
-                                           (void *) (long) (i + 1));
+                                           (void *) (ptrdiff_t) (i + 1));
                     if (res != 0)
                         is_determinist = -1;
                 } else if (((*tmp)->type == XML_RELAXNG_ELEMENT) &&
@@ -4412,22 +4414,22 @@
                     if (((*tmp)->ns == NULL) || ((*tmp)->ns[0] == 0))
                         res = xmlHashAddEntry2(partitions->triage,
                                                (*tmp)->name, NULL,
-                                               (void *) (long) (i + 1));
+                                               (void *) (ptrdiff_t) (i + 1));
                     else
                         res = xmlHashAddEntry2(partitions->triage,
                                                (*tmp)->name, (*tmp)->ns,
-                                               (void *) (long) (i + 1));
+                                               (void *) (ptrdiff_t) (i + 1));
                     if (res != 0)
                         is_determinist = -1;
                 } else if ((*tmp)->type == XML_RELAXNG_ELEMENT) {
                     if (((*tmp)->ns == NULL) || ((*tmp)->ns[0] == 0))
                         res = xmlHashAddEntry2(partitions->triage,
                                                BAD_CAST "#any", NULL,
-                                               (void *) (long) (i + 1));
+                                               (void *) (ptrdiff_t) (i + 1));
                     else
                         res = xmlHashAddEntry2(partitions->triage,
                                                BAD_CAST "#any", (*tmp)->ns,
-                                               (void *) (long) (i + 1));
+                                               (void *) (ptrdiff_t) (i + 1));
                     if ((*tmp)->nameClass != NULL)
                         is_determinist = 2;
                     if (res != 0)
@@ -4662,7 +4664,7 @@
  * Import import one references into the current grammar
  */
 static void
-xmlRelaxNGParseImportRef(void *payload, void *data, xmlChar *name) {
+xmlRelaxNGParseImportRef(void *payload, void *data, const xmlChar *name) {
     xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data;
     xmlRelaxNGDefinePtr def = (xmlRelaxNGDefinePtr) payload;
     int tmp;
@@ -5669,10 +5671,10 @@
  * element of a given grammar using the same name.
  */
 static void
-xmlRelaxNGCheckReference(xmlRelaxNGDefinePtr ref,
-                         xmlRelaxNGParserCtxtPtr ctxt,
-                         const xmlChar * name)
+xmlRelaxNGCheckReference(void *payload, void *data, const xmlChar * name)
 {
+    xmlRelaxNGDefinePtr ref = (xmlRelaxNGDefinePtr) payload;
+    xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data;
     xmlRelaxNGGrammarPtr grammar;
     xmlRelaxNGDefinePtr def, cur;
 
@@ -5725,9 +5727,10 @@
  * element of a given grammar using the same name.
  */
 static void
-xmlRelaxNGCheckCombine(xmlRelaxNGDefinePtr define,
-                       xmlRelaxNGParserCtxtPtr ctxt, const xmlChar * name)
+xmlRelaxNGCheckCombine(void *payload, void *data, const xmlChar * name)
 {
+    xmlRelaxNGDefinePtr define = (xmlRelaxNGDefinePtr) payload;
+    xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data;
     xmlChar *combine;
     int choiceOrInterleave = -1;
     int missing = 0;
@@ -6610,16 +6613,14 @@
      */
     xmlRelaxNGCombineStart(ctxt, ret);
     if (ret->defs != NULL) {
-        xmlHashScan(ret->defs, (xmlHashScanner) xmlRelaxNGCheckCombine,
-                    ctxt);
+        xmlHashScan(ret->defs, xmlRelaxNGCheckCombine, ctxt);
     }
 
     /*
      * link together defines and refs in this grammar
      */
     if (ret->refs != NULL) {
-        xmlHashScan(ret->refs, (xmlHashScanner) xmlRelaxNGCheckReference,
-                    ctxt);
+        xmlHashScan(ret->refs, xmlRelaxNGCheckReference, ctxt);
     }
 
 
@@ -7550,8 +7551,7 @@
      * try to preprocess interleaves
      */
     if (ctxt->interleaves != NULL) {
-        xmlHashScan(ctxt->interleaves,
-                    (xmlHashScanner) xmlRelaxNGComputeInterleaves, ctxt);
+        xmlHashScan(ctxt->interleaves, xmlRelaxNGComputeInterleaves, ctxt);
     }
 
     /*
@@ -8890,7 +8890,7 @@
             if (ret != 0) {
                 break;
             }
-            /* no break on purpose */
+            /* Falls through. */
         case XML_RELAXNG_ZEROORMORE:{
                 xmlChar *cur, *temp;
 
@@ -9387,7 +9387,7 @@
             if (tmp == NULL) {
                 i = nbgroups;
             } else {
-                i = ((long) tmp) - 1;
+                i = ((ptrdiff_t) tmp) - 1;
                 if (partitions->flags & IS_NEEDCHECK) {
                     group = partitions->groups[i];
                     if (!xmlRelaxNGNodeMatchesList(cur, group->defs))
@@ -10167,7 +10167,7 @@
             }
             if (ctxt->errNr > errNr)
                 xmlRelaxNGPopErrors(ctxt, errNr);
-            /* no break on purpose */
+            /* Falls through. */
         case XML_RELAXNG_ZEROORMORE:{
                 int progress;
                 xmlRelaxNGStatesPtr states = NULL, res = NULL;
diff --git a/result/HTML/53867.html.sax b/result/HTML/53867.html.sax
index 81a9f15..1bb0d14 100644
--- a/result/HTML/53867.html.sax
+++ b/result/HTML/53867.html.sax
@@ -1,10 +1,10 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(style)
 SAX.cdata(
@@ -15,12 +15,12 @@
 SAX.cdata(................
 ............., 977)
 SAX.endElement(style)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/758518-entity.html b/result/HTML/758518-entity.html
new file mode 100644
index 0000000..e72b0cb
--- /dev/null
+++ b/result/HTML/758518-entity.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html><body><p>&amp;&Ugrave;</p></body></html>
diff --git a/result/HTML/758518-entity.html.err b/result/HTML/758518-entity.html.err
new file mode 100644
index 0000000..0186677
--- /dev/null
+++ b/result/HTML/758518-entity.html.err
@@ -0,0 +1,3 @@
+./test/HTML/758518-entity.html:1: HTML parser error : htmlParseEntityRef: expecting ';'

+  ^
diff --git a/result/HTML/758518-entity.html.sax b/result/HTML/758518-entity.html.sax
new file mode 100644
index 0000000..3d017ab
--- /dev/null
+++ b/result/HTML/758518-entity.html.sax
@@ -0,0 +1,12 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: htmlParseEntityRef: expecting ';'
+SAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(p)
+SAX.characters(&amp;, 1)
+SAX.characters(&Ugrave;, 2)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/758518-tag.html b/result/HTML/758518-tag.html
new file mode 100644
index 0000000..f99f421
--- /dev/null
+++ b/result/HTML/758518-tag.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html><body><p>&#147;</p></body></html>
diff --git a/result/HTML/758518-tag.html.err b/result/HTML/758518-tag.html.err
new file mode 100644
index 0000000..c912c91
--- /dev/null
+++ b/result/HTML/758518-tag.html.err
@@ -0,0 +1,3 @@
+./test/HTML/758518-tag.html:1: HTML parser error : PI is not started correctly

+^
diff --git a/result/HTML/758518-tag.html.sax b/result/HTML/758518-tag.html.sax
new file mode 100644
index 0000000..fd4aa94
--- /dev/null
+++ b/result/HTML/758518-tag.html.sax
@@ -0,0 +1,10 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: PI is not started correctlySAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(p)
+SAX.characters(&#147;, 2)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/758605.html b/result/HTML/758605.html
new file mode 100644
index 0000000..60b01d3
--- /dev/null
+++ b/result/HTML/758605.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html><body><p>&amp;&ecirc;
+</p></body></html>
diff --git a/result/HTML/758605.html.err b/result/HTML/758605.html.err
new file mode 100644
index 0000000..2086f96
--- /dev/null
+++ b/result/HTML/758605.html.err
@@ -0,0 +1,3 @@
+./test/HTML/758605.html:1: HTML parser error : htmlParseEntityRef: expecting ';'

+  ^
diff --git a/result/HTML/758605.html.sax b/result/HTML/758605.html.sax
new file mode 100644
index 0000000..1f18426
--- /dev/null
+++ b/result/HTML/758605.html.sax
@@ -0,0 +1,14 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: htmlParseEntityRef: expecting ';'
+SAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(p)
+SAX.characters(&amp;, 1)
+SAX.characters(&ecirc;, 2)
+SAX.characters(
+, 1)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/758606.html b/result/HTML/758606.html
new file mode 100644
index 0000000..4f21f62
--- /dev/null
+++ b/result/HTML/758606.html
@@ -0,0 +1,2 @@
+<!DOCTYPE >
+
diff --git a/result/HTML/758606.html.err b/result/HTML/758606.html.err
new file mode 100644
index 0000000..060433a
--- /dev/null
+++ b/result/HTML/758606.html.err
@@ -0,0 +1,16 @@
+./test/HTML/758606.html:1: HTML parser error : Comment not terminated 
+<!--
+<!--<!doctype
+    ^
+./test/HTML/758606.html:1: HTML parser error : Invalid char in CDATA 0xC
+<!--<!doctype
+    ^
+./test/HTML/758606.html:1: HTML parser error : Misplaced DOCTYPE declaration
+<!--<!doctype
+     ^
+./test/HTML/758606.html:2: HTML parser error : htmlParseDocTypeDecl : no DOCTYPE name !
+
+^
+./test/HTML/758606.html:2: HTML parser error : DOCTYPE improperly terminated
+
+^
diff --git a/result/HTML/758606.html.sax b/result/HTML/758606.html.sax
new file mode 100644
index 0000000..d44a5cf
--- /dev/null
+++ b/result/HTML/758606.html.sax
@@ -0,0 +1,10 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: Comment not terminated 
+<!--
+SAX.error: Invalid char in CDATA 0xC
+SAX.error: Misplaced DOCTYPE declaration
+SAX.error: htmlParseDocTypeDecl : no DOCTYPE name !
+SAX.error: DOCTYPE improperly terminated
+SAX.internalSubset((null), , )
+SAX.endDocument()
diff --git a/result/HTML/758606_2.html b/result/HTML/758606_2.html
new file mode 100644
index 0000000..273816a
--- /dev/null
+++ b/result/HTML/758606_2.html
@@ -0,0 +1,2 @@
+<!DOCTYPE >
+<html><body><p>&#145;</p></body></html>
diff --git a/result/HTML/758606_2.html.err b/result/HTML/758606_2.html.err
new file mode 100644
index 0000000..4be039f
--- /dev/null
+++ b/result/HTML/758606_2.html.err
@@ -0,0 +1,16 @@
+./test/HTML/758606_2.html:1: HTML parser error : Comment not terminated 
+<!--
+<!--‘<!dOctYPE
+    ^
+./test/HTML/758606_2.html:1: HTML parser error : Invalid char in CDATA 0xC
+<!--‘<!dOctYPE
+    ^
+./test/HTML/758606_2.html:1: HTML parser error : Misplaced DOCTYPE declaration
+‘<!dOctYPE
+  ^
+./test/HTML/758606_2.html:2: HTML parser error : htmlParseDocTypeDecl : no DOCTYPE name !
+
+^
+./test/HTML/758606_2.html:2: HTML parser error : DOCTYPE improperly terminated
+
+^
diff --git a/result/HTML/758606_2.html.sax b/result/HTML/758606_2.html.sax
new file mode 100644
index 0000000..80ff3d7
--- /dev/null
+++ b/result/HTML/758606_2.html.sax
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: Comment not terminated 
+<!--
+SAX.error: Invalid char in CDATA 0xC
+SAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(p)
+SAX.characters(&#145;, 2)
+SAX.error: Misplaced DOCTYPE declaration
+SAX.error: htmlParseDocTypeDecl : no DOCTYPE name !
+SAX.error: DOCTYPE improperly terminated
+SAX.internalSubset((null), , )
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/Down.html.sax b/result/HTML/Down.html.sax
index c23c332..ae3c056 100644
--- a/result/HTML/Down.html.sax
+++ b/result/HTML/Down.html.sax
@@ -1,18 +1,18 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
   , 3)
 SAX.startElement(title)
 SAX.characters(This service is temporary down, 30)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.startElement(body, bgcolor='#FFFFFF')
@@ -29,9 +29,9 @@
 SAX.characters(
 , 1)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/attrents.html.sax b/result/HTML/attrents.html.sax
index c1cfb42..30df683 100644
--- a/result/HTML/attrents.html.sax
+++ b/result/HTML/attrents.html.sax
@@ -1,7 +1,7 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(

+SAX.characters(

 , 2)
 SAX.startElement(body, bgcolor='#FFFFFF')
 SAX.characters(

@@ -13,9 +13,9 @@
 SAX.characters(

 , 2)
 SAX.endElement(body)
-SAX.ignorableWhitespace(

+SAX.characters(

 , 2)
 SAX.endElement(html)
-SAX.ignorableWhitespace(

+SAX.characters(

 , 2)
 SAX.endDocument()
diff --git a/result/HTML/autoclose.html.sax b/result/HTML/autoclose.html.sax
index 5a45627..c541c5e 100644
--- a/result/HTML/autoclose.html.sax
+++ b/result/HTML/autoclose.html.sax
@@ -4,7 +4,7 @@
 SAX.startElement(body)
 SAX.startElement(hr)
 SAX.endElement(hr)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(body)
 SAX.endElement(html)
diff --git a/result/HTML/cf_128.html.sax b/result/HTML/cf_128.html.sax
index 8f66a42..3913ebd 100644
--- a/result/HTML/cf_128.html.sax
+++ b/result/HTML/cf_128.html.sax
@@ -2,18 +2,18 @@
 SAX.startDocument()
 SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, http://www.w3.org/TR/REC-html40/strict.dtd)
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(title)
 SAX.characters(gnome-xml push mode bug, 23)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
@@ -61,9 +61,9 @@
 SAX.characters(
   , 3)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(  
+SAX.characters(  
 , 3)
 SAX.endDocument()
diff --git a/result/HTML/doc2.htm.sax b/result/HTML/doc2.htm.sax
index 7cbbc51..63c7164 100644
--- a/result/HTML/doc2.htm.sax
+++ b/result/HTML/doc2.htm.sax
@@ -8,31 +8,31 @@
 SAX.startElement(title)
 SAX.characters(Welcome to Copernic.com, 23)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(script, language='javascript')
 SAX.cdata(
           NS_ActualOpen=windo, 194)
 SAX.endElement(script)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.comment( END Naviscope Javascript )
 SAX.error: Misplaced DOCTYPE declaration
 SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, )
 SAX.comment( saved from url=(0027)http://www.agents-tech.com/ )
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(meta, content='text/html; charset=iso-8859-1', http-equiv='Content-Type')
 SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(meta, content='Copernic.com Inc. develops innovative agent technology solutions to efficiently access and manage the overwhelming quantity of information available on the Internet and intranets.', name='DESCRIPTION')
 SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(meta, content='agent,technology,intranet,extranet,management,filtering,ranking,solution,service,intelligent,intelligence,client,server,architecture,developer,development,information,telecommunication,announcement,press,product,profile,contact,multi-agent,meta-search,metasearch,multi-thread,mobile,wireless,shopping,robot,PCS,Copernic,engine,toolkit,CDK,EDK', name='KEYWORDS')
 SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(meta, content='MSHTML 5.00.3103.1000', name='GENERATOR')
 SAX.endElement(meta)
@@ -64,6 +64,6 @@
 SAX.endElement(noframes)
 SAX.endElement(frameset)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/doc3.htm.sax b/result/HTML/doc3.htm.sax
index 13477f1..fb33cf2 100644
--- a/result/HTML/doc3.htm.sax
+++ b/result/HTML/doc3.htm.sax
Binary files differ
diff --git a/result/HTML/entities.html.sax b/result/HTML/entities.html.sax
index 709b60d..3843f6d 100644
--- a/result/HTML/entities.html.sax
+++ b/result/HTML/entities.html.sax
@@ -20,7 +20,7 @@
 SAX.characters( b
 , 3)
 SAX.endElement(p)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(body)
 SAX.endElement(html)
diff --git a/result/HTML/entities2.html.sax b/result/HTML/entities2.html.sax
index c6efbe5..131b813 100644
--- a/result/HTML/entities2.html.sax
+++ b/result/HTML/entities2.html.sax
@@ -1,7 +1,7 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
@@ -17,7 +17,7 @@
 SAX.characters(
 , 1)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
 SAX.endDocument()
diff --git a/result/HTML/fp40.htm.sax b/result/HTML/fp40.htm.sax
index 6f77794..a51668c 100644
--- a/result/HTML/fp40.htm.sax
+++ b/result/HTML/fp40.htm.sax
@@ -2,27 +2,27 @@
 SAX.startDocument()
 SAX.internalSubset(html, -//IETF//DTD HTML//EN, )
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(meta, name='GENERATOR', content='Microsoft FrontPage 4.0')
 SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(title)
 SAX.characters(README - Microsoft FrontPage 2, 51)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(meta, name='Microsoft Theme', content='none')
 SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.startElement(body)
@@ -455,9 +455,9 @@
 SAX.characters(
 , 1)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/html5_enc.html.sax b/result/HTML/html5_enc.html.sax
index 292be57..6c5802f 100644
--- a/result/HTML/html5_enc.html.sax
+++ b/result/HTML/html5_enc.html.sax
@@ -1,17 +1,17 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(meta, charset='iso-8859-1')
 SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
@@ -22,9 +22,9 @@
 SAX.characters(
 , 1)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/liclose.html.sax b/result/HTML/liclose.html.sax
index eabcdf6..50fa778 100644
--- a/result/HTML/liclose.html.sax
+++ b/result/HTML/liclose.html.sax
@@ -2,17 +2,17 @@
 SAX.startDocument()
 SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, http://www.w3.org/TR/REC-html40/loose.dtd)
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
   , 3)
 SAX.startElement(title)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
@@ -33,6 +33,6 @@
 , 2)
 SAX.endElement(body)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/lt.html.sax b/result/HTML/lt.html.sax
index a4ab5e3..43e1b11 100644
--- a/result/HTML/lt.html.sax
+++ b/result/HTML/lt.html.sax
@@ -1,19 +1,19 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(meta, name='Author', content='Root &lt;root@aol.com&gt;')
 SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/noscript.html.sax b/result/HTML/noscript.html.sax
index b69396f..a4d036f 100644
--- a/result/HTML/noscript.html.sax
+++ b/result/HTML/noscript.html.sax
@@ -2,24 +2,24 @@
 SAX.startDocument()
 SAX.internalSubset(html, , )
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
     , 5)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
         , 9)
 SAX.startElement(title)
 SAX.characters(omg, 3)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
         , 9)
 SAX.startElement(noscript)
 SAX.startElement(link, rel='stylesheet', href='http://foo.com')
 SAX.endElement(link)
 SAX.endElement(noscript)
-SAX.ignorableWhitespace(
+SAX.characters(
     , 5)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
     , 5)
 SAX.startElement(body, id='xxx')
 SAX.characters(
@@ -30,9 +30,9 @@
 SAX.characters(
     , 5)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/pre.html.sax b/result/HTML/pre.html.sax
index f8782b7..bdf1b75 100644
--- a/result/HTML/pre.html.sax
+++ b/result/HTML/pre.html.sax
@@ -1,7 +1,7 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
@@ -15,9 +15,9 @@
 SAX.characters(
 , 1)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/python.html.sax b/result/HTML/python.html.sax
index 665539c..ec300d3 100644
--- a/result/HTML/python.html.sax
+++ b/result/HTML/python.html.sax
@@ -3,27 +3,27 @@
 SAX.internalSubset(html, -//W3C//DTD HTML 4.01 Transitional//EN, http://www.w3.org/TR/html4/loose.dtd)
 SAX.processingInstruction(xml-stylesheet, href="./css/ht2html.css" type="text/css"?)
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.comment( THIS PAGE IS AUTOMATICALLY GENERATED.  DO NOT EDIT. )
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(title)
 SAX.characters(Python Programming Language, 27)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
 , 1)
 SAX.endElement(body)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/reg1.html.sax b/result/HTML/reg1.html.sax
index c8ee3ac..758fd4f 100644
--- a/result/HTML/reg1.html.sax
+++ b/result/HTML/reg1.html.sax
@@ -1,18 +1,18 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(title)
 SAX.characters(Regression test 1, 17)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
@@ -28,9 +28,9 @@
 , 20)
 SAX.endElement(p)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/reg2.html.sax b/result/HTML/reg2.html.sax
index f85691e..c9fe5cb 100644
--- a/result/HTML/reg2.html.sax
+++ b/result/HTML/reg2.html.sax
@@ -1,18 +1,18 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(title)
 SAX.characters(Regression test 2, 17)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
@@ -33,9 +33,9 @@
 , 20)
 SAX.endElement(p)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/reg3.html.sax b/result/HTML/reg3.html.sax
index ec0f039..a2ea57e 100644
--- a/result/HTML/reg3.html.sax
+++ b/result/HTML/reg3.html.sax
@@ -1,18 +1,18 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(title)
 SAX.characters(Regression test 3, 17)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
@@ -37,9 +37,9 @@
 , 20)
 SAX.endElement(p)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/reg4.html.sax b/result/HTML/reg4.html.sax
index 4c5147c..3ed6c9d 100644
--- a/result/HTML/reg4.html.sax
+++ b/result/HTML/reg4.html.sax
@@ -1,18 +1,18 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(title)
 SAX.characters(Regression test 4, 17)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
@@ -35,9 +35,9 @@
 SAX.characters(
 , 1)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/repeat.html.sax b/result/HTML/repeat.html.sax
index 2dbf35c..50b3a76 100644
--- a/result/HTML/repeat.html.sax
+++ b/result/HTML/repeat.html.sax
@@ -6,7 +6,7 @@
 SAX.endElement(td)
 SAX.startElement(td)
 SAX.comment( <a><b> )
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(td)
 SAX.endElement(body)
diff --git a/result/HTML/script.html.sax b/result/HTML/script.html.sax
index b259f7f..5925ecc 100644
--- a/result/HTML/script.html.sax
+++ b/result/HTML/script.html.sax
@@ -1,14 +1,14 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(head)
 SAX.startElement(title)
 SAX.characters(Script tests, 12)
 SAX.endElement(title)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
@@ -24,9 +24,9 @@
 SAX.characters(
 , 1)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/script2.html.sax b/result/HTML/script2.html.sax
index 1971991..405549d 100644
--- a/result/HTML/script2.html.sax
+++ b/result/HTML/script2.html.sax
@@ -2,22 +2,22 @@
 SAX.startDocument()
 SAX.internalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd)
 SAX.startElement(html, xmlns='http://www.w3.org/1999/xhtml')
-SAX.ignorableWhitespace(
+SAX.characters(
 	, 2)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 		, 3)
 SAX.startElement(meta, http-equiv='Content-Type', content='text/html; charset=UTF-8')
 SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(title)
 SAX.characters(Test Page, 9)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body)
 SAX.characters(
@@ -41,10 +41,10 @@
 SAX.characters(
 , 1)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.endDocument()
diff --git a/result/HTML/test2.html.sax b/result/HTML/test2.html.sax
index 78bb090..fd328dd 100644
--- a/result/HTML/test2.html.sax
+++ b/result/HTML/test2.html.sax
@@ -3,12 +3,12 @@
 SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, http://www.w3.org/TR/REC-html40/loose.dtd)
 SAX.startElement(html)
 SAX.startElement(head)
-SAX.ignorableWhitespace( , 1)
+SAX.characters( , 1)
 SAX.startElement(title)
 SAX.characters(Linux Today, 11)
 SAX.endElement(title)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(body, bgcolor='White', link='Blue', text='Black', vlink='Black', alink='Red')
 SAX.characters(
@@ -137,9 +137,9 @@
 , 1)
 SAX.endElement(p)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endDocument()
diff --git a/result/HTML/test3.html.sax b/result/HTML/test3.html.sax
index c9f6638..b75b211 100644
--- a/result/HTML/test3.html.sax
+++ b/result/HTML/test3.html.sax
@@ -1,17 +1,17 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(

+SAX.characters(

 , 2)
 SAX.startElement(head)
-SAX.ignorableWhitespace(

+SAX.characters(

 , 2)
 SAX.startElement(base, target='contents')
 SAX.endElement(base)
-SAX.ignorableWhitespace(

+SAX.characters(

 , 2)
 SAX.endElement(head)
-SAX.ignorableWhitespace(

+SAX.characters(

 , 2)
 SAX.startElement(body)
 SAX.startElement(a, name='ProblemDomain.Package')
@@ -225,6 +225,6 @@
 , 2)
 SAX.endElement(body)
 SAX.endElement(html)
-SAX.ignorableWhitespace(

+SAX.characters(

 , 2)
 SAX.endDocument()
diff --git a/result/HTML/utf8bug.html.sax b/result/HTML/utf8bug.html.sax
index 06cdb15..e148358 100644
--- a/result/HTML/utf8bug.html.sax
+++ b/result/HTML/utf8bug.html.sax
@@ -1,35 +1,35 @@
 SAX.setDocumentLocator()
 SAX.startDocument()
 SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(meta, http-equiv='Content-Language', content='en-us')
 SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(meta, http-equiv='Content-Type', content='text/html; charset=utf-8')
 SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(link, href='CSS.css', type='text/css', rel='stylesheet')
 SAX.endElement(link)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(link, rel='SHORTCUT ICON', href='favicon.ico')
 SAX.endElement(link)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.startElement(title)
 SAX.characters(&#1588;&#1607;&#1610;&#1585; , 17)
 SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.startElement(body)
diff --git a/result/HTML/wired.html.sax b/result/HTML/wired.html.sax
index 3860c76..d5b1629 100644
--- a/result/HTML/wired.html.sax
+++ b/result/HTML/wired.html.sax
@@ -2839,10 +2839,10 @@
 SAX.characters(
 , 1)
 SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
 , 1)
 SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
 
 , 2)
 SAX.endDocument()
diff --git a/result/XPath/expr/base b/result/XPath/expr/base
index 3552866..57c93cf 100644
--- a/result/XPath/expr/base
+++ b/result/XPath/expr/base
@@ -18,3 +18,51 @@
 ========================
 Expression: (1+2)*(3+4)
 Object is a number : 21
+
+========================
+Expression: 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
+Object is a number : 21
+
+========================
+Expression: 0.000000000000000000000000000000000000000000000000001
+Object is a number : 1e-51
+
+========================
+Expression: -0.000000000000000000000000000000000000000000000000001
+Object is a number : -1e-51
+
+========================
+Expression: 1e2147483648
+Object is a number : Infinity
+
+========================
+Expression: 1e4294967296
+Object is a number : Infinity
+
+========================
+Expression: 1e9223372036854775808
+Object is a number : Infinity
+
+========================
+Expression: 1e18446744073709551616
+Object is a number : Infinity
+
+========================
+Expression: 1e-2147483649
+Object is a number : 0
+
+========================
+Expression: 1e-4294967296
+Object is a number : 0
+
+========================
+Expression: 1e-9223372036854775809
+Object is a number : 0
+
+========================
+Expression: 1e-18446744073709551616
+Object is a number : 0
+
+========================
+Expression: self::-name
+Object is empty (NULL)
diff --git a/result/XPath/expr/floats b/result/XPath/expr/floats
index b6255ce..157bd76 100644
--- a/result/XPath/expr/floats
+++ b/result/XPath/expr/floats
@@ -242,3 +242,11 @@
 ========================
 Expression: 8 mod 3 = 2
 Object is a Boolean : true
+
+========================
+Expression: 12345678901234567890
+Object is a number : 1.23457e+19
+
+========================
+Expression: -12345678901234567890
+Object is a number : -1.23457e+19
diff --git a/result/XPath/expr/functions b/result/XPath/expr/functions
index 10cc27e..e09eb4a 100644
--- a/result/XPath/expr/functions
+++ b/result/XPath/expr/functions
@@ -44,6 +44,26 @@
 Object is a number : -6
 
 ========================
+Expression: floor(100000000000000000000)
+Object is a number : 1e+20
+
+========================
+Expression: floor(-100000000000000000000)
+Object is a number : -1e+20
+
+========================
+Expression: floor(0 div 0)
+Object is a number : NaN
+
+========================
+Expression: floor(1 div 0)
+Object is a number : Infinity
+
+========================
+Expression: floor(-1 div 0)
+Object is a number : -Infinity
+
+========================
 Expression: ceiling(0.1)
 Object is a number : 1
 
@@ -68,6 +88,26 @@
 Object is a number : -5
 
 ========================
+Expression: ceiling(100000000000000000000)
+Object is a number : 1e+20
+
+========================
+Expression: ceiling(-100000000000000000000)
+Object is a number : -1e+20
+
+========================
+Expression: ceiling(0 div 0)
+Object is a number : NaN
+
+========================
+Expression: ceiling(1 div 0)
+Object is a number : Infinity
+
+========================
+Expression: ceiling(-1 div 0)
+Object is a number : -Infinity
+
+========================
 Expression: round(0.1)
 Object is a number : 0
 
@@ -98,3 +138,31 @@
 ========================
 Expression: round(-5.6)
 Object is a number : -6
+
+========================
+Expression: round(0.5)
+Object is a number : 1
+
+========================
+Expression: round(-0.5)
+Object is a number : 0
+
+========================
+Expression: round(100000000000000000000)
+Object is a number : 1e+20
+
+========================
+Expression: round(-100000000000000000000)
+Object is a number : -1e+20
+
+========================
+Expression: round(0 div 0)
+Object is a number : NaN
+
+========================
+Expression: round(1 div 0)
+Object is a number : Infinity
+
+========================
+Expression: round(-1 div 0)
+Object is a number : -Infinity
diff --git a/result/XPath/expr/strings b/result/XPath/expr/strings
index fad7048..1ae5cc4 100644
--- a/result/XPath/expr/strings
+++ b/result/XPath/expr/strings
@@ -20,6 +20,14 @@
 Object is a string : false
 
 ========================
+Expression: string(12345678901234567890)
+Object is a string : 1.23456789012346e+19
+
+========================
+Expression: string(-12345678901234567890)
+Object is a string : -1.23456789012346e+19
+
+========================
 Expression: concat("titi","toto")
 Object is a string : tititoto
 
diff --git a/result/XPath/tests/chaptersbase b/result/XPath/tests/chaptersbase
index 03c6567..fd021d8 100644
--- a/result/XPath/tests/chaptersbase
+++ b/result/XPath/tests/chaptersbase
@@ -113,3 +113,28 @@
     ATTRIBUTE id
       TEXT
         content=chapter5
+
+========================
+Expression: //p[1]
+Object is a Node Set :
+Set contains 5 nodes:
+1  ELEMENT p
+2  ELEMENT p
+3  ELEMENT p
+4  ELEMENT p
+5  ELEMENT p
+
+========================
+Expression: //p[0 div 0]
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: //p[100000000000000000000]
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: //p[-100000000000000000000]
+Object is a Node Set :
+Set contains 0 nodes:
diff --git a/result/XPath/tests/nssimple b/result/XPath/tests/nssimple
new file mode 100644
index 0000000..cd09a17
--- /dev/null
+++ b/result/XPath/tests/nssimple
@@ -0,0 +1,38 @@
+
+========================
+Expression: /doc/elem/namespace::node()/..
+Object is a Node Set :
+Set contains 1 nodes:
+1  ELEMENT elem
+    namespace ns2 href=nsuri2
+
+========================
+Expression: /doc/elem/namespace::*/self::node()[true()]
+Object is a Node Set :
+Set contains 3 nodes:
+1  namespace xml href=http://www.w3.org/XML/1998/namespace
+2  namespace ns1 href=nsuri1
+3  namespace ns2 href=nsuri2
+
+========================
+Expression: //*[namespace::ns1]
+Object is a Node Set :
+Set contains 4 nodes:
+1  ELEMENT doc
+    namespace ns1 href=nsuri1
+2  ELEMENT preceding
+3  ELEMENT elem
+    namespace ns2 href=nsuri2
+4  ELEMENT following
+
+========================
+Expression: /doc/elem/namespace::ns2/following::*
+Object is a Node Set :
+Set contains 1 nodes:
+1  ELEMENT following
+
+========================
+Expression: /doc/elem/namespace::ns2/preceding::*
+Object is a Node Set :
+Set contains 1 nodes:
+1  ELEMENT preceding
diff --git a/result/XPath/tests/simplebase b/result/XPath/tests/simplebase
index 38fa144..6d4b347 100644
--- a/result/XPath/tests/simplebase
+++ b/result/XPath/tests/simplebase
@@ -60,6 +60,60 @@
     content=   
 
 ========================
+Expression: /child::EXAMPLE/attribute::prop1/self::node()
+Object is a Node Set :
+Set contains 1 nodes:
+1  ATTRIBUTE prop1
+    TEXT
+      content=gnome is great
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/self::*
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/descendant-or-self::node()
+Object is a Node Set :
+Set contains 1 nodes:
+1  ATTRIBUTE prop1
+    TEXT
+      content=gnome is great
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/descendant-or-self::*
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/ancestor-or-self::node()
+Object is a Node Set :
+Set contains 3 nodes:
+1   /
+2  ELEMENT EXAMPLE
+    ATTRIBUTE prop1
+      TEXT
+        content=gnome is great
+    ATTRIBUTE prop2
+      TEXT
+        content=& linux too
+3  ATTRIBUTE prop1
+    TEXT
+      content=gnome is great
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/ancestor-or-self::*
+Object is a Node Set :
+Set contains 1 nodes:
+1  ELEMENT EXAMPLE
+    ATTRIBUTE prop1
+      TEXT
+        content=gnome is great
+    ATTRIBUTE prop2
+      TEXT
+        content=& linux too
+
+========================
 Expression: /descendant::title
 Object is a Node Set :
 Set contains 2 nodes:
@@ -71,3 +125,8 @@
 Object is a Node Set :
 Set contains 1 nodes:
 1  ELEMENT chapter
+
+========================
+Expression: /child::EXAMPLE/attribute::prop2/preceding::text()
+Object is a Node Set :
+Set contains 0 nodes:
diff --git a/result/XPath/tests/strbase b/result/XPath/tests/strbase
new file mode 100644
index 0000000..e6035ca
--- /dev/null
+++ b/result/XPath/tests/strbase
@@ -0,0 +1,13 @@
+
+========================
+Expression: //p[.='abc']
+Object is a Node Set :
+Set contains 2 nodes:
+1  ELEMENT p
+    ATTRIBUTE id
+      TEXT
+        content=1
+2  ELEMENT p
+    ATTRIBUTE id
+      TEXT
+        content=2
diff --git a/result/XPath/xptr/vidbase b/result/XPath/xptr/vidbase
index 8b9e92d..f19193e 100644
--- a/result/XPath/xptr/vidbase
+++ b/result/XPath/xptr/vidbase
@@ -17,3 +17,16 @@
   To node
     ELEMENT p
 
+
+========================
+Expression: xpointer(range-to(id('chapter2')))
+Object is a Location Set:
+1 :   Object is a range :
+  From node
+     /
+  To node
+    ELEMENT chapter
+      ATTRIBUTE id
+        TEXT
+          content=chapter2
+
diff --git a/result/XPath/xptr/viderror b/result/XPath/xptr/viderror
new file mode 100644
index 0000000..d589882
--- /dev/null
+++ b/result/XPath/xptr/viderror
@@ -0,0 +1,4 @@
+
+========================
+Expression: xpointer(non-existing-fn()/range-to(id('chapter2')))
+Object is empty (NULL)
diff --git a/result/cdata-2-byte-UTF-8.xml b/result/cdata-2-byte-UTF-8.xml
new file mode 100644
index 0000000..8552efc
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+<p><![CDATA[ ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+</doc>
diff --git a/result/cdata-2-byte-UTF-8.xml.rde b/result/cdata-2-byte-UTF-8.xml.rde
new file mode 100644
index 0000000..2eb2940
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.rde
@@ -0,0 +1,15 @@
+0 8 #comment 0 1  This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). 
+0 1 doc 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1  ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1 
+
+0 15 doc 0 0
diff --git a/result/cdata-2-byte-UTF-8.xml.rdr b/result/cdata-2-byte-UTF-8.xml.rdr
new file mode 100644
index 0000000..2eb2940
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.rdr
@@ -0,0 +1,15 @@
+0 8 #comment 0 1  This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). 
+0 1 doc 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1  ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1 
+
+0 15 doc 0 0
diff --git a/result/cdata-2-byte-UTF-8.xml.sax b/result/cdata-2-byte-UTF-8.xml.sax
new file mode 100644
index 0000000..f397f6a
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.sax
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElement(doc)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(ČČČČČČČČČČ, 1200)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( ČČČČČČČČČÄ, 1201)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.endElement(doc)
+SAX.endDocument()
diff --git a/result/cdata-2-byte-UTF-8.xml.sax2 b/result/cdata-2-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..2da2d50
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(ČČČČČČČČČČ, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ČČČČČČČČČÄ, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/cdata-3-byte-UTF-8.xml b/result/cdata-3-byte-UTF-8.xml
new file mode 100644
index 0000000..b959a12
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[  牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+</doc>
diff --git a/result/cdata-3-byte-UTF-8.xml.rde b/result/cdata-3-byte-UTF-8.xml.rde
new file mode 100644
index 0000000..3f4d1c5
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.rde
@@ -0,0 +1,20 @@
+0 8 #comment 0 1  This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). 
+0 1 doc 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1  牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1   牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1 
+
+0 15 doc 0 0
diff --git a/result/cdata-3-byte-UTF-8.xml.rdr b/result/cdata-3-byte-UTF-8.xml.rdr
new file mode 100644
index 0000000..3f4d1c5
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.rdr
@@ -0,0 +1,20 @@
+0 8 #comment 0 1  This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). 
+0 1 doc 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1  牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1   牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1 
+
+0 15 doc 0 0
diff --git a/result/cdata-3-byte-UTF-8.xml.sax b/result/cdata-3-byte-UTF-8.xml.sax
new file mode 100644
index 0000000..2f73e7c
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.sax
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElement(doc)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(牛牛牛牛牛牛ç‰, 1200)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( 牛牛牛牛牛牛ç, 1201)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(  牛牛牛牛牛牛, 1202)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.endElement(doc)
+SAX.endDocument()
diff --git a/result/cdata-3-byte-UTF-8.xml.sax2 b/result/cdata-3-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..3969579
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.sax2
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(牛牛牛牛牛牛ç‰, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( 牛牛牛牛牛牛ç, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(  牛牛牛牛牛牛, 1202)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/cdata-4-byte-UTF-8.xml b/result/cdata-4-byte-UTF-8.xml
new file mode 100644
index 0000000..4d1d9a8
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[  🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[   🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+</doc>
diff --git a/result/cdata-4-byte-UTF-8.xml.rde b/result/cdata-4-byte-UTF-8.xml.rde
new file mode 100644
index 0000000..437b79e
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.rde
@@ -0,0 +1,25 @@
+0 8 #comment 0 1  This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). 
+0 1 doc 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1  🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1   🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1    🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1 
+
+0 15 doc 0 0
diff --git a/result/cdata-4-byte-UTF-8.xml.rdr b/result/cdata-4-byte-UTF-8.xml.rdr
new file mode 100644
index 0000000..437b79e
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.rdr
@@ -0,0 +1,25 @@
+0 8 #comment 0 1  This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). 
+0 1 doc 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1  🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1   🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1 
+
+1 1 p 0 0
+2 4 #cdata-section 0 1    🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1 
+
+0 15 doc 0 0
diff --git a/result/cdata-4-byte-UTF-8.xml.sax b/result/cdata-4-byte-UTF-8.xml.sax
new file mode 100644
index 0000000..d8abcfb
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.sax
@@ -0,0 +1,28 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElement(doc)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(🍦🍦🍦🍦🍦, 1200)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( 🍦🍦🍦🍦ðŸ, 1201)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(  🍦🍦🍦🍦ðŸ, 1202)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(   🍦🍦🍦🍦ð, 1203)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.endElement(doc)
+SAX.endDocument()
diff --git a/result/cdata-4-byte-UTF-8.xml.sax2 b/result/cdata-4-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..5e07d83
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.sax2
@@ -0,0 +1,28 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(🍦🍦🍦🍦🍦, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( 🍦🍦🍦🍦ðŸ, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(  🍦🍦🍦🍦ðŸ, 1202)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(   🍦🍦🍦🍦ð, 1203)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/errors/754946.xml b/result/errors/754946.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/754946.xml
diff --git a/result/errors/754946.xml.err b/result/errors/754946.xml.err
new file mode 100644
index 0000000..be77781
--- /dev/null
+++ b/result/errors/754946.xml.err
@@ -0,0 +1,20 @@
+./test/errors/754946.xml:3: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+  %SYSTEM;
+          ^
+Entity: line 1: 
+A<lbbbbbbbbbbbbbbbbbbb_
+^
+./test/errors/754946.xml:4: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+  <![
+  ^
+./test/errors/754946.xml:4: parser error : DOCTYPE improperly terminated
+  <![
+  ^
+./test/errors/754946.xml:4: parser error : StartTag: invalid element name
+  <![
+   ^
+./test/errors/754946.xml:4: parser error : Extra content at the end of the document
+  <![
+   ^
diff --git a/result/errors/754946.xml.str b/result/errors/754946.xml.str
new file mode 100644
index 0000000..49395b6
--- /dev/null
+++ b/result/errors/754946.xml.str
@@ -0,0 +1,4 @@
+./test/errors/754946.xml:1: parser error : Extra content at the end of the document
+<!DOCTYPE A [
+            ^
+./test/errors/754946.xml : failed to parse
diff --git a/result/errors/754947.xml b/result/errors/754947.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/754947.xml
diff --git a/result/errors/754947.xml.err b/result/errors/754947.xml.err
new file mode 100644
index 0000000..f45cb5a
--- /dev/null
+++ b/result/errors/754947.xml.err
@@ -0,0 +1,7 @@
+./test/errors/754947.xml:1: parser error : Input is not proper UTF-8, indicate encoding !
+Bytes: 0xEE 0x5D 0x5D 0x3E
+<d><![CDATA[0000000000000î]]>
+                         ^
+./test/errors/754947.xml:1: parser error : Premature end of data in tag d line 1
+<d><![CDATA[0000000000000î]]>
+                             ^
diff --git a/result/errors/754947.xml.str b/result/errors/754947.xml.str
new file mode 100644
index 0000000..4d2f52e
--- /dev/null
+++ b/result/errors/754947.xml.str
@@ -0,0 +1,5 @@
+./test/errors/754947.xml:1: parser error : Input is not proper UTF-8, indicate encoding !
+Bytes: 0xEE 0x5D 0x5D 0x3E
+<d><![CDATA[0000000000000î]]>
+                         ^
+./test/errors/754947.xml : failed to parse
diff --git a/result/errors/758588.xml b/result/errors/758588.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/758588.xml
diff --git a/result/errors/758588.xml.err b/result/errors/758588.xml.err
new file mode 100644
index 0000000..dfa59bc
--- /dev/null
+++ b/result/errors/758588.xml.err
@@ -0,0 +1,9 @@
+./test/errors/758588.xml:1: namespace error : Namespace prefix a-340282366920938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867261d on a is not defined
+63472597946867209384634725979468672093846347259794686720938463472597946867261d:a
+                                                                               ^
+./test/errors/758588.xml:1: parser error : expected '>'
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+                                                                               ^
+./test/errors/758588.xml:1: parser error : Opening and ending tag mismatch: a line 1 and a
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+                                                                               ^
diff --git a/result/errors/758588.xml.str b/result/errors/758588.xml.str
new file mode 100644
index 0000000..303ee0c
--- /dev/null
+++ b/result/errors/758588.xml.str
@@ -0,0 +1,10 @@
+./test/errors/758588.xml:1: namespace error : Namespace prefix a-340282366920938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867261d on a is not defined
+63472597946867209384634725979468672093846347259794686720938463472597946867261d:a
+                                                                               ^
+./test/errors/758588.xml:1: parser error : expected '>'
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+                                                                               ^
+./test/errors/758588.xml:1: parser error : Opening and ending tag mismatch: a line 1 and a
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+                                                                               ^
+./test/errors/758588.xml : failed to parse
diff --git a/result/errors/759020.xml b/result/errors/759020.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/759020.xml
diff --git a/result/errors/759020.xml.err b/result/errors/759020.xml.err
new file mode 100644
index 0000000..a0d3051
--- /dev/null
+++ b/result/errors/759020.xml.err
@@ -0,0 +1,6 @@
+./test/errors/759020.xml:3: namespace warning : xmlns: URI 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 is not absolute
+0000000000000000000000000000000000000000000000000000000000000000000000000000000'
+                                                                               ^
+./test/errors/759020.xml:46: parser error : Couldn't find end of Start Tag s00 line 2
+                                                                   
+                                                                   ^
diff --git a/result/errors/759020.xml.str b/result/errors/759020.xml.str
new file mode 100644
index 0000000..998d6d2
--- /dev/null
+++ b/result/errors/759020.xml.str
@@ -0,0 +1,7 @@
+./test/errors/759020.xml:3: namespace warning : xmlns: URI 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 is not absolute
+0000000000000000000000000000000000000000000000000000000000000000000000000000000'
+                                                                               ^
+./test/errors/759020.xml:46: parser error : Couldn't find end of Start Tag s00
+                                                                   
+                                                                   ^
+./test/errors/759020.xml : failed to parse
diff --git a/result/errors/759398.xml b/result/errors/759398.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/759398.xml
diff --git a/result/errors/759398.xml.err b/result/errors/759398.xml.err
new file mode 100644
index 0000000..f6036a3
--- /dev/null
+++ b/result/errors/759398.xml.err
@@ -0,0 +1,12 @@
+./test/errors/759398.xml:210: parser error : StartTag: invalid element name
+need to worry about parsers whi<! don't expand PErefs finding
+                                ^
+./test/errors/759398.xml:309: parser error : Opening and ending tag mismatch: №№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№m line 308 and termdef
+and provide access to their content and structure.</termdef> <termdef
+                                                            ^
+./test/errors/759398.xml:314: parser error : Opening and ending tag mismatch: spec line 50 and p
+data and the information it must provide to the application.</p>
+                                                                ^
+./test/errors/759398.xml:316: parser error : Extra content at the end of the document
+<div2 id='sec-origin-goals'>
+^
diff --git a/result/errors/759398.xml.str b/result/errors/759398.xml.str
new file mode 100644
index 0000000..de9a28c
--- /dev/null
+++ b/result/errors/759398.xml.str
@@ -0,0 +1,5 @@
+./test/errors/759398.xml:210: parser error : internal error: detected an error in element content
+
+need to worry about parsers whi<! don't expand 
+                               ^
+./test/errors/759398.xml : failed to parse
diff --git a/result/errors/759573-2.xml b/result/errors/759573-2.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/759573-2.xml
diff --git a/result/errors/759573-2.xml.err b/result/errors/759573-2.xml.err
new file mode 100644
index 0000000..86d6420
--- /dev/null
+++ b/result/errors/759573-2.xml.err
@@ -0,0 +1,58 @@
+Entity: line 1: parser error : Space required after '<!ENTITY'
+%zz;
+    ^
+Entity: line 1: 
+<!ENTITY<?xDOCTYPEm~?>
+        ^
+Entity: line 1: parser error : xmlParseEntityDecl: no name
+%zz;
+    ^
+Entity: line 1: 
+<!ENTITY<?xDOCTYPEm~?>
+        ^
+Entity: line 1: parser error : ParsePI: PI xDOCTYPEm space expected
+%zz;
+    ^
+Entity: line 1: 
+<!ENTITY<?xDOCTYPEm~?>
+                   ^
+Entity: line 3: parser error : Space required after '<!ENTITY'
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+    ^
+Entity: line 1: 
+<!ENTITY<?xDOCTYPEm~?>
+        ^
+Entity: line 3: parser error : xmlParseEntityDecl: no name
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+    ^
+Entity: line 1: 
+<!ENTITY<?xDOCTYPEm~?>
+        ^
+Entity: line 3: parser error : ParsePI: PI xDOCTYPEm space expected
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+    ^
+Entity: line 1: 
+<!ENTITY<?xDOCTYPEm~?>
+                   ^
+./test/errors/759573-2.xml:6: parser error : Space required after 'ELEMENT'
+%xx;ÿggKENSMYNT&#35;MENTD&#372zz;'>
+    ^
+Entity: line 3: 
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+             ^
+./test/errors/759573-2.xml:6: parser error : Content error in the external subset
+%xx;ÿggKENSMYNT&#35;MENTD&#372zz;'>
+    ^
+Entity: line 3: 
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+             ^
+./test/errors/759573-2.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+
+^
+./test/errors/759573-2.xml:6: parser error : DOCTYPE improperly terminated
+
+^
+./test/errors/759573-2.xml:6: parser error : Start tag expected, '<' not found
+
+^
diff --git a/result/errors/759573-2.xml.str b/result/errors/759573-2.xml.str
new file mode 100644
index 0000000..baac164
--- /dev/null
+++ b/result/errors/759573-2.xml.str
@@ -0,0 +1,4 @@
+./test/errors/759573-2.xml:2: parser error : Extra content at the end of the document
+<!DOCTYPE test [
+               ^
+./test/errors/759573-2.xml : failed to parse
diff --git a/result/errors/759573.xml b/result/errors/759573.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/759573.xml
diff --git a/result/errors/759573.xml.err b/result/errors/759573.xml.err
new file mode 100644
index 0000000..554039f
--- /dev/null
+++ b/result/errors/759573.xml.err
@@ -0,0 +1,34 @@
+./test/errors/759573.xml:1: parser error : Space required after '<!ENTITY'
+ELEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITY
+                                                                               ^
+./test/errors/759573.xml:1: parser error : Space required after the entity name
+LEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz
+                                                                               ^
+./test/errors/759573.xml:1: parser error : Entity value required
+LEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz
+                                                                               ^
+./test/errors/759573.xml:1: parser error : PEReference: no name
+T t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
+                                                                               ^
+Entity: line 1: 
+%<![INCLUDE[000%ஸ000%z;
+ ^
+./test/errors/759573.xml:1: parser error : Content error in the external subset
+T t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
+                                                                               ^
+Entity: line 1: 
+%<![INCLUDE[000%ஸ000%z;
+            ^
+./test/errors/759573.xml:1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;00
+     ^
+./test/errors/759573.xml:1: parser error : DOCTYPE improperly terminated
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;00
+     ^
+./test/errors/759573.xml:1: parser error : StartTag: invalid element name
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;00
+      ^
+./test/errors/759573.xml:1: parser error : Extra content at the end of the document
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;00
+      ^
diff --git a/result/errors/759573.xml.str b/result/errors/759573.xml.str
new file mode 100644
index 0000000..1b6addb
--- /dev/null
+++ b/result/errors/759573.xml.str
@@ -0,0 +1,4 @@
+./test/errors/759573.xml:1: parser error : Extra content at the end of the document
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;00
+               ^
+./test/errors/759573.xml : failed to parse
diff --git a/result/errors/759579.xml b/result/errors/759579.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/759579.xml
diff --git a/result/errors/759579.xml.err b/result/errors/759579.xml.err
new file mode 100644
index 0000000..288026e
--- /dev/null
+++ b/result/errors/759579.xml.err
@@ -0,0 +1,6 @@
+Entity: line 2: parser error : Detected an entity reference loop
+        %z; %z; %z; %z; %z;
+           ^
+Entity: line 2: 
+        %z; %z; %z; %z; %z;
+           ^
diff --git a/result/errors/759579.xml.str b/result/errors/759579.xml.str
new file mode 100644
index 0000000..09408f5
--- /dev/null
+++ b/result/errors/759579.xml.str
@@ -0,0 +1,7 @@
+Entity: line 2: parser error : Detected an entity reference loop
+        %z; %z; %z; %z; %z;
+           ^
+Entity: line 2: 
+        %z; %z; %z; %z; %z;
+           ^
+./test/errors/759579.xml : failed to parse
diff --git a/result/errors/attr1.xml.err b/result/errors/attr1.xml.err
index 4f08538..c4c4fc8 100644
--- a/result/errors/attr1.xml.err
+++ b/result/errors/attr1.xml.err
@@ -1,6 +1,9 @@
 ./test/errors/attr1.xml:2: parser error : AttValue: ' expected
 
 ^
-./test/errors/attr1.xml:1: parser error : Extra content at the end of the document
-<foo foo="oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
- ^
+./test/errors/attr1.xml:2: parser error : attributes construct error
+
+^
+./test/errors/attr1.xml:2: parser error : Couldn't find end of Start Tag foo line 1
+
+^
diff --git a/result/errors/attr2.xml.err b/result/errors/attr2.xml.err
index c8a9c7d..77e342e 100644
--- a/result/errors/attr2.xml.err
+++ b/result/errors/attr2.xml.err
@@ -1,6 +1,9 @@
 ./test/errors/attr2.xml:2: parser error : AttValue: ' expected
 
 ^
-./test/errors/attr2.xml:1: parser error : Extra content at the end of the document
-<foo foo=">ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
- ^
+./test/errors/attr2.xml:2: parser error : attributes construct error
+
+^
+./test/errors/attr2.xml:2: parser error : Couldn't find end of Start Tag foo line 1
+
+^
diff --git a/result/errors/cdata.xml.str b/result/errors/cdata.xml.str
index e043441..cf83d2b 100644
--- a/result/errors/cdata.xml.str
+++ b/result/errors/cdata.xml.str
@@ -1,5 +1,5 @@
 ./test/errors/cdata.xml:2: parser error : Input is not proper UTF-8, indicate encoding !
-Bytes: 0x5B 0x43 0xE1 0x72
+Bytes: 0xE1 0x72 0x5D 0x5D
 <A><![CDATA[Cár]]></A>
-           ^
+             ^
 ./test/errors/cdata.xml : failed to parse
diff --git a/result/errors/content1.xml.err b/result/errors/content1.xml.err
index 425be39..9fcd603 100644
--- a/result/errors/content1.xml.err
+++ b/result/errors/content1.xml.err
@@ -13,4 +13,4 @@
                          ^
 ./test/errors/content1.xml:7: parser error : Start tag expected, '<' not found
 <!ELEMENT aElement (a |b * >
-                           ^
+                         ^
diff --git a/result/errors/name2.xml.err b/result/errors/name2.xml.err
index a6649a1..8acef79 100644
--- a/result/errors/name2.xml.err
+++ b/result/errors/name2.xml.err
@@ -1,6 +1,9 @@
-./test/errors/name2.xml:2: parser error : Specification mandate value for attribute foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
+./test/errors/name2.xml:2: parser error : Specification mandates value for attribute foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
 
 ^
-./test/errors/name2.xml:1: parser error : Extra content at the end of the document
-<foo foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
- ^
+./test/errors/name2.xml:2: parser error : attributes construct error
+
+^
+./test/errors/name2.xml:2: parser error : Couldn't find end of Start Tag foo line 1
+
+^
diff --git a/result/errors/name2.xml.str b/result/errors/name2.xml.str
index daee090..90f8c08 100644
--- a/result/errors/name2.xml.str
+++ b/result/errors/name2.xml.str
@@ -1,4 +1,4 @@
-./test/errors/name2.xml:2: parser error : Specification mandate value for attribute foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
+./test/errors/name2.xml:2: parser error : Specification mandates value for attribute foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
 
 ^
 ./test/errors/name2.xml:2: parser error : attributes construct error
diff --git a/result/errors10/781205.xml b/result/errors10/781205.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors10/781205.xml
diff --git a/result/errors10/781205.xml.err b/result/errors10/781205.xml.err
new file mode 100644
index 0000000..3ddc203
--- /dev/null
+++ b/result/errors10/781205.xml.err
@@ -0,0 +1,17 @@
+./test/errors10/781205.xml:3: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+  %a;
+     ^
+Entity: line 1: 
+<:0000
+^
+./test/errors10/781205.xml:4: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+
+^
+./test/errors10/781205.xml:4: parser error : DOCTYPE improperly terminated
+
+^
+./test/errors10/781205.xml:4: parser error : Start tag expected, '<' not found
+
+^
diff --git a/result/errors10/781361.xml b/result/errors10/781361.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors10/781361.xml
diff --git a/result/errors10/781361.xml.err b/result/errors10/781361.xml.err
new file mode 100644
index 0000000..655f41a
--- /dev/null
+++ b/result/errors10/781361.xml.err
@@ -0,0 +1,13 @@
+./test/errors10/781361.xml:4: parser error : xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected
+
+^
+./test/errors10/781361.xml:4: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+
+^
+./test/errors10/781361.xml:4: parser error : DOCTYPE improperly terminated
+
+^
+./test/errors10/781361.xml:4: parser error : Start tag expected, '<' not found
+
+^
diff --git a/result/icu_parse_test.xml b/result/icu_parse_test.xml
new file mode 100644
index 0000000..031a967
--- /dev/null
+++ b/result/icu_parse_test.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<foo>
+Text with EUC-JP chars at position 214 (0xd6)
+___
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______é®Äé___
+_</foo>
diff --git a/result/icu_parse_test.xml.rde b/result/icu_parse_test.xml.rde
new file mode 100644
index 0000000..54cd5f0
--- /dev/null
+++ b/result/icu_parse_test.xml.rde
@@ -0,0 +1,14 @@
+0 1 foo 0 0
+1 3 #text 0 1 
+Text with EUC-JP chars at position 214 (0xd6)
+___
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______駪槗___
+_
+0 15 foo 0 0
diff --git a/result/icu_parse_test.xml.rdr b/result/icu_parse_test.xml.rdr
new file mode 100644
index 0000000..54cd5f0
--- /dev/null
+++ b/result/icu_parse_test.xml.rdr
@@ -0,0 +1,14 @@
+0 1 foo 0 0
+1 3 #text 0 1 
+Text with EUC-JP chars at position 214 (0xd6)
+___
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______駪槗___
+_
+0 15 foo 0 0
diff --git a/result/icu_parse_test.xml.sax b/result/icu_parse_test.xml.sax
new file mode 100644
index 0000000..91e11d5
--- /dev/null
+++ b/result/icu_parse_test.xml.sax
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElement(foo)
+SAX.characters(
+Text with EUC-JP chars at pos, 170)
+SAX.characters(駪槗___
+_, 11)
+SAX.endElement(foo)
+SAX.endDocument()
diff --git a/result/icu_parse_test.xml.sax2 b/result/icu_parse_test.xml.sax2
new file mode 100644
index 0000000..eb0d6c6
--- /dev/null
+++ b/result/icu_parse_test.xml.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(foo, NULL, NULL, 0, 0, 0)
+SAX.characters(
+Text with EUC-JP chars at pos, 170)
+SAX.characters(駪槗___
+_, 11)
+SAX.endElementNs(foo, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att1.sax2 b/result/noent/att1.sax2
new file mode 100644
index 0000000..76ba131
--- /dev/null
+++ b/result/noent/att1.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(doc, NULL, NULL, 0, 1, 0, attr='to n...', 28)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att10.sax2 b/result/noent/att10.sax2
new file mode 100644
index 0000000..cc8b58e
--- /dev/null
+++ b/result/noent/att10.sax2
Binary files differ
diff --git a/result/noent/att11.sax2 b/result/noent/att11.sax2
new file mode 100644
index 0000000..518e231
--- /dev/null
+++ b/result/noent/att11.sax2
@@ -0,0 +1,20 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(attributes, , )
+SAX.elementDecl(attributes, 1, ...)
+SAX.attributeDecl(attributes, nmtoken, 7, 3, NULL, ...)
+SAX.attributeDecl(attributes, nmtokens, 8, 3, NULL, ...)
+SAX.entityDecl(ent, 1, (null), (null),  entity&recursive; )
+SAX.getEntity(ent)
+SAX.entityDecl(recursive, 1, (null), (null), reference)
+SAX.getEntity(recursive)
+SAX.externalSubset(attributes, , )
+SAX.getEntity(ent)
+SAX.getEntity(recursive)
+SAX.getEntity(ent)
+SAX.getEntity(recursive)
+SAX.getEntity(ent)
+SAX.getEntity(recursive)
+SAX.startElementNs(attributes, NULL, NULL, 0, 2, 0, nmtoken='enti...', 47, nmtokens='Test...', 25)
+SAX.endElementNs(attributes, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att2.sax2 b/result/noent/att2.sax2
new file mode 100644
index 0000000..84aebcb
--- /dev/null
+++ b/result/noent/att2.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(doc, NULL, NULL, 0, 1, 0, attr='to n...', 27)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att3.sax2 b/result/noent/att3.sax2
new file mode 100644
index 0000000..8e7ca86
--- /dev/null
+++ b/result/noent/att3.sax2
@@ -0,0 +1,8 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(select, NULL, NULL, 0, 1, 0, onclick='aaaa...', 17)
+SAX.characters(f, 1)
+SAX.characters( , 2)
+SAX.characters(oo, 2)
+SAX.endElementNs(select, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att4.sax2 b/result/noent/att4.sax2
new file mode 100644
index 0000000..553148c
--- /dev/null
+++ b/result/noent/att4.sax2
@@ -0,0 +1,36976 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( edited with XML Spy v4.4 U (http://www.xmlspy.com) by Slava (GIVC) )
+SAX.startElementNs(electroxml, NULL, NULL, 0, 1, 0, modified='2002...', 15)
+SAX.characters(
+	, 2)
+SAX.startElementNs(data, NULL, NULL, 0, 2, 0, from='2002...', 11, to='2002...', 11)
+SAX.characters(
+		, 3)
+SAX.startElementNs(select, NULL, NULL, 0, 0, 0)
+SAX.characters(
+			, 4)
+SAX.startElementNs(device, NULL, NULL, 0, 1, 0, serialnumb='E000...', 9)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1134...', 6, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1693...', 8, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='199....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='200....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='201....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='199....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='220"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='222"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='220"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='219"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='217....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='224....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='219"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='221"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='217....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='219"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='222"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='224....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='219"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='221"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='225....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='225"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='224....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='190"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='122....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='354....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='333....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='323....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='278....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='286....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='292....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='21.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='273....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='272....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='285....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='28.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='68.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='147....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='95.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='89.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='88.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='92.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='149....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='148....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='127....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='198....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='203....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='124....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='159....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='230....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='79.8...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='51.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='22.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='323....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='341....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='46.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='71.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='71.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='63.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='76.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='58.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='92"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='79.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='63.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='51.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='81.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='205....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='96.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='95.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='96.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='92.8...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='91.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='86.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='270"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='270....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='296....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='306....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='331....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='13.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='46.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='262....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='143....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='127....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='132....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='128....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='155....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='172....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='202....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='99.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='130....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='132....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='121....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='100....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='153....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='155....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='167....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='159....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='165"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='156....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='162....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='154....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='157....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='203....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='212....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='162"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='149....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='136....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='145....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='164....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='158....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='163"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='147....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='163"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='177....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='161"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='174....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='203....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='158....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='172....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='172....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='138"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='135....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='157....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='170"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='167"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='172....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='164....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='151....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='158....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='207....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='214....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='213....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='210....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='162....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='156....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='153....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='143....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='153....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='169....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='139....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='142....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='122....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='125....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='110....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='110....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='190....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='99.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='209....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='76.2...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='61.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='44.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='44.2...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='60.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='64.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='67.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='341....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='115....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='117....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='252....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='261....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='313....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='311....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='292"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='57.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='151....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='92.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='93.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='100....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='97.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='184"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='289....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='274....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='39.8...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='6.5"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='355....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='19.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='44.2...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='61.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='55.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='60.2...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='71.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='66.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='61.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='38.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='17.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='35.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='44.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='71.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='125"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='176"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='99.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='90"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='273....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='344....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='307....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='271....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='278....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='291....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='52.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='76.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='87.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='174....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='183....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='181....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='201....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='205....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='208....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='194....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='194....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='190....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='191....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='191....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='189....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='201....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='202....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='162....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='181....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='183....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='228....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='229....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='216....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='226....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='249....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='245....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='250....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='251....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='252....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='259....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='254....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='228....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='227....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='214....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='217"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='231....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='230....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='52"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='340....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='18.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='357....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='344....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='338....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='28.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='21.8...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='10.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='343....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='342....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='358....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='353....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='353....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='1.4"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='6.4"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='10.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='350....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='350....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='357....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='181....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='194....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='190....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='195"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='198....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='198....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='199....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='200....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='202....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='200....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='203....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='190....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='164....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='154....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='134....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='154....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='176"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='206....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='216....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='211....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='210....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='211....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='171....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='129....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='157....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='159....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='177....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='183....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='189....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='202....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='184"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='191....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='177....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='169....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='159....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='190....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='160"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='200....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='116....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='162....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='130....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='122"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='183....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='157....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='142....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='145....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='169....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='164....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='158"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='169....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='191....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='167....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='154....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='167"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='146....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='155....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='157....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='189....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='139....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='172"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='189....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='198....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='198....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='180....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='147....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='177....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='172"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='156....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='154....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='157"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='166"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='172....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='202....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='209....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='199....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='159....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='156....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='137....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='146"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='139....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='143....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='137....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='177....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='191....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='146....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1069...', 8, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='8612...', 4, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='25.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='24.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='23.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='26.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='28.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='34.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='40.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='40.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='38.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='35.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='34.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0.04...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0.04...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='36.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='17.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='8.35...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='5.95...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='7.13...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='8.64...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='6.42...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='10.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='14.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='3.54...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='3.8"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='6.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='5.20...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='7.52...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='11.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='0.95...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='5.77...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='22.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='19.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='1.26...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='3.13...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='6.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='7.27...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='9.37...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='7.71...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='8.18...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='9.84...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='5.25...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='2.64...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='7.17...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='19.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='4.70...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='5.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='5.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='4.40...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='5.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='10.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='5.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='10.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='4.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='5.22...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='6.62...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='2.57...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='3.76...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='2.92...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='4.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='2.44...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='10.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='15.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='10.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='14.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='11.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='7.26...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='3.27...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='12.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='8.86...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='8.42...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='7.50...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='7.80...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='10.9...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='5.74...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='2.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='7.75...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='16.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='18.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='18.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='13.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='14.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='14.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='15.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='20.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='20.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='16.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='17.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='11.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='10.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='8.73...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='4.86...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='4.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='6.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='14.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='9.98...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='11.9...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='15.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='22.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='24.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='23.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='24.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='25.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='24.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='25.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='23.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='19.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='19.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='16.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='16.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='16.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='14.2...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='14.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='9.55...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='9.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='8.33...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='9.77...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='19.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='21.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='19.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='21.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='22.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='20.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='22.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='18.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='16.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='13.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='13.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='8.71...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='8.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='8.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='8.30...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='10.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='14.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='19.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='23.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='20.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='26.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='21.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='22.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='19.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.27...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.20...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.05...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.44...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.15...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.33...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.04...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.08...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.05...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.20...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.15...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.18...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.15...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.30...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.25...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.19...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.30...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.03...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.04...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.17...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.60...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.67...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.72...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.47...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.47...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.49...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.49...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.57...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.62...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='35.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='33.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='35.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='32.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='29.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='30.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='28.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='27.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='28.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='25.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='25.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='30.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='32.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='38.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='64.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='63.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='60.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='57.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='59.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='56.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='60.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='56.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='37.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='40.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='38.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='32.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='30.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='26.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='21.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='20.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='19.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='20.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='25.6...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='29.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='31.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='32.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='32.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='29.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='29.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='29.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='29.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='29.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='10.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='18.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='23.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='25.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='13.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='22.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='20.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='14.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='18.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='14.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='11.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='6.40...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='13.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='18.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='16.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='16.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='17.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='16.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='4.33...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='4.33...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='20.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='22.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='34.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='33.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='32.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='33.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='34.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='36.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='36.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='36.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='37.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='37.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='37.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='32.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='31.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='31.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='15.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='17.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='17.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='16.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='17.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='18.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='32.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='37.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='36.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='37.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='37.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='35.9...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='34.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='31.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='27.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='27.7...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='27.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='9.65...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='8.98...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='8.87...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='11.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='11.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='13.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='12.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='13.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='12.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='12.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='12.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='11.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='11.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='13.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='20.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='17.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='17.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='18.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='19.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='15.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='14.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='14.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='10.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='10.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='10.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='12.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='18.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='24.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='27.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='31.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='28.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='26.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='27.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='31.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='30.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='33.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='31.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='27.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='26.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='22.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='21.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='20.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='20.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='17.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='14.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='14.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='13.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='14.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='18.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='22.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='29.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='30.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='31.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='30.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='30.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='29.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='29.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='30.4...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='31.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='28.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='27.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='26.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='24.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='18.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='17.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='16.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='18.4...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='9.83...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='9.73...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='12.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='17.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='17.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='19.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='25.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='28.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='23.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='22.6...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='22.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='27.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='27.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='29.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='27.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='25.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='25.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='21.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='19.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='15.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='13.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='15.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='18.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='22.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='26.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='34.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='35.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='36.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='34.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='32.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='33.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='31.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='36.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='30.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='28.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='28.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='27.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='26.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='21.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='20.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='17.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='17.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='17.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='16.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='17.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='20.9...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='25.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='31.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='33.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='82.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='46.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='31.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='30.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='28.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='30.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='31.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='28.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='27.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='24.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='22.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='17.5...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='17.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='18.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='20.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='19.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='18.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='18.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='18.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='18.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='23.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='23.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='26.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='24.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='23.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='23.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='24"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='22.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='26.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='25.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='24.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='23.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='18.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='15.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='8608...', 4, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='8604...', 4, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='20.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='19.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='19.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='18.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='18.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='22.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='24.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='29.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='35.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='35.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='33.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='30.7...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='29.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0.07...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='30.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='10.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='3.83...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='3.30...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='4.19...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='2.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='4.91...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='7.89...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='2.93...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='1.48...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='2.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='1.67...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='5.98...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='10.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='3.65...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='7.25...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='19.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='21.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='18.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='3.45...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='4.91...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='7.33...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='7.20...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='9.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='8.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='7.68...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='8.66...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='7.73...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='5.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='5.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='18.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='4.67...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='3.97...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='2.24...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='2.51...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='4.78...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='10.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='5.86...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='9.66...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='5.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='5.35...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='7.74...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='3.65...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='4.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='3.28...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='5.65...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='2.24...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='12.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='15.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='11.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='15.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='12.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='8.53...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='1.47...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='7.44...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='4.26...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='3.80...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='3.75...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='5.53...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='9.52...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='1.98...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='4.15...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='9.62...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='19.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='19.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='14.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='12.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='13.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='13.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='13.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='13.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='18.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='15.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='15.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='11.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='9.89...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='7.99...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='13.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='6.33...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='5.63...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='7.36...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='14.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='9.67...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='12.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='14.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='21.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='20.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='22.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='22.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='24.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='23.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='23.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='22.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='18.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='18.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='15.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='16.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='15.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='12.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='12.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='8.94...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='8.83...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='8.79...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='10.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='13.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='15.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='19.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='22.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='21.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='23.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='20.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='18.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='20.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='19.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='21.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='23.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='21.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='19.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='20.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='17.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='16.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='13.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='12.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='8.96...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='8.31...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='8.35...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='8.49...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='10.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='13.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='15.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='18.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='22.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='19.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='23.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='20.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='19.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='20.8...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='18.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0.02...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0.02...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.26...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.12...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.16...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.22...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.24...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.41...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.15...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.14...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.30...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.20...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.09...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.03...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.25...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.22...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.04...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.15...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.12...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.18...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.28...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.15...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.24...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.18...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.29...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.04...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.07...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.17...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.22...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.57...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.63...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.67...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.45...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.46...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.47...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.48...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.56...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.59...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='34.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='33.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='34.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='31.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='26.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='26.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='28.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='24.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='28.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='30.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='35.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='61.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='61.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='58.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='54.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='56.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='53.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='57.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='53.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='36.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='36.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='35.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='29.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='28.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='25.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='19.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='19.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='19.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='18.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='18.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='20.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='27.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='29.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='27.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='30.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='29.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='28.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='28.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='28.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='28.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='28.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='11.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='14.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='19.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='20.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='11.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='12.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='16.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='15.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='9.95...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='12.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='12.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='9.68...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='6.80...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='4.55...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='10.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='14.6...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='14.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='13.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='15.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='13.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='12.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='3.99...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='2.18...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='16.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='15.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='29.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='27.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='25.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='24.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='25.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='28.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='28.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='28.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='30.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='30.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='30.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='24.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='23.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='23.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='15.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='16.6...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='16.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='16.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='16.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='27.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='31.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='31.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='32.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='31.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='30.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='29.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='27.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='23.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='23.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='23.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='8.57...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='7.91...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='7.85...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='9.84...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='10.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='11.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='11.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='12.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='11.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='11.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='10.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='10.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='10.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='13.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='19.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='16.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='15.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='15.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='15.7...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='16.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='13.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='11.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='11.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='9.24...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='8.96...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='9.42...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='11.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='18.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='15.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='23.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='26.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='29.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='25.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='25.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='26.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='30.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='30.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='28.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='24.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='23.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='19.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='18.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='15.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='13.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='13.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='12.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='13.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='17.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='25.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='27.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='28.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='27.6...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='27.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='27.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='28.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='27.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='26.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='25.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='24.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='24.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='16.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='14.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='18.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='10.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='10.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='13.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='17.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='15.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='17.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='24.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='26.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='27.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='22.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='21.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='20.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='25.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='25.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='27.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='25.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='24.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='23.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='20.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='18.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='14.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='14.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='14.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='13.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='13.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='15.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='17.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='20.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='24.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='32.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='34.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='34.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='31.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='29.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='30.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='29.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='34.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='28.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='25.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='26.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='24.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='24.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='20.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='18.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='15.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='15.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='15.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='15.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='19.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='20.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='23.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='29.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='31.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='75.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='41.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='29.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='28.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='27.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='28.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='29.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='26.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='25.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='23.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='21.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='20.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='16.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='16.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='17.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='16.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='16.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='17.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='18.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='18.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='22.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='22.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='25.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='23.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='21.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='23.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='23.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='22.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='18.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='14.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='9812...', 4, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='114....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='109....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='124....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='127....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='118....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='116....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='114....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='114....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='125....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='127....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='128....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='127....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='127....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='127....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='124....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='124....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='121....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='115....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='124....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='125....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='119....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='9808...', 4, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='9804...', 4, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='109....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='125....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='127....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='112....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='114....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='114....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='121....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='124....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='128....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='126....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='125....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='116....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='125....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='123....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='118....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='114....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='124....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4406...', 6, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-127...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-148...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-156...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-164...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-144...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-127...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-104...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-169...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-176...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-166...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-206...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-199...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-192...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-201...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-184...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-631...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='1564...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='-66"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='-393...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='-691...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='-883...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='-157...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='-220...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='109"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='-420...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='-859...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='-628...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='516"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='1839...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='293"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='1185...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='3946...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='4230...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='3689...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='248"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='430"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='1026...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-526...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-258...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-65"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-489...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-842...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='1082...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='310"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-111...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='3632...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='513"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='214"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='-292...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='-127...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='495"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='1815...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='818"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='1539...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='680"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='712"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='1280...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='397"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='493"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='250"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='785"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-201...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='2156...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='2937...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='2107...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='2824...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='2269...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='1441...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='-297...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='-228...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='-118...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='-964...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='-442...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='261"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1309...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-849...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='178"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='1111...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='2750...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='2769...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='2973...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='1327...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='454"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='199"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='167"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='556"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='416"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-370...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-115...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='93"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-843...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='171"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-646...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-723...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='2665...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='837"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='698"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='1097...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='2649...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-495...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='1165...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='542"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='1871...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='979"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='1210...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-356...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='1654...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='1368...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='1462...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='1612...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='1309...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='1886...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='1136...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='1169...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='1403...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='1316...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-104...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-119...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-160...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-199...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-252...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='585"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='1069...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='1973...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='1831...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='1127...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='1767...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='1343...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='1564...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='849"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='805"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='1093...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='880"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='1254...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='2664...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='1368...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='1009...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='208"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='22"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='1142...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='286"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-116...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='712"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='227"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='236"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='372"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='1441...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='2015...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='1211...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='1284...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='369"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-310...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-802...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='781"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='491"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='1023...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='516"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='2"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='2"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='2274...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='1775...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='1153...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='769"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-846...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-236...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-296...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-251...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-244...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-286...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-227...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-125...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-716...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-148...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-200...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-105...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-978...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-126...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-317...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-266...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-254...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-237...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='1219...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-106...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-151...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-128...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-190...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-162...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-778...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-173...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-174...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-187...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-120...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-211...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='1619...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-764...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-827...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='40"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-199...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-967...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-680...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-385...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-241...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='371"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='471"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='61"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-244...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-344...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-386...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-165...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-227...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-413...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-373...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-265...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-328...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-337...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-270...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-797...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-204...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-279...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-193...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-209...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-221...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-267...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-253...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='453"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='-157...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='1143...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='-146...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='-100...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='-140...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='2949...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='2229...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='1022...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='-162...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='-183...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='-211...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='-767...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='-792...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='173"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='776"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='1249...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='-957...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='-911...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='-243...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-65"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-308...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-811...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-806...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-952...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-716...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-161...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-191...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-180...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-222...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-227...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-231...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-228...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-233...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-186...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-213...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-220...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-296...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-449...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-142...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-422...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-365...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-581...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-263...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-325...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-142...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-355...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-310...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='496"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='660"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='1246...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='2889...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='1532...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-143...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-518...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='225"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-166...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-233...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-172...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-148...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-151...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-476...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-193...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='128"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='376"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='2872...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='408"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='1923...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='1830...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='1798...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='334"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='1260...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='1815...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='2272...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='262"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-387...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-613...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-251...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-885...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='551"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='48"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-982...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-161...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-381...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-441...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='71"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='1020...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='760"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-319...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-114...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='302"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-319...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-582...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='408"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='1031...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1139...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='2082...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-120...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='622"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='456"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-736...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-818...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='1684...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='307"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-801...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-125...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='3308...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='506"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='639"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='1963...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='2867...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-831...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-270...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='2010...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='3408...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='3190...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-187...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-225...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='531"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-823...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='62"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='1079...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='1547...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='900"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='112"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='1780...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='1407...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='298"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='565"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-311...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-657...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='168"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='647"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='1427...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='829"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='-5"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='1197...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='3751...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='2991...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='2801...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-118...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-828...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-799...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='57"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='4601...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='1911...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='799"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-972...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-708...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-790...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-490...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-131...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-825...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-101...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-117...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-35"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='1352...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='1059...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='1290...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='2079...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='3618...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-468...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-247...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-556...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='189"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='260"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='816"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='2489...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='2732...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='2234...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='57"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='1219...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='632"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-136...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='38"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-980...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-150...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-211...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-161...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-131...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-432...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='309"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='685"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='1692...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='1899...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='3622...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='2709...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='3037...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='2898...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='3251...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='186"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-636...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-421...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-729...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-978...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='2670...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='1255...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-496...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4246...', 6, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-431...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-416...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-410...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-409...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-398...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-393...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-443...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-532...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-629...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-733...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-754...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-724...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-686...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-645...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-646...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-354...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='-986...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='697"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='776"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='925"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='125"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='456"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='903"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='278"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='27"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='43"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='173"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='947"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='728"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='-452...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='-117...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='23"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='182"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='-152...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='-423...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='-705...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='-790...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-157...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-202...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-172...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-190...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='-741...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='-812...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-891...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='652"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='411"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='516"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='398"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='382"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='470"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='591"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='267"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='770"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='164"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='438"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='-43"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='72"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='249"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='201"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='115"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-425...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='-229...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='-284...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='-247...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='-135...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='-54"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='96"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='16"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='598"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='721"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='818"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='1067...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1245...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-117...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='-721...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='-150...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='-208...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='-255...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='-234...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='-292...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='-271...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='-285...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='-292...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='-280...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='-303...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-401...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-391...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='-341...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-344...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='-256...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-213...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-176...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='-465...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='-702...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='-647...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='-676...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='-509...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-215...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='-235...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='-317...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='-403...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='-433...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='-465...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-466...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='-434...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='-457...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='-492...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='-460...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='-486...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='-389...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='-378...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='-298...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='-309...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-333...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-268...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-252...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-207...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='-178...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='-207...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='-269...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='-393...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='-440...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='-436...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='-469...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='-392...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='-410...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='-418...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='-434...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='-416...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='-413...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='-449...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='-388...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='-329...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='-286...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-266...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='-177...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='-181...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='-182...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='-180...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='-159...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='-205...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='-296...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='-483...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-429...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-525...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='-440...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='-432...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='-442...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='-395...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='-686...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='-679...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='-725...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='-673...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-603...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-589...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-606...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-548...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-544...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-533...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-498...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-519...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-631...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-683...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-785...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-135...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-133...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-127...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-118...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-123...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-117...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-126...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-118...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='-747...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-812...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-769...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-653...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-617...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-566...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-448...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-426...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-411...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-410...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-451...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='-513...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-603...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-639...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='-589...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-669...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-660...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-615...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-612...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-622...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='-604...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='-600...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='-229...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-254...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-308...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-326...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-226...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-215...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-153...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-167...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-960...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-106...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-505...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-536...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-991...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-181...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-257...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-284...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-260...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-292...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-211...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-207...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='354"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='438"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='3408...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='3269...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='3655...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='3521...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='5431...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='5560...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='5660...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='5623...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='5896...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='6656...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='6647...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='6733...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='6914...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='6873...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='6691...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='5814...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='5617...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='5608...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-323...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-365...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-344...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-360...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-373...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-599...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-671...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-658...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-676...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-680...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-652...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-617...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-567...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-491...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-491...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-480...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-181...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-183...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-225...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-232...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-268...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-267...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-277...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-268...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-265...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-255...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='-235...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='-231...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='-258...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='-281...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='-318...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-357...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-354...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='-314...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-334...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-313...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-280...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-250...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-249...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-215...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-213...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='-215...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='-249...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='-236...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='-351...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='-456...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='-534...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='-605...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='-579...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='-534...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='-539...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='-597...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='-609...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-677...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-637...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-547...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-538...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='-460...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='-431...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-405...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-386...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-348...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-311...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-301...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='-294...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='-281...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='-364...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-449...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-579...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='-619...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-617...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-610...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='-621...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='-589...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='-598...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='-563...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-621...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='-578...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='-572...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-553...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-540...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='-460...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='-387...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-361...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-329...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='-168...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='-207...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='-205...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='-167...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-348...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-391...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='-457...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='-478...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='-469...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-483...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-465...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-539...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='-553...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='-586...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='-522...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='-516...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='-525...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='-438...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='-421...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='-401...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='-322...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-331...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-318...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='-297...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='-294...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='-293...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='-357...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='-454...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='-511...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='-573...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='-651...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='-677...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-675...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-636...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-654...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='-627...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='-540...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='-579...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='-564...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-574...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-544...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-544...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-455...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-401...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-348...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-361...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-355...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-340...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='-360...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='-402...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='-418...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='-499...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='-581...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='-559...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-152...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-869...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-457...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='-631...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='-610...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='-575...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='-576...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='-564...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='-524...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='-556...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='-487...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='-461...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-461...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='-361...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-346...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-356...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-367...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-361...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-386...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='-396...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='-388...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='-438...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='-427...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='-396...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='-400...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='-356...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='-387...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='-356...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='-469...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-519...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-521...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-503...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-496...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='-404...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='-370...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-321...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4382...', 6, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-110...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-128...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-135...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-142...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-124...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-110...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-909...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-147...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-152...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-143...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-178...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-168...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-174...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-159...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-500...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='1379...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='-45"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='-346...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='-580...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='-752...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='-136...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='-190...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='101"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='-366...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='-740...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='-550...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='432"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='1595...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='275"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='1019...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='3444...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='3629...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='3203...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='215"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='380"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='890"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-446...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-200...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-44"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-424...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-718...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='946"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='276"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-944...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='3129...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='453"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='194"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='-246...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='-122...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='430"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='1582...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='720"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='1333...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='588"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='642"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='1096...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='313"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='374"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='204"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='692"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-196...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='1888...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='2502...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='1840...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='2437...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='1930...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='1219...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='-250...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='-197...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='-102...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='-107...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='-388...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='229"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1131...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-726...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='166"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='965"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='2341...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='2354...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='2565...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='1136...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='367"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='173"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='156"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='460"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='358"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-308...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-100...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='93"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-723...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='147"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-551...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-626...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='2316...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='714"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='600"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='953"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='2267...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-403...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='999"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='475"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='1663...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='829"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='1055...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-314...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='1431...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='1201...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='1280...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='1431...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='1145...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='1635...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='957"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='1019...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='1219...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='1143...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-893...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-101...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-138...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-182...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-220...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='502"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='940"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='1719...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='1592...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='960"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='1537...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='1177...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='1337...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='737"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='723"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='917"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='794"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='1075...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='2328...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='1192...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='867"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='184"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='12"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='978"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='256"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-100...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='614"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='205"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='195"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='316"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='1241...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='1748...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='1046...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='1099...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='309"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-202...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-722...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='680"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='440"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='870"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='475"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='2"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='1959...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='1506...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='1027...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='677"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-759...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-204...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-255...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-217...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-212...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-248...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-107...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-524...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-136...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-893...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-845...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-114...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-271...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-229...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-220...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-203...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-997...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='1048...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-955...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-133...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-162...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-141...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-671...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-150...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-151...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-161...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-103...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-192...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='1397...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-627...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-711...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='20"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-130...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-843...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-642...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-320...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-210...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='295"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='417"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='37"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-210...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-298...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-332...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-143...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-357...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-323...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-228...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-284...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-294...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-234...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-171...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-668...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-176...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-241...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-172...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-183...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-188...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-234...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-217...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='374"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='-132...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='993"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='-150...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='-843...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='-119...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='2577...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='1582...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='909"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='-140...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='-159...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='-186...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='-658...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='-679...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='89"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='680"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='1095...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='-832...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='-785...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='-228...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-40"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-280...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-697...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-697...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-811...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-629...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-140...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-166...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-157...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-192...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-197...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-201...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-200...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-161...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-185...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-190...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-251...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-386...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-121...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-365...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-313...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-506...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-232...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-288...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-121...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-310...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-245...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='439"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='609"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='1078...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='2491...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='1327...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-115...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-442...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='203"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-143...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-201...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-149...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-128...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-130...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-409...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-162...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='90"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='319"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='2483...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='357"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='1681...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='1572...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='1575...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='302"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='1076...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='1555...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='1971...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='239"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-351...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-527...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-215...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-782...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='452"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='60"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-848...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-138...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-989...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-325...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-382...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='60"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='884"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='659"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-264...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-990...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='289"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-292...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-542...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='366"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='909"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='992"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='1808...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-104...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='543"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='377"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-619...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-712...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='1459...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='257"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-696...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-108...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='2873...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='421"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='557"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='1696...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='2480...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-707...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-237...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='1730...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='2990...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='2746...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-174...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-194...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='485"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-729...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='70"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='907"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='1297...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='776"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='123"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='1557...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='1208...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='253"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='508"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-274...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-571...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='146"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='567"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='1222...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='733"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='8"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='1041...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='3222...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='2576...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='2422...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-103...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-746...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-661...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='45"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='3983...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='1694...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='709"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-844...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-605...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-661...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-436...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-115...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-716...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-877...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-102...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='1185...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='884"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='1103...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='1789...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='3132...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-403...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-211...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-498...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='174"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='210"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='710"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='2127...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='2386...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='1916...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='1070...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='564"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-118...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='34"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-847...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-131...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-184...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-140...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-372...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='269"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='572"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='1413...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='1586...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='3161...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='2347...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='2627...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='2502...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='2818...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='158"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-545...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-370...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-624...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-847...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='2315...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='1099...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-417...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4222...', 6, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-416...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-409...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-408...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-396...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-396...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-441...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-535...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-631...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-729...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-751...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-735...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-689...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-646...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-632...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-351...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='-963...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='644"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='700"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='942"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='99"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='464"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='912"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='289"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='32"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='46"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='200"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='921"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='744"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='-561...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='-68"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='31"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='142"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='-123...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='-451...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='-729...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='-712...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-158...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-189...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='-827...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='-882...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-899...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='644"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='417"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='524"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='400"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='372"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='484"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='591"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='336"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='741"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='114"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='507"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='-51"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='136"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='334"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='235"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='116"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-417...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='-232...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='-184...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='-219...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='-134...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='-51"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='143"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='11"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='600"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='644"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='836"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='1068...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1213...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-135...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='-755...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='-149...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='-201...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='-256...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='-233...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='-289...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='-278...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='-291...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='-291...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='-283...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='-301...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-409...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-397...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='-337...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-342...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='-255...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-218...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='-477...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='-709...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='-653...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='-653...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='-468...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-211...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='-223...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='-319...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='-408...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='-455...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-462...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='-460...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='-485...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='-461...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='-481...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='-424...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='-391...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='-380...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='-302...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='-303...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-329...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-268...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-253...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-208...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='-207...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='-272...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='-401...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='-432...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='-433...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='-472...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='-433...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='-390...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='-411...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='-432...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='-434...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='-416...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='-435...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='-416...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='-389...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='-328...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='-286...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-266...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='-182...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='-178...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='-158...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='-208...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='-288...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='-355...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='-483...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-432...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-539...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='-427...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='-435...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='-390...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='-684...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='-684...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='-727...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='-671...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-604...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-587...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-606...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-548...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-543...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-534...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-498...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-519...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-632...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-692...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-788...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-134...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-133...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-128...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-119...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-124...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-116...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-125...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-119...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='-756...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-810...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-767...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-656...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-616...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-566...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-447...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-425...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-412...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-412...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-449...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='-513...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-596...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-635...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='-596...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-661...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-661...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-619...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-623...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-631...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='-607...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='-607...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='-239...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-260...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-305...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-333...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-223...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-213...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-154...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-167...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-969...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-107...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-481...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-537...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-995...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-181...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-263...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-292...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-259...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-289...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-217...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-209...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='311"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='399"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='3486...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='3357...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='3670...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='3580...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='5398...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='5478...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='5618...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='5659...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='5923...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='6651...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='6654...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='6713...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='6885...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='6893...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='6705...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='5853...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='5545...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='5589...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-321...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-347...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-363...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-372...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-603...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-675...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-664...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-677...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-679...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-659...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-613...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-565...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-491...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-490...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-480...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-197...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-182...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-182...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-227...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-233...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-264...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-264...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-274...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-272...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-258...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-254...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='-237...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='-233...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='-256...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='-278...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='-319...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-358...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-359...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='-312...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-333...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-314...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-280...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-248...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-249...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-217...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-213...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='-215...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='-250...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='-239...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='-346...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='-451...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='-535...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='-591...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='-577...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='-528...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='-538...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='-597...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='-610...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-674...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-631...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-553...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-545...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='-463...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='-434...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-404...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-385...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-351...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-313...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-301...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='-290...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='-282...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='-368...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-450...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-584...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='-619...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-616...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-614...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='-622...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='-593...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='-592...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='-555...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-624...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='-575...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='-577...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-546...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-539...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='-454...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='-387...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-329...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='-168...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='-208...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='-204...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='-167...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='-178...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-349...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-408...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='-481...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='-440...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='-462...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-482...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-464...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='-443...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-539...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='-555...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='-588...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='-520...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='-520...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='-525...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='-434...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='-419...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='-399...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='-319...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-332...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-319...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='-296...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='-295...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='-291...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='-456...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='-501...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='-579...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='-660...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='-678...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-673...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-643...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-641...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='-626...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='-537...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='-570...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='-566...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-581...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-549...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-536...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-453...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-400...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-348...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-359...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-357...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-342...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='-361...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='-406...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='-420...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='-497...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='-584...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='-566...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-151...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-862...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-460...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='-632...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='-612...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='-581...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='-580...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='-562...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='-531...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='-554...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='-491...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='-458...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-467...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='-369...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-349...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-358...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-368...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-360...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-368...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-385...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='-392...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='-395...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='-446...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='-425...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='-391...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='-389...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='-353...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='-379...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='-454...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-517...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-503...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-502...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-502...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='-399...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='-355...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-320...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6746...', 6, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='2212...', 155)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6738...', 6, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0:0:...', 147)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6734...', 6, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='7289...', 176)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6730...', 6, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0:0:...', 87)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::1...', 258)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::5...', 185)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='6::1...', 186)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='6::1...', 201)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='629:...', 257)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='2289...', 258)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='1954...', 292)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='2.48...', 279)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.00...', 304)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='5016...', 313)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1243...', 68)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='8197...', 288)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='8270...', 280)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='6511...', 268)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='3280...', 278)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='8226...', 56)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 162)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='273:...', 298)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='16::...', 298)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='14::...', 323)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0::0...', 306)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.03...', 294)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0::0...', 223)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0::0...', 28)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1413...', 268)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='303:...', 270)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='5304...', 297)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1514...', 280)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1776...', 61)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::4...', 265)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::8...', 208)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='8::1...', 206)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='8::1...', 222)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='2::4...', 228)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='0::0...', 292)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='4757...', 350)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='3.74...', 307)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0::0...', 234)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='1113...', 339)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='3972...', 63)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1295...', 285)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='3876...', 321)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='6481...', 322)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='7162...', 331)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='5709...', 61)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 157)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='1070...', 279)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='1231...', 208)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0::0...', 237)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.03...', 296)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0::0...', 146)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0::0...', 28)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='9208...', 271)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='0::0...', 25)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1314...', 7, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='2703...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1313...', 7, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='3066...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1313...', 7, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='1576...', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1313...', 7, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='1270...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::1...', 324)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='2226...', 336)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='2243...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='2261...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='2937...', 336)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='3974...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='4804...', 369)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='5025...', 523)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='5025...', 490)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='5944...', 361)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1369...', 78)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1748...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='2118...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='2325...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='2434...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='2668...', 70)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 165)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='2745...', 327)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='5015...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='9659...', 415)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1317...', 573)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1317...', 539)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='1382...', 386)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1443...', 78)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1627...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='1747...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='2013...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='2534...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='3009...', 70)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::4...', 328)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='7309...', 336)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='7346...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='7382...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='8444...', 336)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='9988...', 377)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='2254...', 421)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1520...', 573)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1520...', 540)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='4071...', 386)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='7095...', 78)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='7709...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='8856...', 400)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1085...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1306...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1537...', 79)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 160)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='4546...', 306)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='1353...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='1715...', 374)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1715...', 526)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1715...', 486)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='1715...', 338)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1715...', 68)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='2636...', 367)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='1270...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1270...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1270...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1270...', 70)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3460...', 5, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='6094...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='6116...', 432)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='6117...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='6117...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='6123...', 432)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='6134...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='6142...', 449)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1448...', 572)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1448...', 543)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='6154...', 434)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='6231...', 88)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='6269...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='6306...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='6327...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='6338...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='6361...', 79)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3380...', 5, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='8817...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='8817...', 480)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='8817...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='8817...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='8818...', 480)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='8822...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='8827...', 495)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1111...', 570)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1112...', 552)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='8831...', 482)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='8832...', 98)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='8834...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='8835...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='8838...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='8843...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='8848...', 88)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3340...', 5, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='9437...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='9510...', 432)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='9511...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='9511...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='9522...', 432)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='9537...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='9663...', 449)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='8980...', 518)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='8983...', 507)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='9844...', 466)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1014...', 98)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1020...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='1032...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1052...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1074...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1097...', 88)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3300...', 5, h='3dc1...', 8)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='3861...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='3861...', 480)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='3861...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='3861...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='3861...', 480)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='3862...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='3862...', 498)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+					, 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='2297...', 574)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+				, 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+			, 4)
+SAX.endElementNs(device, NULL, NULL)
+SAX.characters(
+		, 3)
+SAX.endElementNs(select, NULL, NULL)
+SAX.characters(
+	, 2)
+SAX.endElementNs(data, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(electroxml, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att5.sax2 b/result/noent/att5.sax2
new file mode 100644
index 0000000..22da39d
--- /dev/null
+++ b/result/noent/att5.sax2
@@ -0,0 +1,149 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.attributeDecl(normId, attr, 8, 3, NULL, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+  , 3)
+SAX.comment( no normalization )
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='   '...', 3)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='   f...', 13)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='  fo...', 8)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' foo...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='foob...', 8)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' & ...', 3)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='   f...', 13)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='  fo...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='&foo...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='foob...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' < ...', 3)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='   f...', 13)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='  fo...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='<foo...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='foob...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='  

+...', 6)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.comment( normalization )
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr=''/>
+...', 0)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo ...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 6)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo ...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 6)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='&...', 1)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo&...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='&foo...', 8)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 8)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='<...', 1)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo<...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='<foo...', 8)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 8)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='

+	...', 3)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters( , 1)
+SAX.comment( PBM serializing back )
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att6.sax2 b/result/noent/att6.sax2
new file mode 100644
index 0000000..54dd6d3
--- /dev/null
+++ b/result/noent/att6.sax2
@@ -0,0 +1,20 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(Invoice, NULL, 'urn:oasis:names:tc:ubl:Invoice:1.0:0.70', 4, xmlns:ccts='urn:oasis:names:tc:ubl:CoreComponentParameters:1.0:0.70', xmlns:cct='urn:oasis:names:tc:ubl:CoreComponentTypes:1.0:0.70', xmlns:cat='urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70', xmlns='urn:oasis:names:tc:ubl:Invoice:1.0:0.70', 0, 0)
+SAX.characters(
+   , 4)
+SAX.startElementNs(ReferencedOrder, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(SellersOrderID, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70', 0, 11, 0, schemeID='pval...', 47, schemeAgencyID='pval...', 53, schemeVersionID='pval...', 54, schemeAgencySchemeID='pval...', 59, schemeAgencySchemeAgencyID='pval...', 65, schemeDataURI='pval...', 52, schemeURI='pval...', 48, UID='pval...', 42, UIDRef='pval...', 45, UIDRefs='pval...', 47, language='pval...', 47)
+SAX.characters(pvalue-, 7)
+SAX.characters(>, 1)
+SAX.characters(ReferencedOrder.SellersOrderID, 30)
+SAX.endElementNs(SellersOrderID, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70')
+SAX.characters(
+   , 4)
+SAX.endElementNs(ReferencedOrder, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70')
+SAX.characters(
+, 1)
+SAX.endElementNs(Invoice, NULL, 'urn:oasis:names:tc:ubl:Invoice:1.0:0.70')
+SAX.endDocument()
diff --git a/result/noent/att7.sax2 b/result/noent/att7.sax2
new file mode 100644
index 0000000..4a5f318
--- /dev/null
+++ b/result/noent/att7.sax2
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(x, , )
+SAX.elementDecl(x, 4, ...)
+SAX.elementDecl(test, 1, ...)
+SAX.attributeDecl(test, att, 1, 1, attvalue, ...)
+SAX.entityDecl(test.ent, 1, (null), (null), <test/>)
+SAX.getEntity(test.ent)
+SAX.externalSubset(x, , )
+SAX.startElementNs(x, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(test, NULL, NULL, 0, 1, 1, att='attv...', 8)
+SAX.endElementNs(test, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.getEntity(test.ent)
+SAX.startElementNs(test, NULL, NULL, 0, 1, 1, att='attv...', 8)
+SAX.endElementNs(test, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(x, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att8.sax2 b/result/noent/att8.sax2
new file mode 100644
index 0000000..1f2344a
--- /dev/null
+++ b/result/noent/att8.sax2
@@ -0,0 +1,29 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(response, ino, 'http://namespaces.softwareag.com/tamino/response2', 2, xmlns:ino='http://namespaces.softwareag.com/tamino/response2', xmlns:xql='http://metalab.unc.edu/xql/', 2, 0, ino:sessionid='556"...', 3, ino:sessionkey='1590...', 10)
+SAX.startElementNs(query, xql, 'http://metalab.unc.edu/xql/', 0, 0, 0)
+SAX.characters(/bsk:DocPart[@docId=, 20)
+SAX.characters(', 1)
+SAX.characters(20040308152601345236, 20)
+SAX.characters(', 1)
+SAX.characters( and @docPartNo=1], 18)
+SAX.endElementNs(query, xql, 'http://metalab.unc.edu/xql/')
+SAX.startElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 1, 0, ino:returnvalue='0"><...', 1)
+SAX.startElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 0, 0)
+SAX.characters(XQL Request processing, 22)
+SAX.endElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2')
+SAX.endElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2')
+SAX.startElementNs(result, xql, 'http://metalab.unc.edu/xql/', 0, 0, 0)
+SAX.startElementNs(DocPart, bsk, 'http://www.heitec.net/sara4/tamino/basket', 1, xmlns:bsk='http://www.heitec.net/sara4/tamino/basket', 3, 0, docId='2004...', 20, docPartNo='1" i...', 1, ino:id='1529...', 5)
+SAX.startElementNs(File, bsk, 'http://www.heitec.net/sara4/tamino/basket', 0, 2, 0, name='4898...', 13, size='7519...', 5)
+SAX.characters( , 1)
+SAX.endElementNs(File, bsk, 'http://www.heitec.net/sara4/tamino/basket')
+SAX.endElementNs(DocPart, bsk, 'http://www.heitec.net/sara4/tamino/basket')
+SAX.endElementNs(result, xql, 'http://metalab.unc.edu/xql/')
+SAX.startElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 1, 0, ino:returnvalue='0"><...', 1)
+SAX.startElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 0, 0)
+SAX.characters(XQL Request processed, 21)
+SAX.endElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2')
+SAX.endElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2')
+SAX.endElementNs(response, ino, 'http://namespaces.softwareag.com/tamino/response2')
+SAX.endDocument()
diff --git a/result/noent/att9.sax2 b/result/noent/att9.sax2
new file mode 100644
index 0000000..09b3a04
--- /dev/null
+++ b/result/noent/att9.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.attributeDecl(doc, a1, 8, 1, 1 2, ...)
+SAX.elementDecl(doc, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 1, 1, a1='1 2...', 3)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/attrib.xml.sax2 b/result/noent/attrib.xml.sax2
new file mode 100644
index 0000000..c7d2c87
--- /dev/null
+++ b/result/noent/attrib.xml.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(item, NULL, NULL, 0, 5, 0, title='Icro...', 173, url='http...', 24, first_time='9850...', 9, last_time='9850...', 9, visits='1"/>...', 1)
+SAX.endElementNs(item, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/badcomment.xml.sax2 b/result/noent/badcomment.xml.sax2
new file mode 100644
index 0000000..08e5622
--- /dev/null
+++ b/result/noent/badcomment.xml.sax2
@@ -0,0 +1,24 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(foo, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.comment( def='NT-Char')
+SAX.comment(>Char</nt>* ']]&gt;' <nt def='NT-Char'>Char</nt>*))
+']]&gt;'</rhs>
+<com>CDATA sections</com>
+<rhs>| '&lt;!DOCTYPE' 
+(<nt def="NT-Char">Char</nt> - ('[' | ']'))+
+('[' 
+<nt def="NT-simpleDTD">simpleDTD</nt>*
+']')? '&gt;'</rhs>
+<com>doc type declaration</com>
+<prod id="NT-simpleDTD"><lhs>simpleDTD</lhs>
+<rhs>'&lt;!&como;' 
+(<nt def='NT-Char'>Char</nt>* - 
+(<nt def='NT-Char'>Char</nt>* '&comc;' <nt def='NT-Char'>Char</nt>*))
+'&comc;&gt;'</rhs>)
+SAX.characters(
+, 1)
+SAX.endElementNs(foo, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/bigentname.xml.sax2 b/result/noent/bigentname.xml.sax2
new file mode 100644
index 0000000..1067843
--- /dev/null
+++ b/result/noent/bigentname.xml.sax2
@@ -0,0 +1,15 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.entityDecl(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name, 1, (null), (null), "Yes")
+SAX.getEntity(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name)
+SAX.entityDecl(WhatHeSaid, 1, (null), (null), He said &very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name;)
+SAX.getEntity(WhatHeSaid)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.getEntity(WhatHeSaid)
+SAX.characters(He said , 8)
+SAX.getEntity(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name)
+SAX.characters("Yes", 5)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/bigname.xml.sax2 b/result/noent/bigname.xml.sax2
new file mode 100644
index 0000000..ef939f9
--- /dev/null
+++ b/result/noent/bigname.xml.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(this_is_a_very_large_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(this_is_a_very_large_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/bigname2.xml.sax2 b/result/noent/bigname2.xml.sax2
new file mode 100644
index 0000000..6b406f4
--- /dev/null
+++ b/result/noent/bigname2.xml.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(start_nc_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix, 'http://www.example.com/testns/', 1, xmlns:this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix='http://www.example.com/testns/', 0, 0)
+SAX.endElementNs(start_nc_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix, 'http://www.example.com/testns/')
+SAX.endDocument()
diff --git a/result/noent/cdata-2-byte-UTF-8.xml b/result/noent/cdata-2-byte-UTF-8.xml
new file mode 100644
index 0000000..8552efc
--- /dev/null
+++ b/result/noent/cdata-2-byte-UTF-8.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+<p><![CDATA[ ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+</doc>
diff --git a/result/noent/cdata-2-byte-UTF-8.xml.sax2 b/result/noent/cdata-2-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..2da2d50
--- /dev/null
+++ b/result/noent/cdata-2-byte-UTF-8.xml.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(ČČČČČČČČČČ, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ČČČČČČČČČÄ, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/cdata-3-byte-UTF-8.xml b/result/noent/cdata-3-byte-UTF-8.xml
new file mode 100644
index 0000000..b959a12
--- /dev/null
+++ b/result/noent/cdata-3-byte-UTF-8.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[  牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+</doc>
diff --git a/result/noent/cdata-3-byte-UTF-8.xml.sax2 b/result/noent/cdata-3-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..3969579
--- /dev/null
+++ b/result/noent/cdata-3-byte-UTF-8.xml.sax2
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(牛牛牛牛牛牛ç‰, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( 牛牛牛牛牛牛ç, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(  牛牛牛牛牛牛, 1202)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/cdata-4-byte-UTF-8.xml b/result/noent/cdata-4-byte-UTF-8.xml
new file mode 100644
index 0000000..4d1d9a8
--- /dev/null
+++ b/result/noent/cdata-4-byte-UTF-8.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[  🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[   🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+</doc>
diff --git a/result/noent/cdata-4-byte-UTF-8.xml.sax2 b/result/noent/cdata-4-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..5e07d83
--- /dev/null
+++ b/result/noent/cdata-4-byte-UTF-8.xml.sax2
@@ -0,0 +1,28 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(🍦🍦🍦🍦🍦, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( 🍦🍦🍦🍦ðŸ, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(  🍦🍦🍦🍦ðŸ, 1202)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(   🍦🍦🍦🍦ð, 1203)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/cdata.sax2 b/result/noent/cdata.sax2
new file mode 100644
index 0000000..117b2b0
--- /dev/null
+++ b/result/noent/cdata.sax2
@@ -0,0 +1,10 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.pcdata(<greeting>Hello, wor, 34)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/cdata2.sax2 b/result/noent/cdata2.sax2
new file mode 100644
index 0000000..d1420e9
--- /dev/null
+++ b/result/noent/cdata2.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(collection, NULL, NULL, 0, 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(test, NULL, NULL, 0, 0, 0)
+SAX.pcdata(
+    <![CDATA[abc], 18)
+SAX.characters(], 1)
+SAX.characters(>, 1)
+SAX.pcdata(
+  , 3)
+SAX.endElementNs(test, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(collection, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/comment.xml.sax2 b/result/noent/comment.xml.sax2
new file mode 100644
index 0000000..da57f50
--- /dev/null
+++ b/result/noent/comment.xml.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.comment( document start )
+SAX.characters(
+, 1)
+SAX.startElementNs(empty, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(empty, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.comment( document end )
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/comment2.xml.sax2 b/result/noent/comment2.xml.sax2
new file mode 100644
index 0000000..a286744
--- /dev/null
+++ b/result/noent/comment2.xml.sax2
@@ -0,0 +1,13 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( document start )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(empty, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(empty, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.comment( document end )
+SAX.endDocument()
diff --git a/result/noent/comment3.xml.sax2 b/result/noent/comment3.xml.sax2
new file mode 100644
index 0000000..a5f1fd6
--- /dev/null
+++ b/result/noent/comment3.xml.sax2
@@ -0,0 +1,167 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( test of very very long comments and buffer limits
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+)
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/comment4.xml.sax2 b/result/noent/comment4.xml.sax2
new file mode 100644
index 0000000..0e2611f
--- /dev/null
+++ b/result/noent/comment4.xml.sax2
@@ -0,0 +1,8 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( test of non ascii comments like là et très )
+SAX.comment(à another one )
+SAX.comment( another one à)
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/comment5.xml.sax2 b/result/noent/comment5.xml.sax2
new file mode 100644
index 0000000..f0940b2
--- /dev/null
+++ b/result/noent/comment5.xml.sax2
@@ -0,0 +1,12 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( test of hyphen and line break handling
+     some text - interrupted -
+- - - - - - - - - - - - - - - - - - - - - -
+                      this should stop here^
+
+
+)
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/comment6.xml.sax2 b/result/noent/comment6.xml.sax2
new file mode 100644
index 0000000..7dd7dc0
--- /dev/null
+++ b/result/noent/comment6.xml.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment(
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+)
+SAX.internalSubset(a, , )
+SAX.elementDecl(a, 1, ...)
+SAX.externalSubset(a, , )
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(a, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dav1.sax2 b/result/noent/dav1.sax2
new file mode 100644
index 0000000..44ad11c
--- /dev/null
+++ b/result/noent/dav1.sax2
@@ -0,0 +1,81 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(BoxType, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.characters(Box type A, 10)
+SAX.endElementNs(BoxType, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+      , 7)
+SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+      , 7)
+SAX.startElementNs(author, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(Name, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.characters(J.J. Dingleheimerschmidt, 24)
+SAX.endElementNs(Name, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+      , 7)
+SAX.endElementNs(author, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(DingALing, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.endElementNs(DingALing, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+      , 7)
+SAX.startElementNs(Random, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.endElementNs(Random, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 403 Forbidden, 22)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters( The user does not have access, 64)
+SAX.endElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters( There has been an access viol, 44)
+SAX.endElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav10.sax2 b/result/noent/dav10.sax2
new file mode 100644
index 0000000..e93e22c
--- /dev/null
+++ b/result/noent/dav10.sax2
@@ -0,0 +1,12 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(owner, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.ics.uci.edu/~ejw/co, 40)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(owner, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav11.sax2 b/result/noent/dav11.sax2
new file mode 100644
index 0000000..d0f2329
--- /dev/null
+++ b/result/noent/dav11.sax2
@@ -0,0 +1,62 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(activelock, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(write, 5)
+SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(exclusive, 9)
+SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.endElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(owner, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+		http://www.ics.uci.edu/~ejw, 46)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(owner, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(timeout, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Second-604800, 13)
+SAX.endElementNs(timeout, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+	   opaquelocktoken:xyz122393, 59)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(activelock, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav12.sax2 b/result/noent/dav12.sax2
new file mode 100644
index 0000000..61715b6
--- /dev/null
+++ b/result/noent/dav12.sax2
@@ -0,0 +1,6 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(http://www.ics.uci.edu/~ejw/co, 40)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav13.sax2 b/result/noent/dav13.sax2
new file mode 100644
index 0000000..f6c5381
--- /dev/null
+++ b/result/noent/dav13.sax2
@@ -0,0 +1,46 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+	   http://webdav.sb.aol.com/, 66)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+	   http://webdav.sb.aol.com/, 54)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 202 Accepted, 21)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/blah, 19)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 403 Forbidden, 22)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav15.sax2 b/result/noent/dav15.sax2
new file mode 100644
index 0000000..6040cd1
--- /dev/null
+++ b/result/noent/dav15.sax2
@@ -0,0 +1,76 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:F='http://www.foocorp.com/Project/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(Source, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(projfiles, F, 'http://www.foocorp.com/Project/', 0, 0, 0)
+SAX.characters(Source, 6)
+SAX.endElementNs(projfiles, F, 'http://www.foocorp.com/Project/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(src, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/program, 22)
+SAX.endElementNs(src, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(dst, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/src/main.c, 25)
+SAX.endElementNs(dst, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(link, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(projfiles, F, 'http://www.foocorp.com/Project/', 0, 0, 0)
+SAX.characters(Library, 7)
+SAX.endElementNs(projfiles, F, 'http://www.foocorp.com/Project/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(src, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/program, 22)
+SAX.endElementNs(src, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(dst, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/src/main.lib, 27)
+SAX.endElementNs(dst, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(link, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(projfiles, F, 'http://www.foocorp.com/Project/', 0, 0, 0)
+SAX.characters(Makefile, 8)
+SAX.endElementNs(projfiles, F, 'http://www.foocorp.com/Project/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(src, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/program, 22)
+SAX.endElementNs(src, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(dst, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/src/makefile, 27)
+SAX.endElementNs(dst, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(link, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(Source, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav16.sax2 b/result/noent/dav16.sax2
new file mode 100644
index 0000000..1ede22e
--- /dev/null
+++ b/result/noent/dav16.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(propfind, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(lockdiscovery, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(lockdiscovery, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(propfind, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav17.sax2 b/result/noent/dav17.sax2
new file mode 100644
index 0000000..48185a2
--- /dev/null
+++ b/result/noent/dav17.sax2
@@ -0,0 +1,78 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(activelock, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+          , 11)
+SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(write, 5)
+SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(exclusive, 9)
+SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+            , 13)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.com/doc/, 19)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(owner, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Jane Smith, 10)
+SAX.endElementNs(owner, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(timeout, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Infinite, 8)
+SAX.endElementNs(timeout, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+            , 13)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(iamuri:unique!!!!!, 18)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+        , 9)
+SAX.endElementNs(activelock, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav18.sax2 b/result/noent/dav18.sax2
new file mode 100644
index 0000000..cddc100
--- /dev/null
+++ b/result/noent/dav18.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(propfind, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(supportedlock, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(supportedlock, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(propfind, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav19.sax2 b/result/noent/dav19.sax2
new file mode 100644
index 0000000..f0dd402
--- /dev/null
+++ b/result/noent/dav19.sax2
@@ -0,0 +1,62 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(supportedlock, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+          , 11)
+SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Write, 5)
+SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Exclusive, 9)
+SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+        , 9)
+SAX.endElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+          , 11)
+SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Write, 5)
+SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Shared, 6)
+SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+        , 9)
+SAX.endElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(supportedlock, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav2.sax2 b/result/noent/dav2.sax2
new file mode 100644
index 0000000..22c7bb0
--- /dev/null
+++ b/result/noent/dav2.sax2
@@ -0,0 +1,84 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, S, 'http://www.ietf.org/standards/dav/', 2, xmlns:S='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/, 29)
+SAX.endElementNs(href, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(BoxType, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(Box type A, 10)
+SAX.endElementNs(BoxType, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(author, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(Name, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(Hadrian, 7)
+SAX.endElementNs(Name, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(author, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/i, 39)
+SAX.endElementNs(href, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(BoxType, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(Box type B, 10)
+SAX.endElementNs(BoxType, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, S, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav3.sax2 b/result/noent/dav3.sax2
new file mode 100644
index 0000000..0088f29
--- /dev/null
+++ b/result/noent/dav3.sax2
@@ -0,0 +1,63 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/, 29)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(author, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.endElementNs(author, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/i, 39)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav4.sax2 b/result/noent/dav4.sax2
new file mode 100644
index 0000000..58fb8ac
--- /dev/null
+++ b/result/noent/dav4.sax2
@@ -0,0 +1,51 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(propertyupdate, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:Z='http://www.w3.com/standards/z39.50/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(set, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(authors, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.characters(Jim Whitehead, 13)
+SAX.endElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.characters(Roy Fielding, 12)
+SAX.endElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(authors, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(set, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(remove, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.endElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(remove, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(propertyupdate, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav5.sax2 b/result/noent/dav5.sax2
new file mode 100644
index 0000000..6062cca
--- /dev/null
+++ b/result/noent/dav5.sax2
@@ -0,0 +1,54 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:Z='http://www.w3.com/standards/z39.50/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(Authors, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.endElementNs(Authors, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 420 Method Failure, 27)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.endElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 409 Conflict, 21)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters( Copyright Owner can not be de, 47)
+SAX.endElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav6.sax2 b/result/noent/dav6.sax2
new file mode 100644
index 0000000..31952c5
--- /dev/null
+++ b/result/noent/dav6.sax2
@@ -0,0 +1,66 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.microsoft.com/user/, 55)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(collection, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.endElementNs(collection, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      http://www.microsoft.co, 66)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.endElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav7.sax2 b/result/noent/dav7.sax2
new file mode 100644
index 0000000..1d51e74
--- /dev/null
+++ b/result/noent/dav7.sax2
@@ -0,0 +1,60 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/', 1, xmlns:d='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/r, 38)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/r, 38)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 200 OK, 15)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/, 29)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 420 Method Failure, 27)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/r, 38)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 412 Precondition Fail, 32)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav8.sax2 b/result/noent/dav8.sax2
new file mode 100644
index 0000000..7de547e
--- /dev/null
+++ b/result/noent/dav8.sax2
@@ -0,0 +1,54 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/', 1, xmlns:d='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 43)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 43)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 34)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 39)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 201 Created, 20)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 37)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 412 Precondition Fail, 32)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav9.sax2 b/result/noent/dav9.sax2
new file mode 100644
index 0000000..26e4942
--- /dev/null
+++ b/result/noent/dav9.sax2
@@ -0,0 +1,70 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/', 1, xmlns:d='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/r, 38)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/r, 38)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/, 29)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/C, 34)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 201 Created, 20)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/C, 31)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 420 Method Failure, 27)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 36)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 409 Conflict, 21)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/defattr.xml.sax2 b/result/noent/defattr.xml.sax2
new file mode 100644
index 0000000..dfeba49
--- /dev/null
+++ b/result/noent/defattr.xml.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 1, ...)
+SAX.attributeDecl(doc, xmlns, 1, 4, http://www.example.com/, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, 'http://www.example.com/', 1, xmlns='http://www.example.com/', 0, 0)
+SAX.endElementNs(doc, NULL, 'http://www.example.com/')
+SAX.endDocument()
diff --git a/result/noent/defattr2.xml.sax2 b/result/noent/defattr2.xml.sax2
new file mode 100644
index 0000000..0f77271
--- /dev/null
+++ b/result/noent/defattr2.xml.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 1, ...)
+SAX.attributeDecl(doc, defatt, 9, 1, 0, ...)
+SAX.attributeDecl(doc, xmlns:tst, 1, 4, http://example.org, ...)
+SAX.attributeDecl(doc, tst:att, 9, 1, 1, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 1, xmlns:tst='http://example.org', 3, 2, att='1"/>...', 1, defatt='0...', 1, tst:att='1...', 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dia1.sax2 b/result/noent/dia1.sax2
new file mode 100644
index 0000000..4821c9b
--- /dev/null
+++ b/result/noent/dia1.sax2
@@ -0,0 +1,323 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='back...', 10)
+SAX.characters(
+      , 7)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 2, 0, name='Back...', 10, visible='true...', 4)
+SAX.characters(
+    , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O0">...', 2)
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+        , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.9,...', 15)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='conn...', 14)
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+        , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+        , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+        , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='star...', 11)
+SAX.characters(
+        , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='end_...', 9)
+SAX.characters(
+        , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, handle='1" t...', 1, to='O2" ...', 2, connection='3"/>...', 1)
+SAX.endElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O1">...', 2)
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+        , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.57...', 27)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='text...', 4)
+SAX.characters(
+        , 9)
+SAX.startElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, type='text...', 4)
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='stri...', 6)
+SAX.characters(
+            , 13)
+SAX.startElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='sdfs...', 7)
+SAX.endElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='font...', 4)
+SAX.characters(
+            , 13)
+SAX.startElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='Cour...', 7)
+SAX.endElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='heig...', 6)
+SAX.characters(
+            , 13)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='pos"...', 3)
+SAX.characters(
+            , 13)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='colo...', 5)
+SAX.characters(
+            , 13)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='alig...', 9)
+SAX.characters(
+            , 13)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+        , 9)
+SAX.endElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 14, version='0" i...', 1, id='O2">...', 2)
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+        , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 20)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11)
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 10)
+SAX.characters(
+        , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.05...', 4)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11)
+SAX.characters(
+        , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2"/>...', 1)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12)
+SAX.characters(
+        , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12)
+SAX.characters(
+        , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='inne...', 11)
+SAX.characters(
+        , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+        , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+, 1)
+SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.endDocument()
diff --git a/result/noent/dia2.sax2 b/result/noent/dia2.sax2
new file mode 100644
index 0000000..4821c9b
--- /dev/null
+++ b/result/noent/dia2.sax2
@@ -0,0 +1,323 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='back...', 10)
+SAX.characters(
+      , 7)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+  , 3)
+SAX.startElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 2, 0, name='Back...', 10, visible='true...', 4)
+SAX.characters(
+    , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O0">...', 2)
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+        , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.9,...', 15)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='conn...', 14)
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+        , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+        , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+        , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='star...', 11)
+SAX.characters(
+        , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='end_...', 9)
+SAX.characters(
+        , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, handle='1" t...', 1, to='O2" ...', 2, connection='3"/>...', 1)
+SAX.endElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O1">...', 2)
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+        , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.57...', 27)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='text...', 4)
+SAX.characters(
+        , 9)
+SAX.startElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, type='text...', 4)
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='stri...', 6)
+SAX.characters(
+            , 13)
+SAX.startElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='sdfs...', 7)
+SAX.endElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='font...', 4)
+SAX.characters(
+            , 13)
+SAX.startElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='Cour...', 7)
+SAX.endElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='heig...', 6)
+SAX.characters(
+            , 13)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='pos"...', 3)
+SAX.characters(
+            , 13)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='colo...', 5)
+SAX.characters(
+            , 13)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='alig...', 9)
+SAX.characters(
+            , 13)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+          , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+        , 9)
+SAX.endElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 14, version='0" i...', 1, id='O2">...', 2)
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+        , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 20)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11)
+SAX.characters(
+        , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 10)
+SAX.characters(
+        , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.05...', 4)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11)
+SAX.characters(
+        , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2"/>...', 1)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12)
+SAX.characters(
+        , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12)
+SAX.characters(
+        , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='inne...', 11)
+SAX.characters(
+        , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+        , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+    , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+, 1)
+SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.endDocument()
diff --git a/result/noent/dtd1.sax2 b/result/noent/dtd1.sax2
new file mode 100644
index 0000000..47be5e0
--- /dev/null
+++ b/result/noent/dtd1.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(MEMO, -//SGMLSOURCE//DTD MEMO//EN, http://www.sgmlsource.com/dtds/memo.dtd)
+SAX.externalSubset(MEMO, -//SGMLSOURCE//DTD MEMO//EN, http://www.sgmlsource.com/dtds/memo.dtd)
+SAX.startElementNs(MEMO, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.endElementNs(MEMO, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd10.sax2 b/result/noent/dtd10.sax2
new file mode 100644
index 0000000..7f15a09
--- /dev/null
+++ b/result/noent/dtd10.sax2
@@ -0,0 +1,21 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 4, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.elementDecl(c, 3, ...)
+SAX.elementDecl(d, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(b, NULL, NULL)
+SAX.startElementNs(c, NULL, NULL, 0, 0, 0)
+SAX.characters( is a, 5)
+SAX.endElementNs(c, NULL, NULL)
+SAX.startElementNs(d, NULL, NULL, 0, 0, 0)
+SAX.characters( valid document, 15)
+SAX.endElementNs(d, NULL, NULL)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd11.sax2 b/result/noent/dtd11.sax2
new file mode 100644
index 0000000..a9cae5d
--- /dev/null
+++ b/result/noent/dtd11.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 3, ...)
+SAX.attributeDecl(doc, val, 1, 3, NULL, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 1, 0, val='v1"/...', 2)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd12.sax2 b/result/noent/dtd12.sax2
new file mode 100644
index 0000000..53206d4
--- /dev/null
+++ b/result/noent/dtd12.sax2
@@ -0,0 +1,15 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.entityDecl(YN, 1, (null), (null), "Yes")
+SAX.getEntity(YN)
+SAX.entityDecl(WhatHeSaid, 1, (null), (null), He said &YN;)
+SAX.getEntity(WhatHeSaid)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.getEntity(WhatHeSaid)
+SAX.characters(He said , 8)
+SAX.getEntity(YN)
+SAX.characters("Yes", 5)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd13.sax2 b/result/noent/dtd13.sax2
new file mode 100644
index 0000000..b631501
--- /dev/null
+++ b/result/noent/dtd13.sax2
@@ -0,0 +1,10 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( comment before the DTD )
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 2, ...)
+SAX.externalSubset(doc, , )
+SAX.comment( comment after the DTD )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd2.sax2 b/result/noent/dtd2.sax2
new file mode 100644
index 0000000..ff6b568
--- /dev/null
+++ b/result/noent/dtd2.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(This is a valid document !, 26)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd3.sax2 b/result/noent/dtd3.sax2
new file mode 100644
index 0000000..9625ad5
--- /dev/null
+++ b/result/noent/dtd3.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 2, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(This is a valid document !, 26)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd4.sax2 b/result/noent/dtd4.sax2
new file mode 100644
index 0000000..8366d48
--- /dev/null
+++ b/result/noent/dtd4.sax2
@@ -0,0 +1,8 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 1, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd5.sax2 b/result/noent/dtd5.sax2
new file mode 100644
index 0000000..f48c01c
--- /dev/null
+++ b/result/noent/dtd5.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 3, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(a, NULL, NULL)
+SAX.characters( is a , 6)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters(valid, 5)
+SAX.endElementNs(b, NULL, NULL)
+SAX.characters( document, 9)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd6.sax2 b/result/noent/dtd6.sax2
new file mode 100644
index 0000000..6e78924
--- /dev/null
+++ b/result/noent/dtd6.sax2
@@ -0,0 +1,19 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 4, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(a, NULL, NULL)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters( is a valid, 11)
+SAX.endElementNs(b, NULL, NULL)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.characters( document, 9)
+SAX.endElementNs(a, NULL, NULL)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd7.sax2 b/result/noent/dtd7.sax2
new file mode 100644
index 0000000..4a47191
--- /dev/null
+++ b/result/noent/dtd7.sax2
@@ -0,0 +1,16 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 4, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(a, NULL, NULL)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters( is a valid document, 20)
+SAX.endElementNs(b, NULL, NULL)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd8.sax2 b/result/noent/dtd8.sax2
new file mode 100644
index 0000000..d38b60d
--- /dev/null
+++ b/result/noent/dtd8.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 4, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.elementDecl(c, 3, ...)
+SAX.elementDecl(d, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(b, NULL, NULL)
+SAX.startElementNs(c, NULL, NULL, 0, 0, 0)
+SAX.characters( is a valid document, 20)
+SAX.endElementNs(c, NULL, NULL)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd9.sax2 b/result/noent/dtd9.sax2
new file mode 100644
index 0000000..a5b537f
--- /dev/null
+++ b/result/noent/dtd9.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 4, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.elementDecl(c, 3, ...)
+SAX.elementDecl(d, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(b, NULL, NULL)
+SAX.startElementNs(d, NULL, NULL, 0, 0, 0)
+SAX.characters( is a valid document, 20)
+SAX.endElementNs(d, NULL, NULL)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ebcdic_566012.xml.sax2 b/result/noent/ebcdic_566012.xml.sax2
new file mode 100644
index 0000000..b8a4ce0
--- /dev/null
+++ b/result/noent/ebcdic_566012.xml.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(test, NULL, NULL, 0, 1, 0, attr='ÄÖ...', 6)
+SAX.endElementNs(test, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/emptycdata.xml.sax2 b/result/noent/emptycdata.xml.sax2
new file mode 100644
index 0000000..7f80296
--- /dev/null
+++ b/result/noent/emptycdata.xml.sax2
@@ -0,0 +1,10 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(html, NULL, 'http://www.w3.org/1999/xhtml', 1, xmlns='http://www.w3.org/1999/xhtml', 0, 0)
+SAX.characters(
+, 1)
+SAX.pcdata(, 0)
+SAX.characters(
+, 1)
+SAX.endElementNs(html, NULL, 'http://www.w3.org/1999/xhtml')
+SAX.endDocument()
diff --git a/result/noent/ent1.sax2 b/result/noent/ent1.sax2
new file mode 100644
index 0000000..9f270ef
--- /dev/null
+++ b/result/noent/ent1.sax2
@@ -0,0 +1,15 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(EXAMPLE, , example.dtd)
+SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language)
+SAX.getEntity(xml)
+SAX.externalSubset(EXAMPLE, , example.dtd)
+SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.getEntity(xml)
+SAX.characters(Extensible Markup Language, 26)
+SAX.characters(
+, 1)
+SAX.endElementNs(EXAMPLE, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent10.sax2 b/result/noent/ent10.sax2
new file mode 100644
index 0000000..4b86bfb
--- /dev/null
+++ b/result/noent/ent10.sax2
@@ -0,0 +1,30 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(rnode, , )
+SAX.elementDecl(rnode, 4, ...)
+SAX.elementDecl(f, 3, ...)
+SAX.attributeDecl(f, att1, 1, 4, J, ...)
+SAX.entityDecl(f, 1, (null), (null), 
+   <f>
+   hello world
+   </f>
+   )
+SAX.getEntity(f)
+SAX.externalSubset(rnode, , )
+SAX.startElementNs(rnode, NULL, NULL, 0, 0, 0)
+SAX.characters(
+   , 4)
+SAX.getEntity(f)
+SAX.ignorableWhitespace(
+   , 4)
+SAX.startElementNs(f, NULL, NULL, 0, 1, 1, att1='J...', 1)
+SAX.characters(
+   hello world
+   , 19)
+SAX.endElementNs(f, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.characters(
+, 1)
+SAX.endElementNs(rnode, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent11.sax2 b/result/noent/ent11.sax2
new file mode 100644
index 0000000..5c2c916
--- /dev/null
+++ b/result/noent/ent11.sax2
Binary files differ
diff --git a/result/noent/ent12.sax2 b/result/noent/ent12.sax2
new file mode 100644
index 0000000..fd5c71e
--- /dev/null
+++ b/result/noent/ent12.sax2
@@ -0,0 +1,20 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(root, , )
+SAX.entityDecl(foo, 1, (null), (null), abc)
+SAX.getEntity(foo)
+SAX.entityDecl(bar, 1, (null), (null), def)
+SAX.getEntity(bar)
+SAX.externalSubset(root, , )
+SAX.getEntity(foo)
+SAX.startElementNs(root, NULL, NULL, 0, 1, 0, attribute='abc...', 3)
+SAX.characters(
+   , 4)
+SAX.startElementNs(element, NULL, NULL, 0, 0, 0)
+SAX.getEntity(bar)
+SAX.characters(def, 3)
+SAX.endElementNs(element, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(root, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent13.sax2 b/result/noent/ent13.sax2
new file mode 100644
index 0000000..9add146
--- /dev/null
+++ b/result/noent/ent13.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(test, , )
+SAX.entityDecl(ampproblem, 1, (null), (null), &amp;)
+SAX.getEntity(ampproblem)
+SAX.externalSubset(test, , )
+SAX.getEntity(ampproblem)
+SAX.startElementNs(t, NULL, NULL, 0, 1, 0, a='&...', 1)
+SAX.characters(a, 1)
+SAX.endElementNs(t, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent2.sax2 b/result/noent/ent2.sax2
new file mode 100644
index 0000000..88c6aa6
--- /dev/null
+++ b/result/noent/ent2.sax2
@@ -0,0 +1,37 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(EXAMPLE, , example.dtd)
+SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language)
+SAX.getEntity(xml)
+SAX.entityDecl(title, 2, -//MY-TITLE//FR, title.xml, (null))
+SAX.unparsedEntityDecl(image, (null), img.gif, GIF)
+SAX.externalSubset(EXAMPLE, , example.dtd)
+SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0)
+SAX.characters(
+  , 3)
+SAX.getEntity(title)
+SAX.ignorableWhitespace(
+, 1)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(my title, 8)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.ignorableWhitespace(
+, 1)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(my title, 8)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.characters(
+  This text is about XML, the, 31)
+SAX.getEntity(xml)
+SAX.characters(Extensible Markup Language, 26)
+SAX.characters( and this is an embedded , 25)
+SAX.startElementNs(IMG, NULL, NULL, 0, 1, 0, src='imag...', 5)
+SAX.endElementNs(IMG, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(EXAMPLE, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent3.sax2 b/result/noent/ent3.sax2
new file mode 100644
index 0000000..96f605f
--- /dev/null
+++ b/result/noent/ent3.sax2
@@ -0,0 +1,12 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(EXAMPLE, , example.dtd)
+SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language)
+SAX.getEntity(xml)
+SAX.externalSubset(EXAMPLE, , example.dtd)
+SAX.getEntity(xml)
+SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 2, 0, prop1='a&b...', 3, prop2='Exte...', 26)
+SAX.characters(
+  Test of entities in attribu, 35)
+SAX.endElementNs(EXAMPLE, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent4.sax2 b/result/noent/ent4.sax2
new file mode 100644
index 0000000..b0a6b08
--- /dev/null
+++ b/result/noent/ent4.sax2
@@ -0,0 +1,16 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(EXAMPLE, , example.dtd)
+SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language)
+SAX.getEntity(xml)
+SAX.externalSubset(EXAMPLE, , example.dtd)
+SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0)
+SAX.characters(
+  Test of , 11)
+SAX.characters(&, 1)
+SAX.characters(amp; behaviour a, 16)
+SAX.characters(&, 1)
+SAX.characters(b .
+, 4)
+SAX.endElementNs(EXAMPLE, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent5.sax2 b/result/noent/ent5.sax2
new file mode 100644
index 0000000..f7251e4
--- /dev/null
+++ b/result/noent/ent5.sax2
@@ -0,0 +1,13 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    This is an inverted excla, 42)
+SAX.characters(¡, 2)
+SAX.characters(
+    This is a space , 21)
+SAX.characters( , 1)
+SAX.characters( 
+, 2)
+SAX.endElementNs(EXAMPLE, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent6.sax2 b/result/noent/ent6.sax2
new file mode 100644
index 0000000..a70d0bb
--- /dev/null
+++ b/result/noent/ent6.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.entityDecl(lt, 1, (null), (null), &#60;)
+SAX.getEntity(lt)
+SAX.entityDecl(gt, 1, (null), (null), >)
+SAX.getEntity(gt)
+SAX.entityDecl(amp, 1, (null), (null), &#38;)
+SAX.getEntity(amp)
+SAX.entityDecl(apos, 1, (null), (null), ')
+SAX.getEntity(apos)
+SAX.entityDecl(quot, 1, (null), (null), ")
+SAX.getEntity(quot)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent7.sax2 b/result/noent/ent7.sax2
new file mode 100644
index 0000000..3228de3
--- /dev/null
+++ b/result/noent/ent7.sax2
@@ -0,0 +1,17 @@
+xmlSAXUserParseFile returned error 27
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(item, , )
+SAX.entityDecl(sampleEnt, 4, (null), (null), <!ELEMENT item (para)+>)
+SAX.getParameterEntity(sampleEnt)
+SAX.entityDecl(sampleEnt, 1, (null), (null), the hyacinth girl)
+SAX.getEntity(sampleEnt)
+SAX.getParameterEntity(sampleEnt)
+SAX.error: PEReference: %sampleEnt; not found
+SAX.characters('they called me , 16)
+SAX.getEntity(sampleEnt)
+SAX.error: Entity 'sampleEnt' not defined
+SAX.reference(sampleEnt)
+SAX.characters(', 1)
+SAX.endDocument()
+xmlSAXUserParseFile returned error 27
diff --git a/result/noent/ent8.sax2 b/result/noent/ent8.sax2
new file mode 100644
index 0000000..c8418fa
--- /dev/null
+++ b/result/noent/ent8.sax2
@@ -0,0 +1,35 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.entityDecl(test1, 1, (null), (null), test 1)
+SAX.getEntity(test1)
+SAX.entityDecl(test2, 1, (null), (null), test 2)
+SAX.getEntity(test2)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+   , 4)
+SAX.startElementNs(Content, NULL, NULL, 0, 0, 0)
+SAX.characters(Reten, 5)
+SAX.characters(ç, 2)
+SAX.characters(ã, 2)
+SAX.characters(o, 1)
+SAX.endElementNs(Content, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(Content, NULL, NULL, 0, 0, 0)
+SAX.characters(<, 1)
+SAX.characters(>, 1)
+SAX.endElementNs(Content, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(Content, NULL, NULL, 0, 0, 0)
+SAX.getEntity(test1)
+SAX.characters(test 1, 6)
+SAX.getEntity(test2)
+SAX.characters(test 2, 6)
+SAX.endElementNs(Content, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent9.sax2 b/result/noent/ent9.sax2
new file mode 100644
index 0000000..442333e
--- /dev/null
+++ b/result/noent/ent9.sax2
@@ -0,0 +1,308 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.entityDecl(test1, 1, (null), (null), <a/>,<b/>,<c/>,<d/>)
+SAX.getEntity(test1)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+   , 4)
+SAX.startElementNs(ent, NULL, NULL, 0, 0, 0)
+SAX.getEntity(test1)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(a, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(b, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(c, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(c, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(d, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(d, NULL, NULL)
+SAX.endElementNs(ent, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(ent, NULL, NULL, 0, 0, 0)
+SAX.getEntity(test1)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(a, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(b, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(c, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(c, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(d, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(d, NULL, NULL)
+SAX.endElementNs(ent, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent_738805.xml.sax2 b/result/noent/ent_738805.xml.sax2
new file mode 100644
index 0000000..d8a4f1e
--- /dev/null
+++ b/result/noent/ent_738805.xml.sax2
@@ -0,0 +1,54 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(somedoc, , )
+SAX.entityDecl(a, 1, (null), (null), something)
+SAX.getEntity(a)
+SAX.entityDecl(b, 1, (null), (null), &a;)
+SAX.getEntity(b)
+SAX.externalSubset(somedoc, , )
+SAX.startElementNs(somedoc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+
+, 2)
+SAX.getEntity(b)
+SAX.getEntity(a)
+SAX.startElementNs(somebeacon, NULL, NULL, 0, 1, 0, someattribute='some...', 9)
+SAX.endElementNs(somebeacon, NULL, NULL)
+SAX.characters(
+
+, 2)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters( should appear after colon: , 28)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters(
+, 1)
+SAX.getEntity(b)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters( should appear after colon: , 28)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters(
+, 1)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters( should appear after colon: , 28)
+SAX.getEntity(b)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters(
+, 1)
+SAX.getEntity(b)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters( should appear after colon: , 28)
+SAX.getEntity(b)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters(
+
+, 2)
+SAX.endElementNs(somedoc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/eve.xml.sax2 b/result/noent/eve.xml.sax2
new file mode 100644
index 0000000..ea3b430
--- /dev/null
+++ b/result/noent/eve.xml.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(spec, -//testspec//, dtds/eve.dtd)
+SAX.entityDecl(iso6.doc.date, 1, (null), (null), 29-May-1999)
+SAX.getEntity(iso6.doc.date)
+SAX.externalSubset(spec, -//testspec//, dtds/eve.dtd)
+SAX.startElementNs(spec, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.endElementNs(spec, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/icu_parse_test.xml b/result/noent/icu_parse_test.xml
new file mode 100644
index 0000000..031a967
--- /dev/null
+++ b/result/noent/icu_parse_test.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<foo>
+Text with EUC-JP chars at position 214 (0xd6)
+___
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______é®Äé___
+_</foo>
diff --git a/result/noent/icu_parse_test.xml.sax2 b/result/noent/icu_parse_test.xml.sax2
new file mode 100644
index 0000000..eb0d6c6
--- /dev/null
+++ b/result/noent/icu_parse_test.xml.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(foo, NULL, NULL, 0, 0, 0)
+SAX.characters(
+Text with EUC-JP chars at pos, 170)
+SAX.characters(駪槗___
+_, 11)
+SAX.endElementNs(foo, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/intsubset.xml.sax2 b/result/noent/intsubset.xml.sax2
new file mode 100644
index 0000000..f4db2a8
--- /dev/null
+++ b/result/noent/intsubset.xml.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(root, , )
+SAX.elementDecl(root, 1, ...)
+SAX.comment(  " )
+SAX.externalSubset(root, , )
+SAX.startElementNs(root, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(root, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/intsubset2.xml.sax2 b/result/noent/intsubset2.xml.sax2
new file mode 100644
index 0000000..5558701
--- /dev/null
+++ b/result/noent/intsubset2.xml.sax2
@@ -0,0 +1,286 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(kanjidic2, , )
+SAX.comment( Version 1.3
+	This is the DTD of the XML-format kanji file combining information from
+	the KANJIDIC and KANJD212 files. It is intended to be largely self-
+	documenting, with each field being accompanied by an explanatory
+	comment.
+
+	The file covers the following kanji:
+	(a) the 6,355 kanji from JIS X 0208;
+	(b) the 5,801 kanji from JIS X 0212;
+	(c) the 3,625 kanji from JIS X 0213 as follows:
+		(i) the 2,741 kanji which are also in JIS X 0212 have
+		JIS X 0213 code-points (kuten) added to the existing entry;
+		(ii) the 884 "new" kanji have new entries.
+
+	At the end of the explanation for a number of fields there is a tag
+	with the format [N]. This indicates the leading letter(s) of the
+	equivalent field in the KANJIDIC and KANJD212 files.
+
+	The KANJIDIC documentation should also be read for additional 
+	information about the information in the file.
+	)
+SAX.elementDecl(kanjidic2, 4, ...)
+SAX.elementDecl(header, 4, ...)
+SAX.comment(
+	The single header element will contain identification information
+	about the version of the file 
+	)
+SAX.elementDecl(file_version, 3, ...)
+SAX.comment(
+	This field denotes the version of kanjidic2 structure, as more
+	than one version may exist.
+	)
+SAX.elementDecl(database_version, 3, ...)
+SAX.comment(
+	The version of the file, in the format YYYY-NN, where NN will be
+	a number starting with 01 for the first version released in a
+	calendar year, then increasing for each version in that year.
+	)
+SAX.elementDecl(date_of_creation, 3, ...)
+SAX.comment(
+	The date the file was created in international format (YYYY-MM-DD).
+	)
+SAX.elementDecl(character, 4, ...)
+SAX.elementDecl(literal, 3, ...)
+SAX.comment(
+	The character itself in UTF8 coding.
+	)
+SAX.elementDecl(codepoint, 4, ...)
+SAX.comment( 
+	The codepoint element states the code of the character in the various
+	character set standards.
+	)
+SAX.elementDecl(cp_value, 3, ...)
+SAX.comment( 
+	The cp_value contains the codepoint of the character in a particular
+	standard. The standard will be identified in the cp_type attribute.
+	)
+SAX.attributeDecl(cp_value, cp_type, 1, 2, NULL, ...)
+SAX.comment( 
+	The cp_type attribute states the coding standard applying to the
+	element. The values assigned so far are:
+		jis208 - JIS X 0208-1997 - kuten coding (nn-nn)
+		jis212 - JIS X 0212-1990 - kuten coding (nn-nn)
+		jis213 - JIS X 0213-2000 - kuten coding (p-nn-nn)
+		ucs - Unicode 4.0 - hex coding (4 or 5 hexadecimal digits)
+	)
+SAX.elementDecl(radical, 4, ...)
+SAX.elementDecl(rad_value, 3, ...)
+SAX.comment( 
+	The radical number, in the range 1 to 214. The particular
+	classification type is stated in the rad_type attribute.
+	)
+SAX.attributeDecl(rad_value, rad_type, 1, 2, NULL, ...)
+SAX.comment( 
+	The rad_type attribute states the type of radical classification.
+		classical - as recorded in the KangXi Zidian.
+		nelson - as used in the Nelson "Modern Japanese-English 
+		Character Dictionary" (i.e. the Classic, not the New Nelson).
+		This will only be used where Nelson reclassified the kanji.
+	)
+SAX.elementDecl(misc, 4, ...)
+SAX.elementDecl(grade, 3, ...)
+SAX.comment( 
+	The Jouyou Kanji grade level. 1 through 6 indicate the grade in which
+	the kanji is taught in Japanese schools. 8 indicates it is one of the
+	remaining Jouyou Kanji to be learned in junior high school, and 9 
+	indicates it is a Jinmeiyou (for use in names) kanji. [G]
+	)
+SAX.elementDecl(stroke_count, 3, ...)
+SAX.comment( 
+	The stroke count of the kanji, including the radical. If more than 
+	one, the first is considered the accepted count, while subsequent ones 
+	are common miscounts. (See Appendix E. of the KANJIDIC documentation
+	for some of the rules applied when counting strokes in some of the 
+	radicals.) [S]
+	)
+SAX.elementDecl(variant, 3, ...)
+SAX.comment( 
+	A cross-reference code to another kanji, usually regarded as a variant.
+	The type of cross-reference is given in the var_type attribute.
+	)
+SAX.attributeDecl(variant, var_type, 1, 2, NULL, ...)
+SAX.comment( 
+	The var_type attribute indicates the type of variant code. The current
+	values are: 
+		jis208 - in JIS X 0208 - kuten coding
+		jis212 - in JIS X 0212 - kuten coding
+		jis213 - in JIS X 0213 - kuten coding
+		deroo - De Roo number - numeric
+		njecd - Halpern NJECD index number - numeric
+		s_h - The Kanji Dictionary (Spahn & Hadamitzky) - descriptor
+		nelson - "Classic" Nelson - numeric
+		oneill - Japanese Names (O'Neill) - numeric
+	)
+SAX.elementDecl(freq, 3, ...)
+SAX.comment( 
+	A frequency-of-use ranking. The 2,500 most-used characters have a 
+	ranking; those characters that lack this field are not ranked. The 
+	frequency is a number from 1 to 2,500 that expresses the relative 
+	frequency of occurrence of a character in modern Japanese. This is
+	based on a survey in newspapers, so it is biassed towards kanji
+	used in newspaper articles. The discrimination between the less
+	frequently used kanji is not strong.
+	)
+SAX.elementDecl(rad_name, 3, ...)
+SAX.comment( 
+	When the kanji is itself a radical and has a name, this element
+	contains the name (in hiragana.) [T2]
+	)
+SAX.elementDecl(dic_number, 4, ...)
+SAX.comment( 
+	This element contains the index numbers and similar unstructured
+	information such as page numbers in a number of published dictionaries,
+	and instructional books on kanji.
+	)
+SAX.elementDecl(dic_ref, 3, ...)
+SAX.comment( 
+	Each dic_ref contains an index number. The particular dictionary,
+	etc. is defined by the dr_type attribute.
+	)
+SAX.attributeDecl(dic_ref, dr_type, 1, 2, NULL, ...)
+SAX.comment( 
+	The dr_type defines the dictionary or reference book, etc. to which
+	dic_ref element applies. The initial allocation is:
+	  nelson_c - "Modern Reader's Japanese-English Character Dictionary",  
+	  	edited by Andrew Nelson (now published as the "Classic" 
+	  	Nelson).
+	  nelson_n - "The New Nelson Japanese-English Character Dictionary", 
+	  	edited by John Haig.
+	  halpern_njecd - "New Japanese-English Character Dictionary", 
+	  	edited by Jack Halpern.
+	  halpern_kkld - "Kanji Learners Dictionary" (Kodansha) edited by 
+	  	Jack Halpern.
+	  heisig - "Remembering The  Kanji"  by  James Heisig.
+	  gakken - "A  New Dictionary of Kanji Usage" (Gakken)
+	  oneill_names - "Japanese Names", by P.G. O'Neill. 
+	  oneill_kk - "Essential Kanji" by P.G. O'Neill.
+	  moro - "Daikanwajiten" compiled by Morohashi. For some kanji two
+	  	additional attributes are used: m_vol:  the volume of the
+	  	dictionary in which the kanji is found, and m_page: the page
+	  	number in the volume.
+	  henshall - "A Guide To Remembering Japanese Characters" by
+	  	Kenneth G.  Henshall.
+	  sh_kk - "Kanji and Kana" by Spahn and Hadamitzky.
+	  sakade - "A Guide To Reading and Writing Japanese" edited by
+	  	Florence Sakade.
+	  henshall3 - "A Guide To Reading and Writing Japanese" 3rd
+		edition, edited by Henshall, Seeley and De Groot.
+	  tutt_cards - Tuttle Kanji Cards, compiled by Alexander Kask.
+	  crowley - "The Kanji Way to Japanese Language Power" by
+	  	Dale Crowley.
+	  kanji_in_context - "Kanji in Context" by Nishiguchi and Kono.
+	  busy_people - "Japanese For Busy People" vols I-III, published
+		by the AJLT. The codes are the volume.chapter.
+	  kodansha_compact - the "Kodansha Compact Kanji Guide".
+	)
+SAX.attributeDecl(dic_ref, m_vol, 1, 3, NULL, ...)
+SAX.comment( 
+	See above under "moro".
+	)
+SAX.attributeDecl(dic_ref, m_page, 1, 3, NULL, ...)
+SAX.comment( 
+	See above under "moro".
+	)
+SAX.elementDecl(query_code, 4, ...)
+SAX.comment( 
+	These codes contain information relating to the glyph, and can be used
+	for finding a required kanji. The type of code is defined by the
+	qc_type attribute.
+	)
+SAX.elementDecl(q_code, 3, ...)
+SAX.comment(
+	The q_code contains the actual query-code value, according to the
+	qc_type attribute.
+	)
+SAX.attributeDecl(q_code, qc_type, 1, 2, NULL, ...)
+SAX.comment( 
+	The q_code attribute defines the type of query code. The current values
+	are:
+	  skip -  Halpern's SKIP (System  of  Kanji  Indexing  by  Patterns) 
+	  	code. The  format is n-nn-nn.  See the KANJIDIC  documentation 
+	  	for  a description of the code and restrictions on  the 
+	  	commercial  use  of this data. [P]
+
+	  sh_desc - the descriptor codes for The Kanji Dictionary (Tuttle 
+	  	1996) by Spahn and Hadamitzky. They are in the form nxnn.n,  
+	  	e.g.  3k11.2, where the  kanji has 3 strokes in the 
+	  	identifying radical, it is radical "k" in the SH 
+	  	classification system, there are 11 other strokes, and it is 
+	  	the 2nd kanji in the 3k11 sequence. (I am very grateful to 
+	  	Mark Spahn for providing the list of these descriptor codes 
+	  	for the kanji in this file.) [I]
+	  four_corner - the "Four Corner" code for the kanji. This is a code 
+	  	invented by Wang Chen in 1928. See the KANJIDIC documentation 
+	  	for  an overview of  the Four Corner System. [Q]
+
+	  deroo - the codes developed by the late Father Joseph De Roo, and 
+	  	published in  his book "2001 Kanji" (Bojinsha). Fr De Roo 
+	  	gave his permission for these codes to be included. [DR]
+	  misclass - a possible misclassification of the kanji according
+		to one of the code types. (See the "Z" codes in the KANJIDIC
+		documentation for more details.)
+	  
+	)
+SAX.elementDecl(reading_meaning, 4, ...)
+SAX.comment( 
+	The readings for the kanji in several languages, and the meanings, also
+	in several languages. The readings and meanings are grouped to enable
+	the handling of the situation where the meaning is differentiated by 
+	reading. [T1]
+	)
+SAX.elementDecl(nanori, 3, ...)
+SAX.comment( 
+	Japanese readings that are now only associated with names.
+	)
+SAX.elementDecl(rmgroup, 4, ...)
+SAX.elementDecl(reading, 3, ...)
+SAX.comment( 
+	The reading element contains the reading or pronunciation
+	of the kanji.
+	)
+SAX.attributeDecl(reading, r_type, 1, 2, NULL, ...)
+SAX.comment( 
+	The r_type attribute defines the type of reading in the reading
+	element. The current values are:
+	  pinyin - the modern PinYin romanization of the Chinese reading 
+	  	of the kanji. The tones are represented by a concluding 
+	  	digit. [Y]
+	  korean_r - the romanized form of the Korean reading(s) of the 
+	  	kanji.  The readings are in the (Republic of Korea) Ministry 
+	  	of Education style of romanization. [W]
+	  korean_h - the Korean reading(s) of the kanji in hangul.
+	  ja_on - the "on" Japanese reading of the kanji, in katakana. A
+	  	second attribute r_status, if present, will indicate with
+	  	a value of "jy" whether the reading is approved for a
+	  	"Jouyou kanji".
+	  ja_kun - the "kun" Japanese reading of the kanji, in hiragana. 
+	  	Where relevant the okurigana is also included separated by a 
+	  	".". Readings associated with prefixes and suffixes are 
+	  	marked with a "-". A second attribute r_status, if present, 
+	  	will indicate with a value of "jy" whether the reading is 
+	  	approved for a "Jouyou kanji".
+	)
+SAX.attributeDecl(reading, r_status, 1, 3, NULL, ...)
+SAX.comment( 
+	See under ja_on and ja_kun above.
+	)
+SAX.elementDecl(meaning, 3, ...)
+SAX.comment( 
+	The meaning associated with the kanji.
+	)
+SAX.attributeDecl(meaning, m_lang, 1, 3, NULL, ...)
+SAX.comment( 
+	The m_lang attribute defines the target language of the meaning. It 
+	will be coded using the two-letter language code from the ISO 639 
+	standard. When absent, the value "en" (i.e. English) is implied. [{}]
+	)
+SAX.externalSubset(kanjidic2, , )
+SAX.startElementNs(kanjidic2, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.endElementNs(kanjidic2, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/isolat1.sax2 b/result/noent/isolat1.sax2
new file mode 100644
index 0000000..b97920a
--- /dev/null
+++ b/result/noent/isolat1.sax2
@@ -0,0 +1,7 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(très, NULL, NULL, 0, 0, 0)
+SAX.characters(l, 1)
+SAX.characters(à, 2)
+SAX.endElementNs(très, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/isolat2.sax2 b/result/noent/isolat2.sax2
new file mode 100644
index 0000000..0ac3f56
--- /dev/null
+++ b/result/noent/isolat2.sax2
@@ -0,0 +1,35 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(tst, NULL, NULL, 0, 0, 0)
+SAX.characters(
+
+       The following table d, 345)
+SAX.characters(¡     INVERTED EXCLAMATION MA, 300)
+SAX.characters(      250   168   A8     ¨   , 300)
+SAX.characters(SOFT HYPHEN
+       256   174  , 300)
+SAX.characters(  264   180   B4     ´     AC, 300)
+SAX.characters(SCULINE ORDINAL INDICATOR
+    , 300)
+SAX.characters(1   BF     ¿     INVERTED QUE, 300)
+SAX.characters( A WITH TILDE
+       304   196, 300)
+SAX.characters(  C8     È     LATIN CAPITAL , 300)
+SAX.characters(APITAL LETTER I WITH GRAVE
+   , 300)
+SAX.characters(  321   209   D1     Ñ     LA, 300)
+SAX.characters( LATIN CAPITAL LETTER O WITH T, 300)
+SAX.characters( 332   218   DA     Ú     LAT, 300)
+SAX.characters(    LATIN CAPITAL LETTER THORN, 300)
+SAX.characters(3   227   E3     ã     LATIN , 300)
+SAX.characters(R C WITH CEDILLA
+       350   , 300)
+SAX.characters(36   EC     ì     LATIN SMALL, 300)
+SAX.characters(LETTER ETH
+       361   241   , 300)
+SAX.characters(  õ     LATIN SMALL LETTER O , 300)
+SAX.characters( 250   FA     ú     LATIN SMA, 300)
+SAX.characters(L LETTER THORN
+       377   25, 85)
+SAX.endElementNs(tst, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/isolat3.sax2 b/result/noent/isolat3.sax2
new file mode 100644
index 0000000..31296af
--- /dev/null
+++ b/result/noent/isolat3.sax2
@@ -0,0 +1,29 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(rec, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(eg, NULL, NULL, 0, 0, 0)
+SAX.pcdata(<!ENTITY % pub    "&, 162)
+SAX.endElementNs(eg, NULL, NULL)
+SAX.characters(
+then the replacement text for, 43)
+SAX.startElementNs(code, NULL, NULL, 0, 0, 0)
+SAX.characters(book, 4)
+SAX.endElementNs(code, NULL, NULL)
+SAX.characters(" is:
+, 6)
+SAX.startElementNs(eg, NULL, NULL, 0, 0, 0)
+SAX.characters(La Peste: Albert Camus, 
+, 25)
+SAX.characters(©, 2)
+SAX.characters( 1947 , 6)
+SAX.characters(É, 2)
+SAX.characters(ditions Gallimard. , 19)
+SAX.characters(&, 1)
+SAX.characters(rights;, 7)
+SAX.endElementNs(eg, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(rec, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/japancrlf.xml.sax2 b/result/noent/japancrlf.xml.sax2
new file mode 100644
index 0000000..878eae4
--- /dev/null
+++ b/result/noent/japancrlf.xml.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(入力メッセージ, NULL, 'http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826', 1, xmlns='http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826', 0, 0)
+SAX.characters(
+	, 2)
+SAX.startElementNs(Ele, c8c, 'http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826', 1, xmlns:c8c='http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826', 0, 0)
+SAX.endElementNs(Ele, c8c, 'http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826')
+SAX.characters(
+, 1)
+SAX.endElementNs(入力メッセージ, NULL, 'http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826')
+SAX.endDocument()
diff --git a/result/noent/ns.sax2 b/result/noent/ns.sax2
new file mode 100644
index 0000000..c615db3
--- /dev/null
+++ b/result/noent/ns.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, dia:testattr='test...', 4)
+SAX.endElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+, 1)
+SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.endDocument()
diff --git a/result/noent/ns2.sax2 b/result/noent/ns2.sax2
new file mode 100644
index 0000000..fc8d6f4
--- /dev/null
+++ b/result/noent/ns2.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 1, 0, dia:testattr='test...', 4)
+SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.endDocument()
diff --git a/result/noent/ns3.sax2 b/result/noent/ns3.sax2
new file mode 100644
index 0000000..fc8d6f4
--- /dev/null
+++ b/result/noent/ns3.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 1, 0, dia:testattr='test...', 4)
+SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.endDocument()
diff --git a/result/noent/ns4.sax2 b/result/noent/ns4.sax2
new file mode 100644
index 0000000..e31cc56
--- /dev/null
+++ b/result/noent/ns4.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, NULL, NULL, 0, 4, 0, testattr='test...', 4, xml:lang='en" ...', 2, xml:link='simp...', 6, xml:space='pres...', 8)
+SAX.endElementNs(diagram, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ns5.sax2 b/result/noent/ns5.sax2
new file mode 100644
index 0000000..a434d6b
--- /dev/null
+++ b/result/noent/ns5.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(element, NULL, 'http://example.org/ns/1', 2, xmlns:rng='http://example.org/ns/1', xmlns='http://example.org/ns/1', 1, 0, name='foo"...', 3)
+SAX.characters(
+  , 3)
+SAX.startElementNs(empty, NULL, 'http://example.org/ns/1', 0, 0, 0)
+SAX.endElementNs(empty, NULL, 'http://example.org/ns/1')
+SAX.characters(
+, 1)
+SAX.endElementNs(element, NULL, 'http://example.org/ns/1')
+SAX.endDocument()
diff --git a/result/noent/ns6.sax2 b/result/noent/ns6.sax2
new file mode 100644
index 0000000..7b54552
--- /dev/null
+++ b/result/noent/ns6.sax2
@@ -0,0 +1,15 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(root, NULL, NULL, 0, 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(foo, NULL, 'http://abc', 1, xmlns='http://abc', 0, 0)
+SAX.endElementNs(foo, NULL, 'http://abc')
+SAX.characters(
+  , 3)
+SAX.startElementNs(bar, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(bar, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(root, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ns7.sax2 b/result/noent/ns7.sax2
new file mode 100644
index 0000000..2a2c714
--- /dev/null
+++ b/result/noent/ns7.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(test, xml, 'http://www.w3.org/XML/1998/namespace', 0, 0, 0)
+SAX.endElementNs(test, xml, 'http://www.w3.org/XML/1998/namespace')
+SAX.endDocument()
diff --git a/result/noent/nsclean.xml.sax2 b/result/noent/nsclean.xml.sax2
new file mode 100644
index 0000000..d443e2b
--- /dev/null
+++ b/result/noent/nsclean.xml.sax2
@@ -0,0 +1,13 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(article, NULL, 'tag:foofoofoofoofoofoofoofoo', 3, xmlns='tag:foofoofoofoofoofoofoofoo', xmlns:dc='http://purl.org/dc/elements/1.1/', xmlns:dcterms='http://purl.org/dc/terms/', 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(content, foop, 'tag:foofoofoofoofoofoofoofoo', 2, xmlns='http://www.w3.org/1999/xhtml', xmlns:foop='tag:foofoofoofoofoofoofoofoo', 0, 0)
+SAX.characters(
+, 1)
+SAX.endElementNs(content, foop, 'tag:foofoofoofoofoofoofoofoo')
+SAX.characters(
+, 1)
+SAX.endElementNs(article, NULL, 'tag:foofoofoofoofoofoofoofoo')
+SAX.endDocument()
diff --git a/result/noent/p3p.sax2 b/result/noent/p3p.sax2
new file mode 100644
index 0000000..6815789
--- /dev/null
+++ b/result/noent/p3p.sax2
@@ -0,0 +1,65 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 2, xmlns:p3p='http://www.w3.org/TR/1998/WD-P3P10-syntax#proposal.DTD', xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#', 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(PROP, NULL, NULL, 0, 4, 0, realm='http...', 37, entity='Cool...', 11, agreeID='94df...', 16, assurance='http...', 22)
+SAX.characters(
+  , 3)
+SAX.startElementNs(USES, NULL, NULL, 0, 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(STATEMENT, NULL, NULL, 0, 4, 0, purp='2,3"...', 3, recpnt='0" i...', 1, id='0"
+ ...', 1, consq='a si...', 37)
+SAX.characters(
+    , 5)
+SAX.startElementNs(WITH, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(PREFIX, NULL, NULL, 0, 1, 0, name='User...', 5)
+SAX.characters(
+     , 6)
+SAX.startElementNs(REF, NULL, NULL, 0, 1, 0, name='Name...', 10)
+SAX.endElementNs(REF, NULL, NULL)
+SAX.characters(
+     , 6)
+SAX.startElementNs(REF, NULL, NULL, 0, 2, 0, name='Bdat...', 10, optional='1"/>...', 1)
+SAX.endElementNs(REF, NULL, NULL)
+SAX.characters(
+     , 6)
+SAX.startElementNs(REF, NULL, NULL, 0, 1, 0, name='Gend...', 6)
+SAX.endElementNs(REF, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.endElementNs(PREFIX, NULL, NULL)
+SAX.endElementNs(WITH, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(STATEMENT, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(USES, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(USES, NULL, NULL, 0, 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(STATEMENT, NULL, NULL, 0, 4, 0, action='read...', 10, purp='0" r...', 1, recpnt='0" i...', 1, id='1">
+...', 1)
+SAX.characters(
+    , 5)
+SAX.startElementNs(REF, NULL, NULL, 0, 1, 0, name='User...', 14)
+SAX.endElementNs(REF, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(STATEMENT, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(USES, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(DISCLOSURE, NULL, NULL, 0, 3, 0, discURI='http...', 47, access='3" o...', 1, other='0,1"...', 3)
+SAX.endElementNs(DISCLOSURE, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(PROP, NULL, NULL)
+SAX.endElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.endDocument()
diff --git a/result/noent/pi.xml.sax2 b/result/noent/pi.xml.sax2
new file mode 100644
index 0000000..a4490ea
--- /dev/null
+++ b/result/noent/pi.xml.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.processingInstruction(document-start, doc)
+SAX.characters(
+, 1)
+SAX.startElementNs(empty, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(empty, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.processingInstruction(document-end, doc)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/pi2.xml.sax2 b/result/noent/pi2.xml.sax2
new file mode 100644
index 0000000..1e6caad
--- /dev/null
+++ b/result/noent/pi2.xml.sax2
@@ -0,0 +1,13 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.processingInstruction(document-start, doc)
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(empty, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(empty, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.processingInstruction(document-end, doc)
+SAX.endDocument()
diff --git a/result/noent/rdf1.sax2 b/result/noent/rdf1.sax2
new file mode 100644
index 0000000..24822e1
--- /dev/null
+++ b/result/noent/rdf1.sax2
@@ -0,0 +1,186 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 2, xmlns:RPM='http://www.rpm.org/', xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 1, 0, HREF='ftp:...', 78)
+SAX.characters(
+    , 5)
+SAX.startElementNs(Name, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(rpm, 3)
+SAX.endElementNs(Name, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Version, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(2.5, 3)
+SAX.endElementNs(Version, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Release, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(2, 1)
+SAX.endElementNs(Release, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Arch, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(i386, 4)
+SAX.endElementNs(Arch, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Os, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Linux, 5)
+SAX.endElementNs(Os, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Distribution, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Manhattan , 10)
+SAX.endElementNs(Distribution, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Vendor, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Red Hat Software, 16)
+SAX.endElementNs(Vendor, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Packager, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Red Hat Software , 17)
+SAX.characters(<, 1)
+SAX.characters(bugs@redhat.com, 15)
+SAX.characters(>, 1)
+SAX.endElementNs(Packager, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Group, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Utilities/System, 16)
+SAX.endElementNs(Group, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Summary, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Red Hat Package Manager, 23)
+SAX.endElementNs(Summary, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Description, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(RPM is a powerful package mana, 248)
+SAX.endElementNs(Description, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Copyright, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(GPL, 3)
+SAX.endElementNs(Copyright, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Changelog, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(* Sun May 10 1998 Prospector S, 36)
+SAX.characters(<, 1)
+SAX.characters(bugs@redhat.com, 15)
+SAX.characters(>, 1)
+SAX.characters(
+  - translations modified for, 42)
+SAX.endElementNs(Changelog, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Sources, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(rpm-2.5-2.src.rpm, 17)
+SAX.endElementNs(Sources, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(SourcesFtp, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(ftp://ftp.redhat.com/pub/redha, 48)
+SAX.endElementNs(SourcesFtp, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(BuildDate, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Sun May 10 14:52:32 1998, 24)
+SAX.endElementNs(BuildDate, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Date, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(894826352, 9)
+SAX.endElementNs(Date, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Size, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(850599, 6)
+SAX.endElementNs(Size, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(BuildHost, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(porky.redhat.com, 16)
+SAX.endElementNs(BuildHost, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Provides, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(rpm, 3)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.characters(
+    , 5)
+SAX.endElementNs(Provides, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Requires, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(/bin/sh, 7)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(ld-linux.so.2, 13)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(libc.so.6, 9)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(libdb.so.2, 10)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(libz.so.1, 9)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(/bin/bash, 9)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(/bin/sh, 7)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.characters(
+    , 5)
+SAX.endElementNs(Requires, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Files, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(/bin/rpm
+/usr/bin/find-provide, 885)
+SAX.endElementNs(Files, RPM, 'http://www.rpm.org/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.characters(
+, 1)
+SAX.endElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.endDocument()
diff --git a/result/noent/rdf2.sax2 b/result/noent/rdf2.sax2
new file mode 100644
index 0000000..388174f
--- /dev/null
+++ b/result/noent/rdf2.sax2
@@ -0,0 +1,191 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 2, xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#', xmlns:RPM='http://www.rpm.org/', 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 1, 0, about='ftp:...', 71)
+SAX.characters(
+    , 5)
+SAX.startElementNs(Name, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(ncurses4, 8)
+SAX.endElementNs(Name, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Version, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(4.2, 3)
+SAX.endElementNs(Version, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Release, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(3, 1)
+SAX.endElementNs(Release, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Arch, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(i386, 4)
+SAX.endElementNs(Arch, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Os, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Linux, 5)
+SAX.endElementNs(Os, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Distribution, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(DLD, 3)
+SAX.endElementNs(Distribution, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Vendor, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(delix Computer GmbH, 19)
+SAX.endElementNs(Vendor, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Packager, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Till Bubeck , 12)
+SAX.characters(<, 1)
+SAX.characters(bubeck@delix.de, 15)
+SAX.characters(>, 1)
+SAX.characters(, Ngo Than , 11)
+SAX.characters(<, 1)
+SAX.characters(than@delix.de, 13)
+SAX.characters(>, 1)
+SAX.endElementNs(Packager, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Group, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Libraries, 9)
+SAX.endElementNs(Group, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Summary, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Bibliothek zur Ansteuerung von, 40)
+SAX.endElementNs(Summary, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Description, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Diese Library stellt dem Progr, 57)
+SAX.characters(ä, 2)
+SAX.characters(ngige
+Routinen zur Ansteuerung, 57)
+SAX.characters(ü, 2)
+SAX.characters(gung, die
+speziell optimiert s, 57)
+SAX.characters(', 1)
+SAX.characters(new curses, 10)
+SAX.characters(', 1)
+SAX.characters( (ncurses) Variante und ist de, 51)
+SAX.characters(ü, 2)
+SAX.characters(r die klassische Curses-Librar, 70)
+SAX.endElementNs(Description, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Copyright, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(GPL, 3)
+SAX.endElementNs(Copyright, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Sources, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(ncurses4-4.2-3.src.rpm, 22)
+SAX.endElementNs(Sources, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(BuildDate, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Tue May 12 19:30:26 1998, 24)
+SAX.endElementNs(BuildDate, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Date, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(895015826, 9)
+SAX.endElementNs(Date, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Size, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(1373513, 7)
+SAX.endElementNs(Size, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(BuildHost, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(erdbeere.delix.de, 17)
+SAX.endElementNs(BuildHost, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Provides, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(
+      , 7)
+SAX.startElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 37)
+SAX.characters(ncurses4, 8)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 42)
+SAX.characters(libpanel.so.4, 13)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 44)
+SAX.characters(libncurses.so.4, 15)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 41)
+SAX.characters(libmenu.so.4, 12)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 41)
+SAX.characters(libform.so.4, 12)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+        , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 36)
+SAX.characters(ncurses, 7)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+      , 7)
+SAX.endElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.characters(
+    , 5)
+SAX.endElementNs(Provides, RPM, 'http://www.rpm.org/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(Files, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(/lib/libncurses.so.4
+/lib/libn, 2008)
+SAX.characters(/share/ncurses4/terminfo/P/P14, 4000)
+SAX.characters(es4/terminfo/a/alt7pc
+/usr/sha, 4000)
+SAX.characters(/a/att4415-w
+/usr/share/ncurse, 4000)
+SAX.characters(ses4/terminfo/b/bee
+/usr/share, 4000)
+SAX.characters(r/share/ncurses4/terminfo/c/co, 4000)
+SAX.characters(/usr/share/ncurses4/terminfo/d, 4000)
+SAX.characters(sr/share/ncurses4/terminfo/g/g, 4000)
+SAX.characters(/terminfo/h/hp2626-12x40
+/usr/, 4000)
+SAX.characters(e/ncurses4/terminfo/i/intertub, 4000)
+SAX.characters(rses4/terminfo/m/mskermit22714, 4000)
+SAX.characters(are/ncurses4/terminfo/p/p12-m
+, 4000)
+SAX.characters(pt100w
+/usr/share/ncurses4/ter, 4000)
+SAX.characters(sr/share/ncurses4/terminfo/s/s, 4000)
+SAX.characters(usr/share/ncurses4/terminfo/t/, 4000)
+SAX.characters(share/ncurses4/terminfo/v/vi55, 4000)
+SAX.characters(are/ncurses4/terminfo/w/wy160-, 4000)
+SAX.characters(/wy99gt-vb
+/usr/share/ncurses4, 4000)
+SAX.characters(/w/wyse99gt
+/usr/share/ncurses, 2907)
+SAX.endElementNs(Files, RPM, 'http://www.rpm.org/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.characters(
+, 1)
+SAX.endElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.endDocument()
diff --git a/result/noent/slashdot.rdf.sax2 b/result/noent/slashdot.rdf.sax2
new file mode 100644
index 0000000..c561cf8
--- /dev/null
+++ b/result/noent/slashdot.rdf.sax2
@@ -0,0 +1,221 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(RDF, rdf, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#', 2, xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#', xmlns='http://my.netscape.com/rdf/simple/0.9/', 0, 0)
+SAX.characters(
+
+  , 4)
+SAX.startElementNs(channel, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Slashdot:News for Nerds. Stuff, 44)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/, 20)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(description, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(News for Nerds.  Stuff that Ma, 35)
+SAX.endElementNs(description, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(channel, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+  , 4)
+SAX.startElementNs(image, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Slashdot, 8)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/images/sla, 41)
+SAX.endElementNs(url, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org, 19)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(image, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  
+  , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(100 Mbit/s on Fibre to the hom, 31)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  
+  , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Gimp 1.2 Preview, 16)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  
+  , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Sony's AIBO robot Sold Out, 26)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  
+  , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Ask Slashdot: Another Word for, 40)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/askslashdo, 54)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  
+  , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Corel Linux FAQ, 15)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  
+  , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Upside downsides MP3.COM., 25)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  
+  , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(2 Terabits of Bandwidth, 23)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  
+  , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Suppression of cold fusion res, 36)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  
+  , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(California Gov. Halts Wage Inf, 36)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 50)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  
+  , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Red Hat Announces IPO, 21)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+    , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+  , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+, 1)
+SAX.endElementNs(RDF, rdf, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#')
+SAX.endDocument()
diff --git a/result/noent/slashdot.xml.sax2 b/result/noent/slashdot.xml.sax2
new file mode 100644
index 0000000..2ead70d
--- /dev/null
+++ b/result/noent/slashdot.xml.sax2
@@ -0,0 +1,517 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(ultramode, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(100 Mbit/s on Fibre to the hom, 31)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:39:59, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(wouldn't-it-be-nice, 19)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(internet, 8)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(20, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicinternet.jpg, 17)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Gimp 1.2 Preview, 16)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:38:40, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-read, 13)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(gimp, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(12, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicgimp.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Sony's AIBO robot Sold Out, 26)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:32:51, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-see, 12)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(tech, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(10, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topictech2.jpg, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Ask Slashdot: Another Word for, 40)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/askslashdo, 54)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 20:00:00, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Cliff, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(hacker-vs-cracker, 17)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(news, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(385, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(askslashdot, 11)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicnews.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Corel Linux FAQ, 15)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 18:42:06, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-read, 13)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(corel, 5)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(164, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topiccorel.gif, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Upside downsides MP3.COM., 25)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 15:56:45, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-think-about, 20)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(music, 5)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(48, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicmusic.gif, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(2 Terabits of Bandwidth, 23)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 15:53:43, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(faster-porn, 11)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(internet, 8)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(66, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicinternet.jpg, 17)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Suppression of cold fusion res, 36)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 23:12:29, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Hemos, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(possibly-probably, 17)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(science, 7)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(217, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicscience.gif, 16)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(California Gov. Halts Wage Inf, 36)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 50)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 23:05:34, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Hemos, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(woo-hoo!, 8)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(usa, 3)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(16, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicus.gif, 11)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Red Hat Announces IPO, 21)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 19:30:18, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Justin, 6)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(details-sketchy, 15)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(redhat, 6)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(155, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicredhat.gif, 15)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(ultramode, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/slashdot16.xml.sax2 b/result/noent/slashdot16.xml.sax2
new file mode 100644
index 0000000..785e699
--- /dev/null
+++ b/result/noent/slashdot16.xml.sax2
@@ -0,0 +1,721 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(ultramode, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(100 Mbit/s on Fibre to the hom, 31)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:39:59, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(wouldn't-it-be-nice, 19)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(internet, 8)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(20, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicinternet.jpg, 17)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Gimp 1.2 Preview, 16)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:38:40, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-read, 13)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(gimp, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(12, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicgimp.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Sony's AIBO robot Sold Out, 26)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:32:51, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-see, 12)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(tech, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(10, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topictech2.jpg, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Ask Slashdot: Another Word for, 40)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/askslashdo, 54)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 20:00:00, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Cliff, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(hacker-vs-cracker, 17)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(news, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(385, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(askslashdot, 11)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicnews.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(100 Mbit/s on Fibre to the hom, 31)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:39:59, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(wouldn't-it-be-nice, 19)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(internet, 8)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(20, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicinternet.jpg, 17)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Gimp 1.2 Preview, 16)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:38:40, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-read, 13)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(gimp, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(12, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicgimp.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Sony's AIBO robot Sold Out, 26)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:32:51, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-see, 12)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(tech, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(10, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topictech2.jpg, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Ask Slashdot: Another Word for, 40)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/askslashdo, 54)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 20:00:00, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Cliff, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(hacker-vs-cracker, 17)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(news, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(385, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(askslashdot, 11)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicnews.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Corel Linux FAQ, 15)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 18:42:06, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-read, 13)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(corel, 5)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(164, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topiccorel.gif, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Upside downsides MP3.COM., 25)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 15:56:45, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-think-about, 20)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(music, 5)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(48, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicmusic.gif, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(2 Terabits of Bandwidth, 23)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 15:53:43, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(faster-porn, 11)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(internet, 8)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(66, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicinternet.jpg, 17)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Suppression of cold fusion res, 36)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 23:12:29, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Hemos, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(possibly-probably, 17)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(science, 7)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(217, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicscience.gif, 16)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(California Gov. Halts Wage Inf, 36)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 50)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 23:05:34, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Hemos, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(woo-hoo!, 8)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(usa, 3)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(16, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicus.gif, 11)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Red Hat Announces IPO, 21)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 19:30:18, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Justin, 6)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(details-sketchy, 15)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(redhat, 6)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(155, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+    , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicredhat.gif, 15)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(ultramode, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/svg1.sax2 b/result/noent/svg1.sax2
new file mode 100644
index 0000000..7b81459
--- /dev/null
+++ b/result/noent/svg1.sax2
@@ -0,0 +1,613 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd)
+SAX.externalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd)
+SAX.startElementNs(svg, NULL, NULL, 0, 2, 0, width='242p...', 5, height='383p...', 5)
+SAX.characters(
+, 1)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 69,...', 337)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 142...', 190)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 127...', 71)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 178...', 128)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 56,...', 273)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 74,...', 203)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 212...', 448)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 151...', 208)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 106)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 21,...', 90)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 71,...', 150)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 139...', 101)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 105...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 141...', 70)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 98,...', 156)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 97,...', 156)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 238)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 85,...', 69)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 86,...', 217)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 93,...', 65)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 144...', 70)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 57,...', 294)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 83,...', 194)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 109...', 70)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 122...', 80)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 156)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 82,...', 284)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 142...', 239)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 114...', 80)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 102...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 51,...', 154)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 2,3...', 120)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 7,3...', 154)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 11,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 13,...', 97)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 202...', 152)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 151...', 168)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 91,...', 202)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 31,...', 96)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 76)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 181...', 91)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 132...', 80)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 146...', 80)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 99,...', 78)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 20,...', 105)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 93,...', 92)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 105...', 70)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 122...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 116...', 260)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 74,...', 245)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 133...', 104)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 133...', 64)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 121...', 334)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 79,...', 70)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 91,...', 80)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 110...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 126...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 30,...', 266)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 44,...', 319)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 13,...', 84)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 10,...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 9,2...', 45)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 33,...', 385)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 7,3...', 51)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 44,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 32,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 139...', 128)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 208...', 360)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 152)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 107...', 93)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 148...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 80,...', 192)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 87,...', 55)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 85,...', 55)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 119)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 145...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 26,...', 60)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 160...', 91)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 98,...', 265)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 146...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 148...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 108...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 50,...', 144)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 231)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 155...', 102)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 112...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 195)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 67,...', 109)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 56,...', 276)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 101...', 307)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 41,...', 116)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 32,...', 245)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 134...', 136)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 173...', 280)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 165...', 88)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 99,...', 124)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 117...', 64)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 117...', 64)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 122...', 64)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 69,...', 262)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 100...', 54)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 127...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 5,2...', 218)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 10,...', 48)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 25,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 37,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 49,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 130...', 88)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 139...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 25,...', 91)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 98,...', 92)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 83,...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 155...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 153...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 152...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 68,...', 58)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 105...', 68)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 108...', 65)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 85,...', 156)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 140...', 126)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 146...', 237)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 150...', 320)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 64)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 157...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 99,...', 63)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.endElementNs(svg, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/svg2.sax2 b/result/noent/svg2.sax2
new file mode 100644
index 0000000..ab73992
--- /dev/null
+++ b/result/noent/svg2.sax2
@@ -0,0 +1,189 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd)
+SAX.externalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd)
+SAX.startElementNs(svg, NULL, NULL, 0, 2, 0, width='268p...', 5, height='207p...', 5)
+SAX.characters(
+, 1)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d=' M 2...', 9)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d=' L 1...', 9)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 32,...', 46)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(rect, NULL, NULL, 0, 4, 0, x='30" ...', 2, y='101"...', 3, width='51" ...', 2, height='33"/...', 2)
+SAX.endElementNs(rect, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(ellipse, NULL, NULL, 0, 5, 0, cx='182"...', 3, cy='127"...', 3, major='37" ...', 2, minor='31" ...', 2, angle='90"/...', 2)
+SAX.endElementNs(ellipse, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 445)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+     , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Dialog 0, 30)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+     , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Helvetic, 33)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(text, NULL, NULL, 0, 2, 0, x='188"...', 3, y='36" ...', 2)
+SAX.characters(this is text, 12)
+SAX.endElementNs(text, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+     , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Dialog 0, 30)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+     , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Helvetic, 35)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(text, NULL, NULL, 0, 2, 0, x='176"...', 3, y='85" ...', 2)
+SAX.characters(sadfsadfsad, 11)
+SAX.endElementNs(text, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(ellipse, NULL, NULL, 0, 5, 0, cx='208"...', 3, cy='180"...', 3, major='45" ...', 2, minor='31" ...', 2, angle='0"/>...', 1)
+SAX.endElementNs(ellipse, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters( 
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters( 
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters( 
+   , 5)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+     , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Dialog 7, 32)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+   , 4)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+     , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Dialog 7, 32)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters( 
+   , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.endElementNs(svg, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/svg3.sax2 b/result/noent/svg3.sax2
new file mode 100644
index 0000000..b63dff0
--- /dev/null
+++ b/result/noent/svg3.sax2
@@ -0,0 +1,2407 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(svg, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M77....', 149)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M81....', 149)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M108...', 153)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M105...', 157)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M101...', 157)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M90....', 150)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M83....', 149)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M80....', 151)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M91....', 144)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M71....', 105)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M72....', 150)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M72....', 145)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 29)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M70....', 3523)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 29)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M499...', 1458)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M84....', 598)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M333...', 739)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M334...', 757)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M336...', 760)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M337...', 761)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M338...', 762)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M340...', 760)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M341...', 760)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M342...', 760)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M343...', 725)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M345...', 762)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M84....', 637)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 221)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M265...', 273)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M145...', 431)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M178...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M178...', 131)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M179...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M165...', 911)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M170...', 501)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M192...', 262)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 209)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M194...', 475)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 29)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 405)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M191...', 219)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M271...', 327)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M228...', 98)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M180...', 137)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M185...', 152)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 152)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M197...', 154)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M203...', 154)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M210...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 132)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M215...', 142)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M233...', 211)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M247...', 50)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M253...', 56)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M174...', 179)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 219)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M111...', 221)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M132...', 208)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M133...', 334)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M177...', 183)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M147...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M154...', 158)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M161...', 158)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 182)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 247)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M243...', 361)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M208...', 393)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M208...', 393)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M209...', 393)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M210...', 393)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M244...', 301)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M290...', 155)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M294...', 309)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M247...', 193)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M243...', 200)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M255...', 77)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 191)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M141...', 411)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 486)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M148...', 494)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M148...', 484)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M148...', 495)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 486)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M137...', 119)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M120...', 115)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M128...', 132)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M214...', 1619)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M409...', 389)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M464...', 271)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M463...', 289)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M463...', 287)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M462...', 280)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M462...', 289)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M462...', 250)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M250...', 709)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M389...', 91)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M436...', 125)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M492...', 99)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M304...', 123)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M494...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M343...', 2441)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M309...', 1201)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M380...', 429)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M368...', 1598)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M291...', 929)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M259...', 1006)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 383)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M217...', 181)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M233...', 2425)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M251...', 74)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M224...', 84)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M221...', 112)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M222...', 114)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M220...', 6993)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M197...', 185)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M138...', 193)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M138...', 197)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M134...', 195)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M134...', 11)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M89 ...', 570)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M87....', 491)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M91 ...', 497)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M88....', 626)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M79....', 183)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M101...', 359)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M240...', 1223)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M231...', 816)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M294...', 902)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M257...', 3281)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M202...', 837)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M182...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M142...', 177)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M133...', 289)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M120...', 215)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M349...', 1047)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M339...', 444)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M173...', 503)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M180...', 445)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M177...', 379)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M196...', 438)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 109)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 113)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M171...', 105)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M163...', 113)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M191...', 114)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M180...', 109)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M173...', 105)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M166...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M205...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M215...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M226...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M236...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M209...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M219...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M196...', 109)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M123...', 117)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M105...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 101)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M129...', 1246)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M126...', 311)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 125)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M127...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M129...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M130...', 158)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 157)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M242...', 154)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M239...', 158)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M236...', 157)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M204...', 387)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M277...', 379)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M218...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M211...', 126)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 126)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M193...', 128)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M235...', 128)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 126)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M254...', 129)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M264...', 126)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M226...', 126)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M262...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M265...', 363)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M207...', 143)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M217...', 147)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M229...', 143)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M239...', 137)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 133)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M172...', 135)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M164...', 137)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M211...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M222...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 158)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M193...', 155)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M174...', 159)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M167...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M236...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M203...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M213...', 135)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M220...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M228...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M238...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M198...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M249...', 159)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M257...', 159)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M267...', 159)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M156...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M187...', 105)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M178...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M82....', 121)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M84....', 121)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M77....', 121)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M157...', 137)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 349)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M234...', 346)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M194...', 445)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M168...', 247)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M155...', 396)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M171...', 206)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M186...', 803)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M246...', 179)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M231...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M221...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M211...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M192...', 261)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M189...', 131)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M167...', 181)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M161...', 183)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M155...', 99)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 181)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M470...', 101)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M476...', 97)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M493...', 91)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M501...', 67)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M110...', 25)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M161...', 38)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M166...', 40)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14)
+SAX.characters(
+  , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M220...', 46)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(svg, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/title.xml.sax2 b/result/noent/title.xml.sax2
new file mode 100644
index 0000000..6fa4fa9
--- /dev/null
+++ b/result/noent/title.xml.sax2
@@ -0,0 +1,6 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(my title, 8)
+SAX.endElementNs(title, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/tstblanks.xml.sax2 b/result/noent/tstblanks.xml.sax2
new file mode 100644
index 0000000..45563a4
--- /dev/null
+++ b/result/noent/tstblanks.xml.sax2
@@ -0,0 +1,6 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(a, NULL, NULL, 0, 1, 0, test='pass...', 6)
+SAX.characters(content, 7)
+SAX.endElementNs(a, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/utf16bebom.xml.sax2 b/result/noent/utf16bebom.xml.sax2
new file mode 100644
index 0000000..4326890
--- /dev/null
+++ b/result/noent/utf16bebom.xml.sax2
@@ -0,0 +1,8 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This file is encoded in UTF-16BE )
+SAX.startElementNs(repository, NULL, NULL, 0, 1, 0, repositroy_id='test...', 4)
+SAX.startElementNs(namespace, NULL, NULL, 0, 1, 0, name='test...', 4)
+SAX.endElementNs(namespace, NULL, NULL)
+SAX.endElementNs(repository, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/utf16bom.xml.sax2 b/result/noent/utf16bom.xml.sax2
new file mode 100644
index 0000000..2b2db15
--- /dev/null
+++ b/result/noent/utf16bom.xml.sax2
@@ -0,0 +1,7 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(repository, NULL, NULL, 0, 1, 0, repositroy_id='test...', 4)
+SAX.startElementNs(namespace, NULL, NULL, 0, 1, 0, name='test...', 4)
+SAX.endElementNs(namespace, NULL, NULL)
+SAX.endElementNs(repository, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/utf16lebom.xml.sax2 b/result/noent/utf16lebom.xml.sax2
new file mode 100644
index 0000000..3b62346
--- /dev/null
+++ b/result/noent/utf16lebom.xml.sax2
@@ -0,0 +1,8 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This file is encoded in UTF-16LE )
+SAX.startElementNs(repository, NULL, NULL, 0, 1, 0, repositroy_id='test...', 4)
+SAX.startElementNs(namespace, NULL, NULL, 0, 1, 0, name='test...', 4)
+SAX.endElementNs(namespace, NULL, NULL)
+SAX.endElementNs(repository, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/utf8bom.xml.sax2 b/result/noent/utf8bom.xml.sax2
new file mode 100644
index 0000000..cf7f20f
--- /dev/null
+++ b/result/noent/utf8bom.xml.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(foo, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(foo, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/wap.xml.sax2 b/result/noent/wap.xml.sax2
new file mode 100644
index 0000000..6d40b25
--- /dev/null
+++ b/result/noent/wap.xml.sax2
@@ -0,0 +1,87 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://dark.wapit.com/vswap/tests/wap/DTD/wml11.dtd)
+SAX.externalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://dark.wapit.com/vswap/tests/wap/DTD/wml11.dtd)
+SAX.comment( (C) 1999, 2000 WAP Forum Ltd.  All rights reserved )
+SAX.startElementNs(wml, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(card, NULL, NULL, 0, 1, 0, id='card...', 5)
+SAX.characters(
+, 1)
+SAX.startElementNs(onevent, NULL, NULL, 0, 1, 0, type='onen...', 14)
+SAX.characters(
+, 1)
+SAX.startElementNs(go, NULL, NULL, 0, 1, 0, href='/vsw...', 21)
+SAX.characters(
+        , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='var"...', 3, value='$tes...', 5)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+        , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='v" v...', 1, value='dark...', 4)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+        , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ts" ...', 2, value='0003...', 4)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+        , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='tp" ...', 2, value='wml/...', 29)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+        , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ti" ...', 2, value='1"/>...', 1)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+        , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='expe...', 8, value='var:...', 8)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(go, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(onevent, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters(If automatic testing failed, s, 36)
+SAX.startElementNs(anchor, NULL, NULL, 0, 0, 0)
+SAX.characters(Failed, 6)
+SAX.startElementNs(go, NULL, NULL, 0, 1, 0, href='/vsw...', 21)
+SAX.characters(
+        , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='SUBM...', 6, value='No"/...', 2)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='v"
+v...', 1, value='dark...', 4)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+        , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ts" ...', 2, value='0003...', 4)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+        , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='tp" ...', 2, value='wml/...', 29)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+        , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ti" ...', 2, value='1"/>...', 1)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+        , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='expe...', 8, value='var:...', 8)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.endElementNs(go, NULL, NULL)
+SAX.endElementNs(anchor, NULL, NULL)
+SAX.characters(., 1)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(card, NULL, NULL)
+SAX.characters(
+
+, 2)
+SAX.endElementNs(wml, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/winblanks.xml.sax2 b/result/noent/winblanks.xml.sax2
new file mode 100644
index 0000000..6e9d693
--- /dev/null
+++ b/result/noent/winblanks.xml.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(B, NULL, NULL, 0, 0, 0)
+SAX.characters(
+        , 9)
+SAX.startElementNs(C, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(C, NULL, NULL)
+SAX.characters(   , 3)
+SAX.characters(
+, 1)
+SAX.endElementNs(B, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(a, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/wml.xml.sax2 b/result/noent/wml.xml.sax2
new file mode 100644
index 0000000..7772d04
--- /dev/null
+++ b/result/noent/wml.xml.sax2
@@ -0,0 +1,31 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://www.wapforum.org/DTD/wml_1.1.xml)
+SAX.externalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://www.wapforum.org/DTD/wml_1.1.xml)
+SAX.startElementNs(wml, NULL, NULL, 0, 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(card, NULL, NULL, 0, 2, 0, id='card...', 5, title='Rubr...', 15)
+SAX.characters(
+	, 2)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters(
+		, 3)
+SAX.startElementNs(a, NULL, NULL, 0, 1, 0, href='rubm...', 26)
+SAX.characters(Cin, 3)
+SAX.characters(é, 2)
+SAX.characters(ma, 2)
+SAX.endElementNs(a, NULL, NULL)
+SAX.startElementNs(br, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(br, NULL, NULL)
+SAX.characters(
+	, 2)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+
+, 2)
+SAX.endElementNs(card, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(wml, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/xhtml1.sax2 b/result/noent/xhtml1.sax2
new file mode 100644
index 0000000..e6952c8
--- /dev/null
+++ b/result/noent/xhtml1.sax2
@@ -0,0 +1,104 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd)
+SAX.externalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd)
+SAX.comment( 3.1.1 3/ )
+SAX.startElementNs(html, NULL, NULL, 0, 2, 0, xml:lang='en" ...', 2, lang='en">...', 2)
+SAX.characters(
+  , 3)
+SAX.startElementNs(head, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Virtual Library, 15)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(head, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.comment( 4.8 )
+SAX.characters(
+  , 3)
+SAX.startElementNs(script, NULL, NULL, 0, 1, 0, type='text...', 15)
+SAX.characters(
+  ... unescaped script , 24)
+SAX.characters(<, 1)
+SAX.characters( content ...
+  , 15)
+SAX.endElementNs(script, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(body, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters(Moved to , 9)
+SAX.startElementNs(a, NULL, NULL, 0, 1, 0, href='http...', 19)
+SAX.characters(example.org, 11)
+SAX.endElementNs(a, NULL, NULL)
+SAX.characters(., 1)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(body, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.comment( C2 )
+SAX.characters(
+  , 3)
+SAX.startElementNs(img, NULL, NULL, 0, 2, 0, src='foo....', 7, alt='foo"...', 3)
+SAX.endElementNs(img, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.comment( C3 )
+SAX.characters(
+  , 3)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.comment( C7 )
+SAX.characters(
+  , 3)
+SAX.startElementNs(p, NULL, NULL, 0, 1, 0, lang='fr">...', 2)
+SAX.characters(coucou, 6)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(p, NULL, NULL, 0, 1, 0, xml:lang='fr">...', 2)
+SAX.characters(salut, 5)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.comment( C8 )
+SAX.characters(
+  , 3)
+SAX.startElementNs(p, NULL, NULL, 0, 1, 0, name='frag...', 6)
+SAX.characters(test, 4)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.comment( 4.5 )
+SAX.characters(
+  , 3)
+SAX.startElementNs(dl, NULL, NULL, 0, 1, 0, compact='">
+ ...', 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(dt, NULL, NULL, 0, 0, 0)
+SAX.characters(Internet Engineering Task Forc, 31)
+SAX.endElementNs(dt, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.startElementNs(dd, NULL, NULL, 0, 0, 0)
+SAX.characters(An organization which establis, 70)
+SAX.endElementNs(dd, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(dl, NULL, NULL)
+SAX.characters(
+
+, 2)
+SAX.endElementNs(html, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/xhtmlcomp.sax2 b/result/noent/xhtmlcomp.sax2
new file mode 100644
index 0000000..085b770
--- /dev/null
+++ b/result/noent/xhtmlcomp.sax2
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd)
+SAX.externalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd)
+SAX.startElementNs(html, NULL, NULL, 0, 0, 0)
+SAX.characters(
+  , 3)
+SAX.startElementNs(body, NULL, NULL, 0, 0, 0)
+SAX.characters(
+    , 5)
+SAX.startElementNs(h1, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(abbr, NULL, NULL, 0, 0, 0)
+SAX.characters(a, 1)
+SAX.endElementNs(abbr, NULL, NULL)
+SAX.characters( b, 2)
+SAX.endElementNs(h1, NULL, NULL)
+SAX.characters(
+  , 3)
+SAX.endElementNs(body, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(html, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/xml1.sax2 b/result/noent/xml1.sax2
new file mode 100644
index 0000000..2dce925
--- /dev/null
+++ b/result/noent/xml1.sax2
@@ -0,0 +1,22 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(test, , )
+SAX.entityDecl(example, 1, (null), (null), <p>An ampersand (&#38;) may be escaped
+ numerically (&#38;#38;) or with a general entity
+  (&amp;amp;).</p>)
+SAX.getEntity(example)
+SAX.externalSubset(test, , )
+SAX.startElementNs(test, NULL, NULL, 0, 0, 0)
+SAX.getEntity(example)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters(An ampersand (, 14)
+SAX.characters(&, 1)
+SAX.characters() may be escaped
+ numerically , 31)
+SAX.characters(&, 1)
+SAX.characters(#38;) or with a general entity, 34)
+SAX.characters(&, 1)
+SAX.characters(amp;)., 6)
+SAX.endElementNs(p, NULL, NULL)
+SAX.endElementNs(test, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/xml2.sax2 b/result/noent/xml2.sax2
new file mode 100644
index 0000000..141accd
--- /dev/null
+++ b/result/noent/xml2.sax2
@@ -0,0 +1,18 @@
+xmlSAXUserParseFile returned error 27
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(test, , )
+SAX.elementDecl(test, 3, ...)
+SAX.entityDecl(xx, 4, (null), (null), %zz;)
+SAX.getParameterEntity(xx)
+SAX.entityDecl(zz, 4, (null), (null), <!ENTITY tricky "error-prone" >)
+SAX.getParameterEntity(zz)
+SAX.getParameterEntity(xx)
+SAX.error: PEReference: %xx; not found
+SAX.characters(This sample shows a , 20)
+SAX.getEntity(tricky)
+SAX.error: Entity 'tricky' not defined
+SAX.reference(tricky)
+SAX.characters( method., 8)
+SAX.endDocument()
+xmlSAXUserParseFile returned error 27
diff --git a/result/relaxng/565219_0 b/result/relaxng/565219_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/565219_0
diff --git a/result/relaxng/565219_0.err b/result/relaxng/565219_0.err
new file mode 100644
index 0000000..e3f73fa
--- /dev/null
+++ b/result/relaxng/565219_0.err
@@ -0,0 +1,2 @@
+./test/relaxng/565219_0.xml:1: element foo: Relax-NG validity error : Element foo has wrong namespace: expecting http://bar.com/
+./test/relaxng/565219_0.xml fails to validate
diff --git a/result/relaxng/565219_1 b/result/relaxng/565219_1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/565219_1
diff --git a/result/relaxng/565219_1.err b/result/relaxng/565219_1.err
new file mode 100644
index 0000000..2999bba
--- /dev/null
+++ b/result/relaxng/565219_1.err
@@ -0,0 +1 @@
+./test/relaxng/565219_1.xml validates
diff --git a/result/relaxng/565219_2 b/result/relaxng/565219_2
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/565219_2
diff --git a/result/relaxng/565219_2.err b/result/relaxng/565219_2.err
new file mode 100644
index 0000000..7a997d3
--- /dev/null
+++ b/result/relaxng/565219_2.err
@@ -0,0 +1,2 @@
+./test/relaxng/565219_2.xml:1: element foo: Relax-NG validity error : Element foo has wrong namespace: expecting http://bar.com/
+./test/relaxng/565219_2.xml fails to validate
diff --git a/result/relaxng/565219_err b/result/relaxng/565219_err
new file mode 100644
index 0000000..c43e67c
--- /dev/null
+++ b/result/relaxng/565219_err
@@ -0,0 +1 @@
+./test/relaxng/565219.rng validates
diff --git a/result/relaxng/565219_valid b/result/relaxng/565219_valid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/565219_valid
diff --git a/result/relaxng/710744_err b/result/relaxng/710744_err
new file mode 100644
index 0000000..54f0226
--- /dev/null
+++ b/result/relaxng/710744_err
@@ -0,0 +1 @@
+./test/relaxng/710744.rng validates
diff --git a/result/relaxng/710744_valid b/result/relaxng/710744_valid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/710744_valid
diff --git a/result/relaxng/pattern3_1 b/result/relaxng/pattern3_1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/pattern3_1
diff --git a/result/relaxng/pattern3_1.err b/result/relaxng/pattern3_1.err
new file mode 100644
index 0000000..b1a9803
--- /dev/null
+++ b/result/relaxng/pattern3_1.err
@@ -0,0 +1 @@
+./test/relaxng/pattern3_1.xml validates
diff --git a/result/relaxng/pattern3_err b/result/relaxng/pattern3_err
new file mode 100644
index 0000000..a7a1f46
--- /dev/null
+++ b/result/relaxng/pattern3_err
@@ -0,0 +1 @@
+./test/relaxng/pattern3.rng validates
diff --git a/result/relaxng/pattern3_valid b/result/relaxng/pattern3_valid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/pattern3_valid
diff --git a/result/schemas/regexp-char-ref_0_0.err b/result/schemas/regexp-char-ref_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/regexp-char-ref_0_0.err
diff --git a/result/schemas/regexp-char-ref_1_0.err b/result/schemas/regexp-char-ref_1_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/regexp-char-ref_1_0.err
diff --git a/result/scripts/set3.err b/result/scripts/set3.err
index 18f0d69..0dd7792 100644
--- a/result/scripts/set3.err
+++ b/result/scripts/set3.err
@@ -1,3 +1,3 @@
-./test/scripts/set3.xml:1: parser warning : xmlns: URI bar is not absolute
+./test/scripts/set3.xml:1: namespace warning : xmlns: URI bar is not absolute
 <a xmlns="bar">foo</a>
               ^
diff --git a/result/valid/737840.xml b/result/valid/737840.xml
new file mode 100644
index 0000000..433c6d6
--- /dev/null
+++ b/result/valid/737840.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!DOCTYPE root [
+<!ELEMENT root (elem)>
+<!ELEMENT elem (#PCDATA)>
+<!ATTLIST elem id ID #IMPLIED>
+<!ENTITY target SYSTEM "dtds/737840.ent">
+]>
+<root>
+  &target;
+</root>
diff --git a/result/valid/737840.xml.err b/result/valid/737840.xml.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/valid/737840.xml.err
diff --git a/result/valid/737840.xml.err.rdr b/result/valid/737840.xml.err.rdr
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/valid/737840.xml.err.rdr
diff --git a/result/valid/766956.xml b/result/valid/766956.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/valid/766956.xml
diff --git a/result/valid/766956.xml.err b/result/valid/766956.xml.err
new file mode 100644
index 0000000..b4ac1e5
--- /dev/null
+++ b/result/valid/766956.xml.err
@@ -0,0 +1,9 @@
+test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
+%ä%ent;
+   ^
+test/valid/dtds/766956.dtd:2: parser error : Content error in the external subset
+%ä%ent;
+        ^
+Entity: line 1: 
+value
+^
diff --git a/result/valid/766956.xml.err.rdr b/result/valid/766956.xml.err.rdr
new file mode 100644
index 0000000..4286379
--- /dev/null
+++ b/result/valid/766956.xml.err.rdr
@@ -0,0 +1,10 @@
+test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
+%ä%ent;
+   ^
+test/valid/dtds/766956.dtd:2: parser error : Content error in the external subset
+%ä%ent;
+        ^
+Entity: line 1: 
+value
+^
+./test/valid/766956.xml : failed to parse
diff --git a/result/valid/781333.xml b/result/valid/781333.xml
new file mode 100644
index 0000000..45dc451
--- /dev/null
+++ b/result/valid/781333.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<!DOCTYPE a [
+<!ELEMENT a (pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp:llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll)>
+]>
+<a/>
diff --git a/result/valid/781333.xml.err b/result/valid/781333.xml.err
new file mode 100644
index 0000000..b401b49
--- /dev/null
+++ b/result/valid/781333.xml.err
@@ -0,0 +1,3 @@
+./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got 
+<a/>
+    ^
diff --git a/result/valid/781333.xml.err.rdr b/result/valid/781333.xml.err.rdr
new file mode 100644
index 0000000..5ff5699
--- /dev/null
+++ b/result/valid/781333.xml.err.rdr
@@ -0,0 +1,6 @@
+./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got 
+<a/>
+    ^
+./test/valid/781333.xml:5: element a: validity error : Element a content does not follow the DTD, Expecting more child
+
+^
diff --git a/result/valid/t8.xml.err b/result/valid/t8.xml.err
index d795788..5272694 100644
--- a/result/valid/t8.xml.err
+++ b/result/valid/t8.xml.err
@@ -1,19 +1,21 @@
-Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
 
- %defroot; 
-          ^
+%defroot; %defmiddle; %deftest;
+         ^
 Entity: line 1: 
 &lt;!ELEMENT root (middle) >
 ^
-Entity: line 1: parser error : DOCTYPE improperly terminated
- %defroot; 
-          ^
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot; %defmiddle; %deftest;
+                     ^
 Entity: line 1: 
-&lt;!ELEMENT root (middle) >
+&lt;!ELEMENT middle (test) >
 ^
-Entity: line 1: parser error : Start tag expected, '<' not found
- %defroot; 
-          ^
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot; %defmiddle; %deftest;
+                               ^
 Entity: line 1: 
-&lt;!ELEMENT root (middle) >
- ^
+&lt;!ELEMENT test (#PCDATA) >
+^
diff --git a/result/valid/t8.xml.err.rdr b/result/valid/t8.xml.err.rdr
index c198a16..8da08fb 100644
--- a/result/valid/t8.xml.err.rdr
+++ b/result/valid/t8.xml.err.rdr
@@ -1,14 +1,22 @@
-Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
 
- %defroot; 
-          ^
+%defroot; %defmiddle; %deftest;
+         ^
 Entity: line 1: 
 &lt;!ELEMENT root (middle) >
 ^
-Entity: line 1: parser error : DOCTYPE improperly terminated
- %defroot; 
-          ^
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot; %defmiddle; %deftest;
+                     ^
 Entity: line 1: 
-&lt;!ELEMENT root (middle) >
+&lt;!ELEMENT middle (test) >
+^
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot; %defmiddle; %deftest;
+                               ^
+Entity: line 1: 
+&lt;!ELEMENT test (#PCDATA) >
 ^
 ./test/valid/t8.xml : failed to parse
diff --git a/result/valid/t8a.xml.err b/result/valid/t8a.xml.err
index d795788..2846b19 100644
--- a/result/valid/t8a.xml.err
+++ b/result/valid/t8a.xml.err
@@ -1,19 +1,21 @@
-Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
 
- %defroot; 
-          ^
+%defroot;%defmiddle;%deftest;
+         ^
 Entity: line 1: 
 &lt;!ELEMENT root (middle) >
 ^
-Entity: line 1: parser error : DOCTYPE improperly terminated
- %defroot; 
-          ^
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot;%defmiddle;%deftest;
+                    ^
 Entity: line 1: 
-&lt;!ELEMENT root (middle) >
+&lt;!ELEMENT middle (test) >
 ^
-Entity: line 1: parser error : Start tag expected, '<' not found
- %defroot; 
-          ^
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot;%defmiddle;%deftest;
+                             ^
 Entity: line 1: 
-&lt;!ELEMENT root (middle) >
- ^
+&lt;!ELEMENT test (#PCDATA) >
+^
diff --git a/result/valid/t8a.xml.err.rdr b/result/valid/t8a.xml.err.rdr
index b6bdcbe..6abe75a 100644
--- a/result/valid/t8a.xml.err.rdr
+++ b/result/valid/t8a.xml.err.rdr
@@ -1,14 +1,22 @@
-Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
 
- %defroot; 
-          ^
+%defroot;%defmiddle;%deftest;
+         ^
 Entity: line 1: 
 &lt;!ELEMENT root (middle) >
 ^
-Entity: line 1: parser error : DOCTYPE improperly terminated
- %defroot; 
-          ^
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot;%defmiddle;%deftest;
+                    ^
 Entity: line 1: 
-&lt;!ELEMENT root (middle) >
+&lt;!ELEMENT middle (test) >
+^
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot;%defmiddle;%deftest;
+                             ^
+Entity: line 1: 
+&lt;!ELEMENT test (#PCDATA) >
 ^
 ./test/valid/t8a.xml : failed to parse
diff --git a/rngparser.c b/rngparser.c
index e681e0c..7731d4d 100644
--- a/rngparser.c
+++ b/rngparser.c
@@ -95,7 +95,7 @@
     xmlHashTablePtr datatypes;
 
     /*
-     * dictionnary and keywords
+     * dictionary and keywords
      */
     xmlDictPtr     dict;
     const xmlChar *key_attribute;
diff --git a/runtest.c b/runtest.c
index 02fe09a..605c1d1 100644
--- a/runtest.c
+++ b/runtest.c
@@ -23,8 +23,10 @@
 #include <fcntl.h>
 
 #include <libxml/parser.h>
+#include <libxml/parserInternals.h>
 #include <libxml/tree.h>
 #include <libxml/uri.h>
+#include <libxml/encoding.h>
 
 #ifdef LIBXML_OUTPUT_ENABLED
 #ifdef LIBXML_READER_ENABLED
@@ -81,8 +83,10 @@
  */
 #ifdef	O_BINARY
 #define RD_FLAGS	O_RDONLY | O_BINARY
+#define WR_FLAGS	O_WRONLY | O_CREAT | O_TRUNC | O_BINARY
 #else
-#define	RD_FLAGS	O_RDONLY
+#define RD_FLAGS	O_RDONLY
+#define WR_FLAGS	O_WRONLY | O_CREAT | O_TRUNC
 #endif
 
 typedef int (*functest) (const char *filename, const char *result,
@@ -100,6 +104,7 @@
     int     options;  /* parser options for the test */
 };
 
+static int update_results = 0;
 static int checkTestFile(const char *filename);
 
 #if defined(_WIN32) && !defined(__CYGWIN__)
@@ -115,8 +120,8 @@
 } glob_t;
 
 #define GLOB_DOOFFS 0
-static int glob(const char *pattern, int flags,
-                int errfunc(const char *epath, int eerrno),
+static int glob(const char *pattern, ATTRIBUTE_UNUSED int flags,
+                ATTRIBUTE_UNUSED int errfunc(const char *epath, int eerrno),
                 glob_t *pglob) {
     glob_t *ret;
     WIN32_FIND_DATA FindFileData;
@@ -604,12 +609,34 @@
     return(1);
 }
 
-static int compareFiles(const char *r1, const char *r2) {
+static int compareFiles(const char *r1 /* temp */, const char *r2 /* result */) {
     int res1, res2;
     int fd1, fd2;
     char bytes1[4096];
     char bytes2[4096];
 
+    if (update_results) {
+        fd1 = open(r1, RD_FLAGS);
+        if (fd1 < 0)
+            return(-1);
+        fd2 = open(r2, WR_FLAGS, 0644);
+        if (fd2 < 0) {
+            close(fd1);
+            return(-1);
+        }
+        do {
+            res1 = read(fd1, bytes1, 4096);
+            if (res1 <= 0)
+                break;
+            res2 = write(fd2, bytes1, res1);
+            if (res2 <= 0 || res2 != res1)
+                break;
+        } while (1);
+        close(fd2);
+        close(fd1);
+        return(res1 != 0);
+    }
+
     fd1 = open(r1, RD_FLAGS);
     if (fd1 < 0)
         return(-1);
@@ -646,13 +673,31 @@
     int idx = 0;
     struct stat info;
 
-    if (stat(filename, &info) < 0)
+    if (update_results) {
+        fd = open(filename, WR_FLAGS, 0644);
+        if (fd < 0) {
+	    fprintf(stderr, "failed to open %s for writing", filename);
+            return(-1);
+	}
+        res = write(fd, mem, size);
+        close(fd);
+        return(res != size);
+    }
+
+    if (stat(filename, &info) < 0) {
+        fprintf(stderr, "failed to stat %s\n", filename);
 	return(-1);
-    if (info.st_size != size)
+    }
+    if (info.st_size != size) {
+        fprintf(stderr, "file %s is %ld bytes, result is %d bytes\n",
+	        filename, (long) info.st_size, size);
         return(-1);
+    }
     fd = open(filename, RD_FLAGS);
-    if (fd < 0)
+    if (fd < 0) {
+	fprintf(stderr, "failed to open %s for reading", filename);
         return(-1);
+    }
     while (idx < size) {
         res = read(fd, bytes, 4096);
 	if (res <= 0)
@@ -671,6 +716,9 @@
 	idx += res;
     }
     close(fd);
+    if (idx != size) {
+	fprintf(stderr,"Compare error index %d, size %d\n", idx, size);
+    }
     return(idx != size);
 }
 
@@ -1631,7 +1679,6 @@
 static xmlSAXHandlerPtr debugHTMLSAXHandler = &debugHTMLSAXHandlerStruct;
 #endif /* LIBXML_HTML_ENABLED */
 
-#ifdef LIBXML_SAX1_ENABLED
 /**
  * saxParseTest:
  * @filename: the file to parse
@@ -1672,7 +1719,15 @@
 	ret = 0;
     } else
 #endif
-    ret = xmlSAXUserParseFile(emptySAXHandler, NULL, filename);
+    {
+        xmlParserCtxtPtr ctxt = xmlCreateFileParserCtxt(filename);
+        memcpy(ctxt->sax, emptySAXHandler, sizeof(xmlSAXHandler));
+        xmlCtxtUseOptions(ctxt, options);
+        xmlParseDocument(ctxt);
+        ret = ctxt->wellFormed ? 0 : ctxt->errNo;
+        xmlFreeDoc(ctxt->myDoc);
+        xmlFreeParserCtxt(ctxt);
+    }
     if (ret == XML_WAR_UNDECLARED_ENTITY) {
         fprintf(SAXdebug, "xmlSAXUserParseFile returned error %d\n", ret);
         ret = 0;
@@ -1688,10 +1743,19 @@
 	ret = 0;
     } else
 #endif
-    if (options & XML_PARSE_SAX1) {
-	ret = xmlSAXUserParseFile(debugSAXHandler, NULL, filename);
-    } else {
-	ret = xmlSAXUserParseFile(debugSAX2Handler, NULL, filename);
+    {
+        xmlParserCtxtPtr ctxt = xmlCreateFileParserCtxt(filename);
+        if (options & XML_PARSE_SAX1) {
+            memcpy(ctxt->sax, debugSAXHandler, sizeof(xmlSAXHandler));
+            options -= XML_PARSE_SAX1;
+        } else {
+            memcpy(ctxt->sax, debugSAX2Handler, sizeof(xmlSAXHandler));
+        }
+        xmlCtxtUseOptions(ctxt, options);
+        xmlParseDocument(ctxt);
+        ret = ctxt->wellFormed ? 0 : ctxt->errNo;
+        xmlFreeDoc(ctxt->myDoc);
+        xmlFreeParserCtxt(ctxt);
     }
     if (ret == XML_WAR_UNDECLARED_ENTITY) {
         fprintf(SAXdebug, "xmlSAXUserParseFile returned error %d\n", ret);
@@ -1715,7 +1779,6 @@
 
     return(ret);
 }
-#endif
 
 /************************************************************************
  *									*
@@ -1808,6 +1871,7 @@
     const char *base;
     int size, res;
     int cur = 0;
+    int chunkSize = 4;
 
     nb_tests++;
     /*
@@ -1818,17 +1882,21 @@
 	return(-1);
     }
 
+    if (chunkSize > size)
+        chunkSize = size;
+
 #ifdef LIBXML_HTML_ENABLED
     if (options & XML_PARSE_HTML)
-	ctxt = htmlCreatePushParserCtxt(NULL, NULL, base + cur, 4, filename,
+	ctxt = htmlCreatePushParserCtxt(NULL, NULL, base + cur, chunkSize, filename,
 	                                XML_CHAR_ENCODING_NONE);
     else
 #endif
-    ctxt = xmlCreatePushParserCtxt(NULL, NULL, base + cur, 4, filename);
+    ctxt = xmlCreatePushParserCtxt(NULL, NULL, base + cur, chunkSize, filename);
     xmlCtxtUseOptions(ctxt, options);
-    cur += 4;
-    while (cur < size) {
-        if (cur + 1024 >= size) {
+    cur += chunkSize;
+    chunkSize = 1024;
+    do {
+        if (cur + chunkSize >= size) {
 #ifdef LIBXML_HTML_ENABLED
 	    if (options & XML_PARSE_HTML)
 		htmlParseChunk(ctxt, base + cur, size - cur, 1);
@@ -1839,13 +1907,13 @@
 	} else {
 #ifdef LIBXML_HTML_ENABLED
 	    if (options & XML_PARSE_HTML)
-		htmlParseChunk(ctxt, base + cur, 1024, 0);
+		htmlParseChunk(ctxt, base + cur, chunkSize, 0);
 	    else
 #endif
-	    xmlParseChunk(ctxt, base + cur, 1024, 0);
-	    cur += 1024;
+	    xmlParseChunk(ctxt, base + cur, chunkSize, 0);
+	    cur += chunkSize;
 	}
-    }
+    } while (cur < size);
     doc = ctxt->myDoc;
 #ifdef LIBXML_HTML_ENABLED
     if (options & XML_PARSE_HTML)
@@ -1871,7 +1939,7 @@
     if ((base == NULL) || (res != 0)) {
 	if (base != NULL)
 	    xmlFree((char *)base);
-        fprintf(stderr, "Result for %s failed\n", filename);
+        fprintf(stderr, "Result for %s failed in %s\n", filename, result);
 	return(-1);
     }
     xmlFree((char *)base);
@@ -1926,7 +1994,7 @@
     if ((base == NULL) || (res != 0)) {
 	if (base != NULL)
 	    xmlFree((char *)base);
-        fprintf(stderr, "Result for %s failed\n", filename);
+        fprintf(stderr, "Result for %s failed in %s\n", filename, result);
 	return(-1);
     }
     xmlFree((char *)base);
@@ -2037,16 +2105,16 @@
 	    xmlDocDumpMemory(doc, (xmlChar **) &base, &size);
 	}
 	res = compareFileMem(result, base, size);
+	if (res != 0) {
+	    fprintf(stderr, "Result for %s failed in %s\n", filename, result);
+	    return(-1);
+	}
     }
     if (doc != NULL) {
 	if (base != NULL)
 	    xmlFree((char *)base);
 	xmlFreeDoc(doc);
     }
-    if (res != 0) {
-        fprintf(stderr, "Result for %s failed\n", filename);
-	return(-1);
-    }
     if (err != NULL) {
 	res = compareFileMem(err, testErrors, testErrorsSize);
 	if (res != 0) {
@@ -2096,7 +2164,8 @@
 }
 static int
 streamProcessTest(const char *filename, const char *result, const char *err,
-                  xmlTextReaderPtr reader, const char *rng, int options) {
+                  xmlTextReaderPtr reader, const char *rng,
+                  int options ATTRIBUTE_UNUSED) {
     int ret;
     char *temp = NULL;
     FILE *t = NULL;
@@ -2159,7 +2228,7 @@
             free(temp);
         }
 	if (ret) {
-	    fprintf(stderr, "Result for %s failed\n", filename);
+	    fprintf(stderr, "Result for %s failed in %s\n", filename, result);
 	    return(-1);
 	}
     }
@@ -2271,10 +2340,19 @@
 static xmlDocPtr xpathDocument;
 
 static void
+ignoreGenericError(void *ctx ATTRIBUTE_UNUSED,
+        const char *msg ATTRIBUTE_UNUSED, ...) {
+}
+
+static void
 testXPath(const char *str, int xptr, int expr) {
+    xmlGenericErrorFunc handler = ignoreGenericError;
     xmlXPathObjectPtr res;
     xmlXPathContextPtr ctxt;
 
+    /* Don't print generic errors to stderr. */
+    initGenericErrorDefaultFunc(&handler);
+
     nb_tests++;
 #if defined(LIBXML_XPTR_ENABLED)
     if (xptr) {
@@ -2303,6 +2381,9 @@
     xmlXPathDebugDumpObject(xpathOutput, res, 0);
     xmlXPathFreeObject(res);
     xmlXPathFreeContext(ctxt);
+
+    /* Reset generic error handler. */
+    initGenericErrorDefaultFunc(NULL);
 }
 
 /**
@@ -2362,7 +2443,7 @@
     if (result != NULL) {
 	ret = compareFiles(temp, result);
 	if (ret) {
-	    fprintf(stderr, "Result for %s failed\n", filename);
+	    fprintf(stderr, "Result for %s failed in %s\n", filename, result);
 	}
     }
 
@@ -2533,7 +2614,7 @@
     if (result != NULL) {
 	ret = compareFiles(temp, result);
 	if (ret) {
-	    fprintf(stderr, "Result for %s failed\n", filename);
+	    fprintf(stderr, "Result for %s failed in %s\n", filename, result);
 	    res = 1;
 	}
     }
@@ -2661,7 +2742,7 @@
     if (result != NULL) {
 	ret = compareFiles(temp, result);
 	if (ret) {
-	    fprintf(stderr, "Result for %s failed\n", filename);
+	    fprintf(stderr, "Result for %s failed in %s\n", filename, result);
 	    res = 1;
 	}
     }
@@ -3430,11 +3511,11 @@
     result[499] = 0;
     memcpy(xml + len, ".xml", 5);
 
-    if (!checkTestFile(xml)) {
+    if (!checkTestFile(xml) && !update_results) {
 	fprintf(stderr, "Missing xml file %s\n", xml);
 	return(-1);
     }
-    if (!checkTestFile(result)) {
+    if (!checkTestFile(result) && !update_results) {
 	fprintf(stderr, "Missing result file %s\n", result);
 	return(-1);
     }
@@ -3533,7 +3614,7 @@
 
     ret = compareFiles(temp, result);
     if (ret) {
-	fprintf(stderr, "Result for %s failed\n", filename);
+	fprintf(stderr, "Result for %s failed in %s\n", filename, result);
 	ret = 1;
     }
     if (temp != NULL) {
@@ -3805,7 +3886,7 @@
     prefix[len] = 0;
 
     snprintf(buf, 499, "result/c14n/%s/%s", subdir,prefix);
-    if (!checkTestFile(buf)) {
+    if (!checkTestFile(buf) && !update_results) {
         fprintf(stderr, "Missing result file %s", buf);
 	return(-1);
     }
@@ -3859,7 +3940,7 @@
     return(c14nCommonTest(filename, 0, XML_C14N_1_1, "1-1-without-comments"));
 }
 #endif
-#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) && defined (LIBXML_SAX1_ENABLED)
+#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED)
 /************************************************************************
  *									*
  *			Catalog and threads test			*
@@ -3871,19 +3952,23 @@
  */
 #define	MAX_ARGC	20
 
-static const char *catalog = "test/threads/complex.xml";
-static const char *testfiles[] = {
-    "test/threads/abc.xml",
-    "test/threads/acb.xml",
-    "test/threads/bac.xml",
-    "test/threads/bca.xml",
-    "test/threads/cab.xml",
-    "test/threads/cba.xml",
-    "test/threads/invalid.xml",
-};
+typedef struct {
+    const char *filename;
+    int okay;
+} xmlThreadParams;
 
-static const char *Okay = "OK";
-static const char *Failed = "Failed";
+static const char *catalog = "test/threads/complex.xml";
+static xmlThreadParams threadParams[] = {
+    { "test/threads/abc.xml", 0 },
+    { "test/threads/acb.xml", 0 },
+    { "test/threads/bac.xml", 0 },
+    { "test/threads/bca.xml", 0 },
+    { "test/threads/cab.xml", 0 },
+    { "test/threads/cba.xml", 0 },
+    { "test/threads/invalid.xml", 0 }
+};
+static const unsigned int num_threads = sizeof(threadParams) /
+                                        sizeof(threadParams[0]);
 
 #ifndef xmlDoValidityCheckingDefaultValue
 #error xmlDoValidityCheckingDefaultValue is not a macro
@@ -3896,7 +3981,8 @@
 thread_specific_data(void *private_data)
 {
     xmlDocPtr myDoc;
-    const char *filename = (const char *) private_data;
+    xmlThreadParams *params = (xmlThreadParams *) private_data;
+    const char *filename = params->filename;
     int okay = 1;
 
     if (!strcmp(filename, "test/threads/invalid.xml")) {
@@ -3906,7 +3992,11 @@
         xmlDoValidityCheckingDefaultValue = 1;
         xmlGenericErrorContext = stderr;
     }
+#ifdef LIBXML_SAX1_ENABLED
     myDoc = xmlParseFile(filename);
+#else
+    myDoc = xmlReadFile(filename, NULL, XML_WITH_CATALOG);
+#endif
     if (myDoc) {
         xmlFreeDoc(myDoc);
     } else {
@@ -3932,12 +4022,11 @@
             okay = 0;
         }
     }
-    if (okay == 0)
-        return ((void *) Failed);
-    return ((void *) Okay);
+    params->okay = okay;
+    return(NULL);
 }
 
-#if defined WIN32
+#if defined(_WIN32) && !defined(__CYGWIN__)
 #include <windows.h>
 #include <string.h>
 
@@ -3948,15 +4037,14 @@
 static DWORD WINAPI
 win32_thread_specific_data(void *private_data)
 {
-    return((DWORD) thread_specific_data(private_data));
+    thread_specific_data(private_data);
+    return(0);
 }
 
 static int
 testThread(void)
 {
     unsigned int i, repeat;
-    unsigned int num_threads = sizeof(testfiles) / sizeof(testfiles[0]);
-    DWORD results[MAX_ARGC];
     BOOL ret;
     int res = 0;
 
@@ -3966,7 +4054,6 @@
         nb_tests++;
 
         for (i = 0; i < num_threads; i++) {
-            results[i] = 0;
             tid[i] = (HANDLE) - 1;
         }
 
@@ -3975,7 +4062,7 @@
 
             tid[i] = CreateThread(NULL, 0,
                                   win32_thread_specific_data,
-				  (void *) testfiles[i], 0,
+				  (void *) &threadParams[i], 0,
                                   &useless);
             if (tid[i] == NULL) {
                 fprintf(stderr, "CreateThread failed\n");
@@ -3990,7 +4077,8 @@
 	}
 
         for (i = 0; i < num_threads; i++) {
-            ret = GetExitCodeThread(tid[i], &results[i]);
+            DWORD exitCode;
+            ret = GetExitCodeThread(tid[i], &exitCode);
             if (ret == 0) {
                 fprintf(stderr, "GetExitCodeThread failed\n");
                 return(1);
@@ -4000,9 +4088,9 @@
 
         xmlCatalogCleanup();
         for (i = 0; i < num_threads; i++) {
-            if (results[i] != (DWORD) Okay) {
+            if (threadParams[i].okay == 0) {
                 fprintf(stderr, "Thread %d handling %s failed\n",
-		        i, testfiles[i]);
+		        i, threadParams[i].filename);
 	        res = 1;
 	    }
         }
@@ -4020,8 +4108,6 @@
 testThread(void)
 {
     unsigned int i, repeat;
-    unsigned int num_threads = sizeof(testfiles) / sizeof(testfiles[0]);
-    void *results[MAX_ARGC];
     status_t ret;
     int res = 0;
 
@@ -4029,13 +4115,12 @@
     for (repeat = 0; repeat < 500; repeat++) {
         xmlLoadCatalog(catalog);
         for (i = 0; i < num_threads; i++) {
-            results[i] = NULL;
             tid[i] = (thread_id) - 1;
         }
         for (i = 0; i < num_threads; i++) {
             tid[i] =
                 spawn_thread(thread_specific_data, "xmlTestThread",
-                             B_NORMAL_PRIORITY, (void *) testfiles[i]);
+                             B_NORMAL_PRIORITY, (void *) &threadParams[i]);
             if (tid[i] < B_OK) {
                 fprintf(stderr, "beos_thread_create failed\n");
                 return (1);
@@ -4043,7 +4128,8 @@
             printf("beos_thread_create %d -> %d\n", i, tid[i]);
         }
         for (i = 0; i < num_threads; i++) {
-            ret = wait_for_thread(tid[i], &results[i]);
+            void *result;
+            ret = wait_for_thread(tid[i], &result);
             printf("beos_thread_wait %d -> %d\n", i, ret);
             if (ret != B_OK) {
                 fprintf(stderr, "beos_thread_wait failed\n");
@@ -4054,8 +4140,9 @@
         xmlCatalogCleanup();
         ret = B_OK;
         for (i = 0; i < num_threads; i++)
-            if (results[i] != (void *) Okay) {
-                printf("Thread %d handling %s failed\n", i, testfiles[i]);
+            if (threadParams[i].okay == 0) {
+                printf("Thread %d handling %s failed\n", i,
+                       threadParams[i].filename);
                 ret = B_ERROR;
             }
     }
@@ -4073,8 +4160,6 @@
 testThread(void)
 {
     unsigned int i, repeat;
-    unsigned int num_threads = sizeof(testfiles) / sizeof(testfiles[0]);
-    void *results[MAX_ARGC];
     int ret;
     int res = 0;
 
@@ -4085,20 +4170,20 @@
         nb_tests++;
 
         for (i = 0; i < num_threads; i++) {
-            results[i] = NULL;
             tid[i] = (pthread_t) - 1;
         }
 
         for (i = 0; i < num_threads; i++) {
             ret = pthread_create(&tid[i], 0, thread_specific_data,
-                                 (void *) testfiles[i]);
+                                 (void *) &threadParams[i]);
             if (ret != 0) {
                 fprintf(stderr, "pthread_create failed\n");
                 return (1);
             }
         }
         for (i = 0; i < num_threads; i++) {
-            ret = pthread_join(tid[i], &results[i]);
+            void *result;
+            ret = pthread_join(tid[i], &result);
             if (ret != 0) {
                 fprintf(stderr, "pthread_join failed\n");
                 return (1);
@@ -4107,9 +4192,9 @@
 
         xmlCatalogCleanup();
         for (i = 0; i < num_threads; i++)
-            if (results[i] != (void *) Okay) {
+            if (threadParams[i].okay == 0) {
                 fprintf(stderr, "Thread %d handling %s failed\n",
-                        i, testfiles[i]);
+                        i, threadParams[i].filename);
                 res = 1;
             }
     }
@@ -4156,6 +4241,9 @@
     { "Error cases regression tests",
       errParseTest, "./test/errors/*.xml", "result/errors/", "", ".err",
       0 },
+    { "Error cases regression tests (old 1.0)",
+      errParseTest, "./test/errors10/*.xml", "result/errors10/", "", ".err",
+      XML_PARSE_OLD10 },
 #ifdef LIBXML_READER_ENABLED
     { "Error cases stream regression tests",
       streamParseTest, "./test/errors/*.xml", "result/errors/", NULL, ".str",
@@ -4177,10 +4265,13 @@
     { "SAX1 callbacks regression tests" ,
       saxParseTest, "./test/*", "result/", ".sax", NULL,
       XML_PARSE_SAX1 },
+#endif
     { "SAX2 callbacks regression tests" ,
       saxParseTest, "./test/*", "result/", ".sax2", NULL,
       0 },
-#endif
+    { "SAX2 callbacks regression tests with entity substitution" ,
+      saxParseTest, "./test/*", "result/noent/", ".sax2", NULL,
+      XML_PARSE_NOENT },
 #ifdef LIBXML_PUSH_ENABLED
     { "XML push regression tests" ,
       pushParseTest, "./test/*", "result/", "", NULL,
@@ -4195,12 +4286,10 @@
       pushParseTest, "./test/HTML/*", "result/HTML/", "", ".err",
       XML_PARSE_HTML },
 #endif
-#ifdef LIBXML_SAX1_ENABLED
     { "HTML SAX regression tests" ,
       saxParseTest, "./test/HTML/*", "result/HTML/", ".sax", NULL,
       XML_PARSE_HTML },
 #endif
-#endif
 #ifdef LIBXML_VALID_ENABLED
     { "Valid documents regression tests" ,
       errParseTest, "./test/VCM/*", NULL, NULL, NULL,
@@ -4303,7 +4392,7 @@
       c14n11WithoutCommentTest, "./test/c14n/1-1-without-comments/*.xml", NULL, NULL, NULL,
       0 },
 #endif
-#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_SAX1_ENABLED)
+#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED)
     { "Catalog and Threads regression tests" ,
       threadsTest, NULL, NULL, NULL, NULL,
       0 },
@@ -4324,6 +4413,9 @@
     char *result;
     char *error;
     int mem;
+    xmlCharEncodingHandlerPtr ebcdicHandler;
+
+    ebcdicHandler = xmlGetCharEncodingHandler(XML_CHAR_ENCODING_EBCDIC);
 
     if (tst == NULL) return(-1);
     if (tst->in != NULL) {
@@ -4334,6 +4426,9 @@
 	for (i = 0;i < globbuf.gl_pathc;i++) {
 	    if (!checkTestFile(globbuf.gl_pathv[i]))
 	        continue;
+            if ((ebcdicHandler == NULL) &&
+                (strstr(globbuf.gl_pathv[i], "ebcdic") != NULL))
+                continue;
 	    if (tst->suffix != NULL) {
 		result = resultFilename(globbuf.gl_pathv[i], tst->out,
 					tst->suffix);
@@ -4354,9 +4449,9 @@
 	    } else {
 	        error = NULL;
 	    }
-	    if ((result) &&(!checkTestFile(result))) {
+	    if ((result) &&(!checkTestFile(result)) && !update_results) {
 	        fprintf(stderr, "Missing result file %s\n", result);
-	    } else if ((error) &&(!checkTestFile(error))) {
+	    } else if ((error) &&(!checkTestFile(error)) && !update_results) {
 	        fprintf(stderr, "Missing error file %s\n", error);
 	    } else {
 		mem = xmlMemUsed();
@@ -4399,6 +4494,9 @@
 	    err++;
 	}
     }
+
+    xmlCharEncCloseFunc(ebcdicHandler);
+
     return(err);
 }
 
@@ -4435,11 +4533,18 @@
     int i, a, ret = 0;
     int subset = 0;
 
+#if defined(_WIN32) && !defined(__CYGWIN__)
+    setvbuf(stdout, NULL, _IONBF, 0);
+    setvbuf(stderr, NULL, _IONBF, 0);
+#endif
+
     initializeLibxml2();
 
     for (a = 1; a < argc;a++) {
         if (!strcmp(argv[a], "-v"))
 	    verbose = 1;
+        else if (!strcmp(argv[a], "-u"))
+	    update_results = 1;
         else if (!strcmp(argv[a], "-quiet"))
 	    tests_quiet = 1;
 	else {
diff --git a/test/HTML/758518-entity.html b/test/HTML/758518-entity.html
new file mode 100644
index 0000000..d31c8ff
--- /dev/null
+++ b/test/HTML/758518-entity.html
@@ -0,0 +1 @@
+&jÙ
\ No newline at end of file
diff --git a/test/HTML/758518-tag.html b/test/HTML/758518-tag.html
new file mode 100644
index 0000000..935e752
--- /dev/null
+++ b/test/HTML/758518-tag.html
@@ -0,0 +1 @@
+<?a“
\ No newline at end of file
diff --git a/test/HTML/758605.html b/test/HTML/758605.html
new file mode 100644
index 0000000..9b1b3c2
--- /dev/null
+++ b/test/HTML/758605.html
@@ -0,0 +1 @@
+&:ê
diff --git a/test/HTML/758606.html b/test/HTML/758606.html
new file mode 100644
index 0000000..01a013c
--- /dev/null
+++ b/test/HTML/758606.html
@@ -0,0 +1 @@
+<!--<!doctype
diff --git a/test/HTML/758606_2.html b/test/HTML/758606_2.html
new file mode 100644
index 0000000..daa185b
--- /dev/null
+++ b/test/HTML/758606_2.html
@@ -0,0 +1 @@
+<!--‘<!dOctYPE
diff --git a/test/XPath/docs/ns b/test/XPath/docs/ns
new file mode 100644
index 0000000..2338a6f
--- /dev/null
+++ b/test/XPath/docs/ns
@@ -0,0 +1,5 @@
+<doc xmlns:ns1="nsuri1">
+  <preceding/>
+  <elem xmlns:ns2="nsuri2"/>
+  <following/>
+</doc>
diff --git a/test/XPath/docs/str b/test/XPath/docs/str
index 547e54d..449de01 100644
--- a/test/XPath/docs/str
+++ b/test/XPath/docs/str
@@ -6,4 +6,6 @@
   <p><p>a span</p>n<p>ing one</p></p>
   <p><p>and an unbal</p><empty/>anced test</p>
   <p>for empty string <seq>123</seq></p>
+  <p id="1">a<b>b</b>c</p>
+  <p id="2"><!--X-->abc</p>
 </chapter>
diff --git a/test/XPath/expr/base b/test/XPath/expr/base
index 9aaed4f..cc18735 100644
--- a/test/XPath/expr/base
+++ b/test/XPath/expr/base
@@ -3,3 +3,15 @@
 2*3
 1+2*3+4
 (1+2)*(3+4)
+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.000000000000000000000000000000000000000000000000001
+-0.000000000000000000000000000000000000000000000000001
+1e2147483648
+1e4294967296
+1e9223372036854775808
+1e18446744073709551616
+1e-2147483649
+1e-4294967296
+1e-9223372036854775809
+1e-18446744073709551616
+self::-name
diff --git a/test/XPath/expr/floats b/test/XPath/expr/floats
index 96c10d1..b447524 100644
--- a/test/XPath/expr/floats
+++ b/test/XPath/expr/floats
@@ -59,3 +59,5 @@
 -5 mod 2
 -5 mod -2
 8 mod 3 = 2
+12345678901234567890
+-12345678901234567890
diff --git a/test/XPath/expr/functions b/test/XPath/expr/functions
index d168b18..00b9461 100644
--- a/test/XPath/expr/functions
+++ b/test/XPath/expr/functions
@@ -9,12 +9,22 @@
 floor(0)
 floor(5.2)
 floor(-5.2)
+floor(100000000000000000000)
+floor(-100000000000000000000)
+floor(0 div 0)
+floor(1 div 0)
+floor(-1 div 0)
 ceiling(0.1)
 ceiling(-0.1)
 ceiling(-0)
 ceiling(0)
 ceiling(5.2)
 ceiling(-5.2)
+ceiling(100000000000000000000)
+ceiling(-100000000000000000000)
+ceiling(0 div 0)
+ceiling(1 div 0)
+ceiling(-1 div 0)
 round(0.1)
 round(5.2)
 round(5.5)
@@ -23,3 +33,10 @@
 round(-5.2)
 round(-5.5)
 round(-5.6)
+round(0.5)
+round(-0.5)
+round(100000000000000000000)
+round(-100000000000000000000)
+round(0 div 0)
+round(1 div 0)
+round(-1 div 0)
diff --git a/test/XPath/expr/strings b/test/XPath/expr/strings
index 849ca14..ba02c79 100644
--- a/test/XPath/expr/strings
+++ b/test/XPath/expr/strings
@@ -3,6 +3,8 @@
 string(-0.5)
 string(true())
 string(false())
+string(12345678901234567890)
+string(-12345678901234567890)
 concat("titi","toto")
 concat("titi","toto","tata")
 concat("titi",'toto')
diff --git a/test/XPath/tests/chaptersbase b/test/XPath/tests/chaptersbase
index daa53b7..f8fbe2a 100644
--- a/test/XPath/tests/chaptersbase
+++ b/test/XPath/tests/chaptersbase
@@ -7,3 +7,7 @@
 /child::EXAMPLE/child::head/node()
 /descendant::title
 /descendant::p/ancestor::chapter
+//p[1]
+//p[0 div 0]
+//p[100000000000000000000]
+//p[-100000000000000000000]
diff --git a/test/XPath/tests/nssimple b/test/XPath/tests/nssimple
new file mode 100644
index 0000000..8b343a3
--- /dev/null
+++ b/test/XPath/tests/nssimple
@@ -0,0 +1,5 @@
+/doc/elem/namespace::node()/..
+/doc/elem/namespace::*/self::node()[true()]
+//*[namespace::ns1]
+/doc/elem/namespace::ns2/following::*
+/doc/elem/namespace::ns2/preceding::*
diff --git a/test/XPath/tests/simplebase b/test/XPath/tests/simplebase
index 7e4203a..7b302af 100644
--- a/test/XPath/tests/simplebase
+++ b/test/XPath/tests/simplebase
@@ -5,5 +5,12 @@
 /child::EXAMPLE/child::head/child::title
 /child::EXAMPLE/child::head/child::title/child::text()
 /child::EXAMPLE/child::head/node()
+/child::EXAMPLE/attribute::prop1/self::node()
+/child::EXAMPLE/attribute::prop1/self::*
+/child::EXAMPLE/attribute::prop1/descendant-or-self::node()
+/child::EXAMPLE/attribute::prop1/descendant-or-self::*
+/child::EXAMPLE/attribute::prop1/ancestor-or-self::node()
+/child::EXAMPLE/attribute::prop1/ancestor-or-self::*
 /descendant::title
 /descendant::p/ancestor::chapter
+/child::EXAMPLE/attribute::prop2/preceding::text()
diff --git a/test/XPath/tests/strbase b/test/XPath/tests/strbase
new file mode 100644
index 0000000..b818325
--- /dev/null
+++ b/test/XPath/tests/strbase
@@ -0,0 +1 @@
+//p[.='abc']
diff --git a/test/XPath/xptr/viderror b/test/XPath/xptr/viderror
new file mode 100644
index 0000000..da8c53b
--- /dev/null
+++ b/test/XPath/xptr/viderror
@@ -0,0 +1 @@
+xpointer(non-existing-fn()/range-to(id('chapter2')))
diff --git a/test/cdata-2-byte-UTF-8.xml b/test/cdata-2-byte-UTF-8.xml
new file mode 100644
index 0000000..8552efc
--- /dev/null
+++ b/test/cdata-2-byte-UTF-8.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+<p><![CDATA[ ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+</doc>
diff --git a/test/cdata-3-byte-UTF-8.xml b/test/cdata-3-byte-UTF-8.xml
new file mode 100644
index 0000000..b959a12
--- /dev/null
+++ b/test/cdata-3-byte-UTF-8.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[  牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+</doc>
diff --git a/test/cdata-4-byte-UTF-8.xml b/test/cdata-4-byte-UTF-8.xml
new file mode 100644
index 0000000..4d1d9a8
--- /dev/null
+++ b/test/cdata-4-byte-UTF-8.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[  🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[   🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+</doc>
diff --git a/test/errors/754946.xml b/test/errors/754946.xml
new file mode 100644
index 0000000..edeab32
--- /dev/null
+++ b/test/errors/754946.xml
@@ -0,0 +1,4 @@
+<!DOCTYPE A [
+  <!ENTITY % SYSTEM "A<lbbbbbbbbbbbbbbbbbbb_">
+  %SYSTEM;
+  <![
diff --git a/test/errors/754947.xml b/test/errors/754947.xml
new file mode 100644
index 0000000..bd9997e
--- /dev/null
+++ b/test/errors/754947.xml
@@ -0,0 +1 @@
+<d><![CDATA[0000000000000î]]>
\ No newline at end of file
diff --git a/test/errors/758588.xml b/test/errors/758588.xml
new file mode 100644
index 0000000..bec7e93
--- /dev/null
+++ b/test/errors/758588.xml
@@ -0,0 +1 @@
+<a-340282366920938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
\ No newline at end of file
diff --git a/test/errors/759020.xml b/test/errors/759020.xml
new file mode 100644
index 0000000..db23275
--- /dev/null
+++ b/test/errors/759020.xml
@@ -0,0 +1,46 @@
+<?l 00000000000000000000000000000?>
+<s00 w0000="000" h00000="000"
+ xmlns = '00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'       
+                                                                              
+                                                                              
+                                                                              
+           
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                              
+                                                                   
\ No newline at end of file
diff --git a/test/errors/759398.xml b/test/errors/759398.xml
new file mode 100755
index 0000000..132e029
--- /dev/null
+++ b/test/errors/759398.xml
@@ -0,0 +1,326 @@
+<?xml version='1.0' encoding='ISO-8859-5' standalone='no'?>
+<!DOCTYPE spec SYSTEM "dtds/spec.dtd" [
+
+<!-- LAST TOUCHED BY: Tim Bray, 8 February 1997 -->
+
+<!-- The words 'FINAL EDIT' in comments mark places where changes
+need to be made after approval of the document by the ERB, before
+publication.  -->
+
+<!ENTITY XML.version "1.0">
+<!ENTITY doc.date "10 February 1998">
+<!ENTITY iso6.doc.date "19980210">
+<!ENTITY w3c.doc.date "02-Feb-1998">
+<!ENTITY draft.day '10'>
+<!ENTITY draft.month 'February'>
+<!ENTITY draft.year '1998'>
+
+<!ENTITY WebSGML 
+ 'WebSGML Adaptations Annex to ISO 8879'>
+
+<!ENTITY lt     "<"> 
+<!ENTITY gt     ">"> 
+<!ENTITY xmlpio "'&lt;?xml'">
+<!ENTITY pic    "'?>'">
+<!ENTITY br     "\n">
+<!ENTITY cellback '#c0d9c0'>
+<!ENTITY mdash  "--"> <!-- &#x2014, but nsgmls doesn't grok hex -->
+<!ENTITY com    "--">
+<!ENTITY como   "--">
+<!ENTITY comc   "--">
+<!ENTITY hcro   "&amp;#x">
+<!-- <!ENTITY nbsp " "> -->
+<!ENTITY nbsp   "&#160;">
+<!ENTITY magicents "<code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>">
+ 
+<!-- audience and distribution status:  for use at publication time -->
+<!ENTITY doc.audience "public review and discussion">
+<!ENTITY doc.distribution "may be dislributed freely, as long as
+all text and legal notices remain intact">
+
+]>
+
+<!-- for Panorama *-->
+<?VERBATIM "eg" ?>
+
+<spec>
+<header>
+<title>Extensible Markup Language (XML) 1.0</title>
+<version></version>
+<w3c-designation>REC-xml-&iso6.doc.date;</w3c-designation>
+<w3c-doctype>W3C Recommendation</w3c-doctype>
+<pubdate><day>&draft.day;</day><month>&draft.month;</month><year>&draft.year;</year></pubdate>
+
+<publoc>
+<loc  href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;</loc>
+<loc  href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.xml">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.xml</loc>
+<loc  href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.html">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.html</loc>
+<loc  href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.pdf">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.pdf</loc>
+<loc  href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.ps">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.ps</loc>
+</publoc>
+<latestloc>
+<loc  href="http://www.w3.org/TR/REC-xml">
+httÿÿÿ€www.w3.org/TR/REC-xml</loc>
+</latestloc>
+<prevlocs>
+<loc  href="http://www.w3.org/TR/PR-xml-971208">
+http://www.w3.org/TR/PR-xml-971208</loc>
+<!--
+<loc  href='http://www.w3.org/TR/WD-xml-961114'>
+http://www.w3.org/TR/WD-xml-961114</loc>
+<loc  href='http://www.w3.org/TR/WD-xml-lang-970331'>
+http://www.w3.org/TR/WD-xml-lang-970331</loc>
+<loc  href='http://www.w3.org/TR/WD-xml-lang-970630'>
+http://www.w3.org/TR/WD-xml-lang-970630</loc>
+<loc  href='http://www.w3.org/TR/WD-xml-970807'>
+http://www.w3.org/TR/WD-xml-970807</loc>
+<loc  href='http://www.w3.org/TR/WD-xml-971117'>
+http://www.w3.org/TR/WD-xml-971117</loc>-->
+</prevlocs>
+<authlist>
+<author><name>Tim Bray</name>
+<affiliation>Textuality and Netscape</affiliation>
+<email 
+href="mailto:tbray@textuality.com">tbray@textuality.com</email></author>
+<author><name>Jean Paoli</name>
+<affiliation>Microsoft</affiliation>
+<email href="mailto:jeanpa@microsoft.com">jeanpa@microsoft.com</email></author>
+<author><name>C. M. Sperberg-McQueen</name>
+<affiliation>University of Illinois at Chicago</affiliation>
+<email href="mailto:cmsmcq@uic.edu">cmsmcq@uic.edu</email></author>
+</authlist>
+<abstract>
+<p>The Extensible Markup Language (XML) is a subset of
+SGML that is completely described in this document. Its goal is to
+enable generic SGML to be served, received, and processed on the Web
+in the way that is now possible with HTML. XML has been designed for
+ease of implementation and for interoperability with both SGML and
+HTML.</p>
+</abstract>
+<status>
+<p>This document has been reviewed by W3C Members and
+other interested parties and has been endorsed by the
+Director as a W3C Recommendation. It is a stable
+document and may be used as reference material or cited
+as a normative reference from another document. W3C's
+role in making the Recommendation is to draw attention
+to the spPcification and to promote its widespread
+deployment. This enhances the functionality and
+interoperability of the Web.</p>
+<p>
+This document specifies a syntax created by subsetting an existing,
+widely used international text processing standard (Standard
+Generalized Markup Language, ISO 8879:1986(E) as amended and
+corrected) for use on the World Wide Web.  It is a product of the W3C
+XML Activity, details of which can be found at <loc
+href='http://www.w3.org/XML'>http://www.w3.org/XML</loc>.  A list of
+current W3C Recommendations and other technical documents can be found
+at <loc href='http://www.w3.org/TR'>http://www.w3.org/TR</loc>.
+</p>
+<p>This specification uses the term URI, which is defined by <bibref
+ref="Berners-Lee"/>, a work in progress expected to update <bibref
+ref="RFC1738"/> and <bibref ref="RFC1808"/>. 
+</p>
+<p>The list of known errors in this specification is 
+available at 
+<loc href='http://www.w3.org/XML/xml-19980210-errata'>http://www.w3.org/XML/xml-19980210-errata</loc>.</p>
+<p>Please report errors in this document to 
+<loc href='mailto:xml-editor@w3.org'>xml-editor@w3.org</loc>.
+</p>
+</status>
+
+
+<pubstmt>
+<p>Chicago, Vancouver, Mountain View, et al.:
+World-Wide Web Consortium, XML Working Group, 1996, 1997.</p>
+</pubstmt>
+<sourcedesc>
+<p>Created in electronic form.</p>
+</sourcedesc>
+<langusage>
+<language id='EN'>English</language>
+<language id='ebnf'>Extended Backus-Naur Form (formal grammar)</language>
+</langusage>
+<revisiondesc>
+<slist>
+<sitem>1997-12-03 : CMSMcQ : yet further changes</sitem>
+<sitem>1997-12-02 : TB : further changes (see TB to XML WG,
+2 December 1997)</sitem>
+<sitem>1997-12-02 : CMSMcQ : deal with as many corrections and
+comments from the proofreaders as possible:
+entify hard-coded document date in pubdate element,
+change expansion of entity WebSGML,
+update status description as per Dan Connolly (am not sure
+about refernece to Berners-Lee et al.),
+add 'The' to abstract as per WG decision,
+move Relationship to Existing Standards to back matter and
+combine with References,
+re-order back matter so normative appendices come first,
+re-tag back matter so informative appendices are tagged informdiv1,
+remove XXX XXX from list of 'normative' specs in prose,
+move some references from Other References to Normative References,
+add RFC 1738, 1808, and 2141 to Other References (they are not
+normative since we do not require the processor to enforce any 
+rules based on them),
+add reference to 'Fielding draft' (Berners-Lee et al.),
+move notation section to end of body,
+drop URIchar non-terminal and use SkipLit instead,
+lose stray reference to defunct nonterminal 'markupdecls',
+move reference to Aho et al. into appendix (Tim's right),
+add prose note saying that hash marks and fragment identifiers are
+NOT part of the URI formally speaking, and are NOT legal in 
+system identifiers (processor 'may' signal an error).
+Work through:
+Tim Bray reacting to James Clark,
+Tim Bray on his own,
+Eve Maler,
+
+NOT DONE YET:
+change binary / text to unparsed / parsed.
+handle James's suggestion about &lt; in attriubte values
+uppercase hex characters,
+namechar list,
+</sitem>
+<sitem>1997-12-01 : JB : add some column-width parameters</sitem>
+<sitem>1997-12-01 : CMSMcQ : begin round of changes to incorporate
+recent WG decisions and other corrections:
+binding sources of character encoding info (27 Aug / 3 Sept),
+correct wording of Faust quotation (restore dropped line),
+drop SDD from EncodingDecl,
+change text at version number 1.0,
+drop misleading (wrong!) sentence about ignorables and extenders,
+modify definÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙxamples with Byte Order Mark.
+Add content model as a term and clarify that it applies to both
+mixed and element content.
+</sitem>
+<sitem>1997-06-30 : CMSMcQ : change date, some cosmetic changes,
+changes to productions for choice, seq, Mixed, NotationType,
+Enumeration.  Follow James Clark's suggestion and prohibit 
+conditional sections in internal subset.  TO DO:  simplify
+production for ignored sections as a result, since we don't 
+need to worry about parsers whi<! don't expand PErefs finding
+a conditional section.</sitem>
+<sitem>1997-06-29 : TB : various edits</sitem>
+<sitem>1997-06-29 : CMSMcQ : further changes:
+Suppress old FINAL EDIT comments and some dead material.
+Revise occurrences of % in grammar to exploit Henry Thompson's pun,
+especially markupdecl and attdef.
+Remove RMD requirement relating to element content (?).
+</sitem>
+<sitem>1997-06-28 : CMSMcQ : Various changes for 1 July draft:
+Add text for draconian error handling (introduce
+the term Fatal Error).
+RE deleta est (changing wording from 
+original announcement to restrict the requirement to validating
+parsers).
+Tag definition of validawwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww it meant 'may or may not'.</sitem>
+<sitem>1997-03-21 : TB : massive changes on plane flight from Chicago
+to Vancouver</sitem>
+<sitem>1997-03-21 : CMSMcQ : correct as many reported errors as possible.
+</sitem>
+<sitem>1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.</sitem>
+<sitem>1997 James Clark:
+Define the set of characters from which [^abc] subtracts.
+Charref should use just [0-9] not Digit.
+Location info needs cleaner treatment:  remove?  (ERB
+question).
+One example of a PI has wrong pic.
+Clarify discussion of encoding names.
+Encoding failure should lead to unspecified results; don't
+prescribe error recovery.
+Don't require exposure of entity boundaries.
+Ignore white space in element content.
+Reserve entity names of the form u-NNNN.
+Clarify relative URLs.
+And some of my own:
+Correct productions for content model:  model cannot
+consist of a name, so "elements ::= cp" is no good.
+</sitem>
+<sitem>1996-11-11 : CMSMcQ : revise for style.
+Add new rhs to entity declaration, for parameter entities.</sitem>
+<sitem>1996-11-10 : CMSMcQ : revise for style.
+Fix / complete section on names, characters.
+Add sections on parameter entities, conditional sections.
+Still to do:  Add compatibility note on deterministic content models.
+Finish stylistic revision.</sitem>
+<sitem>1996-10-31 : TB : Add Entity Handling section</sitem>
+<sitem>1996-10-30 : TB : Clean up term &amp; termdef.  Slip in
+ERB decision re EMPTY.</sitem>
+<sitem>1996-10-28 : TB : Change DTD.  Implement some of Michael's
+suggestions.  Change comments back to //.  Introduce language for
+XML namespace reservation.  Add section on white-space handling.
+Lots more cleanup.</sitem>
+<sitem>1996-10-24 : CMSMcQ : quick tweaks, implement some ERB
+decisions.  Characters are not integers.  Comments are /* */ not //.
+Add bibliographic refs to 10646, HyTime, Unicode.
+Rename old Cdata as MsData since it's <emph>only</emph> seen
+in marked sections.  Call them attribute-value pairs not
+name-value pairs, except once.  Internal subset is optional, needs
+'?'.  Implied attributes should be signaled to the app, not
+have values supplied by processor.</sitem>
+<sitem>1996-10-16 : TB : track down &amp; excise all DSD references;
+introduce some EBNF for entity declarations.</sitem>
+<sitem>1996-10-?? nsistency check, fix up scraps so
+they all parse, get formatter working, correct a few productions.</sitem>
+<sitem>1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and
+organizational changes:
+Replace a few literals with xmlpio and
+pi""entities, to make them consistent and ensure we can change pic
+reliably when the ERB votes.
+Drop paragraph on recognizers from notation section.
+Add match, exact match to terminology.
+Move old 2.2 XML Processors and Apps into intro.
+Mention comments, PIs, and marked sections in discussion of
+delimiter escaping.
+Streamline discussion of doctype decl syntax.
+Drop old section of 'PI syntax' for doctype decl, and add
+section on partial-DTD summary PIs to end of Logical Structures
+section.
+Revise DSD syntax section to use Tim's subset-in-a-PI
+mechanism.</sitem>
+<sitem>1996-10-10 : TB : eliminate name recognizers (and more?)</sitem>
+<sitem>1996-10-09 : CMSMcQ : revise for style, consistency through 2.3
+(Characters)</sitem>
+<sitem>1996-10-09 : CMSMcQ : re-unite everything for convenience,
+at least temporarily, and revise quickly</sitem>
+<sitem>1996-10-08 : TB : first major homogenization pass</sitem>
+<sitem>1996-10-08 : TB : turn "current" attribute on div type into 
+CDATA</sitem>
+<sitem>1996-10-02 : TB : remould into skeleton + entities</sitem>
+<sitem>1996-09-30 : CMSMcQ : add a few more sections prior to exchange
+                            with Tim.</sitem>
+<sitem>1996-09-20 : CMSMcQ : finish transcribing notes.</sitem>
+<sitem>1996-09-19 : CMSMcQ : begin transcribing notes for draft.</sitem>
+<sitem>1996-09-13 : CMSMcQ : made outline from notes of 09-06,
+do some housekeeping</sitem>
+</slist>
+</revisiondesc>
+</header>
+<ðððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððm> is used to read XML documents
+and provide access to their content and structure.</termdef> <termdef
+id="dt-app" term="Application">It is @ssumed that an XML processor is
+doing its work on behalf of another module, called the
+<term>application</term>.</termdef> This specification describes the
+required beh\vior of an XML processor in terms of how it must read XML
+data and the information it must provide to the application.</p>
+ 
+<div2 id='sec-origin-goals'>
+<head>Origin and Goals</head>
+<p>XML was developed by an XML Working Group (orisable over the
+Internet.</p></item>
+<item><p>XML shall support a wide variey of applications.</p></item>
+<item><p>XML shall be compatible with SGML.</p></item>
+<item><p>It shall be easy to write programs which process XML
+documents.</p></item>
+<item><p>The number of optional features in XML is to be kept to the
+absolute minimum, ideally zero.</p></item>
+<item><p>XML documents shou
\ No newline at end of file
diff --git a/test/errors/759573-2.xml b/test/errors/759573-2.xml
new file mode 100644
index 0000000..5ad655f
--- /dev/null
+++ b/test/errors/759573-2.xml
Binary files differ
diff --git a/test/errors/759573.xml b/test/errors/759573.xml
new file mode 100644
index 0000000..69ebb57
--- /dev/null
+++ b/test/errors/759573.xml
@@ -0,0 +1 @@
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
\ No newline at end of file
diff --git a/test/errors/759579.xml b/test/errors/759579.xml
new file mode 100644
index 0000000..7fadd70
--- /dev/null
+++ b/test/errors/759579.xml
@@ -0,0 +1,11 @@
+<!DOCTYPE doc [
+    <!ENTITY % z '
+        &#37;z; &#37;z; &#37;z; &#37;z; &#37;z;
+        &#37;z; &#37;z; &#37;z; &#37;z; &#37;z;
+        &#37;z; &#37;z; &#37;z; &#37;z; &#37;z;
+        &#37;z; &#37;z; &#37;z; &#37;z; &#37;z;
+        &#37;z; &#37;z; &#37;z; &#37;z; &#37;z;
+    '>
+    %z;
+]>
+<doc/>
diff --git a/test/errors10/781205.xml b/test/errors10/781205.xml
new file mode 100644
index 0000000..d9e9e83
--- /dev/null
+++ b/test/errors10/781205.xml
@@ -0,0 +1,3 @@
+<!DOCTYPE D [
+  <!ENTITY % a "<:0000">
+  %a;
diff --git a/test/errors10/781361.xml b/test/errors10/781361.xml
new file mode 100644
index 0000000..67476bc
--- /dev/null
+++ b/test/errors10/781361.xml
@@ -0,0 +1,3 @@
+<!DOCTYPE doc [
+  <!ENTITY % elem "<!ELEMENT e0000000000">
+  %elem;
diff --git a/test/icu_parse_test.xml b/test/icu_parse_test.xml
new file mode 100644
index 0000000..031a967
--- /dev/null
+++ b/test/icu_parse_test.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<foo>
+Text with EUC-JP chars at position 214 (0xd6)
+___
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______é®Äé___
+_</foo>
diff --git a/test/relaxng/565219.rng b/test/relaxng/565219.rng
new file mode 100644
index 0000000..087ed95
--- /dev/null
+++ b/test/relaxng/565219.rng
@@ -0,0 +1,14 @@
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+  <start>
+   <element>
+      <anyName>
+        <except>
+          <nsName ns="http://bar.com/"/>
+          <nsName ns="http://foo.com/"/>
+        </except>
+      </anyName>
+      <empty/>
+   </element>
+  </start>
+</grammar>
+
diff --git a/test/relaxng/565219_0.xml b/test/relaxng/565219_0.xml
new file mode 100644
index 0000000..a964a07
--- /dev/null
+++ b/test/relaxng/565219_0.xml
@@ -0,0 +1 @@
+<foo xmlns="http://foo.com/"/>
diff --git a/test/relaxng/565219_1.xml b/test/relaxng/565219_1.xml
new file mode 100644
index 0000000..f1999f8
--- /dev/null
+++ b/test/relaxng/565219_1.xml
@@ -0,0 +1 @@
+<foo/>
diff --git a/test/relaxng/565219_2.xml b/test/relaxng/565219_2.xml
new file mode 100644
index 0000000..a964a07
--- /dev/null
+++ b/test/relaxng/565219_2.xml
@@ -0,0 +1 @@
+<foo xmlns="http://foo.com/"/>
diff --git a/test/relaxng/pattern3.rng b/test/relaxng/pattern3.rng
new file mode 100644
index 0000000..fa4434f
--- /dev/null
+++ b/test/relaxng/pattern3.rng
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <start>
+    <element name="test">
+    <data type="token">
+    <param name="pattern">[a-z]+</param>
+    </data>
+    </element>
+  </start>
+</grammar>
diff --git a/test/relaxng/pattern3_1.xml b/test/relaxng/pattern3_1.xml
new file mode 100644
index 0000000..f559cd3
--- /dev/null
+++ b/test/relaxng/pattern3_1.xml
@@ -0,0 +1 @@
+<test> ooo </test>
diff --git a/test/valid/737840.xml b/test/valid/737840.xml
new file mode 100644
index 0000000..2d27b73
--- /dev/null
+++ b/test/valid/737840.xml
@@ -0,0 +1,10 @@
+<!DOCTYPE root [
+<!ELEMENT root (elem)>
+<!ELEMENT elem (#PCDATA)>
+<!ATTLIST elem id ID #IMPLIED>
+<!ENTITY target SYSTEM "dtds/737840.ent">
+]>
+
+<root>
+  &target;
+</root>
diff --git a/test/valid/766956.xml b/test/valid/766956.xml
new file mode 100644
index 0000000..19a95a0
--- /dev/null
+++ b/test/valid/766956.xml
@@ -0,0 +1,2 @@
+<!DOCTYPE test SYSTEM "dtds/766956.dtd">
+<test/>
diff --git a/test/valid/781333.xml b/test/valid/781333.xml
new file mode 100644
index 0000000..b29e5a6
--- /dev/null
+++ b/test/valid/781333.xml
@@ -0,0 +1,4 @@
+<!DOCTYPE a [
+    <!ELEMENT a (pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp:llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll)>
+]>
+<a/>
diff --git a/test/valid/dtds/737840.ent b/test/valid/dtds/737840.ent
new file mode 100644
index 0000000..e972132
--- /dev/null
+++ b/test/valid/dtds/737840.ent
@@ -0,0 +1 @@
+<elem id="id0"/>
\ No newline at end of file
diff --git a/test/valid/dtds/766956.dtd b/test/valid/dtds/766956.dtd
new file mode 100644
index 0000000..dddde68
--- /dev/null
+++ b/test/valid/dtds/766956.dtd
@@ -0,0 +1,2 @@
+<!ENTITY % ent "value">
+%ä%ent;
diff --git a/testModule.c b/testModule.c
index e399f5c..77b7ba1 100644
--- a/testModule.c
+++ b/testModule.c
@@ -47,7 +47,7 @@
 
     /* build the module filename, and confirm the module exists */
     xmlStrPrintf(filename, sizeof(filename),
-                 (const xmlChar*) "%s/testdso%s",
+                 "%s/testdso%s",
                  (const xmlChar*)MODULE_PATH,
 		 (const xmlChar*)LIBXML_MODULE_EXTENSION);
 
diff --git a/testThreads.c b/testThreads.c
index bff5391..2ef70a7 100644
--- a/testThreads.c
+++ b/testThreads.c
@@ -3,7 +3,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_SAX1_ENABLED)
+#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED)
 #include <libxml/globals.h>
 #include <libxml/threads.h>
 #include <libxml/parser.h>
@@ -61,7 +61,11 @@
         xmlDoValidityCheckingDefaultValue = 1;
         xmlGenericErrorContext = stderr;
     }
+#ifdef LIBXML_SAX1_ENABLED
     myDoc = xmlParseFile(filename);
+#else
+    myDoc = xmlReadFile(filename, NULL, XML_WITH_CATALOG);
+#endif
     if (myDoc) {
         xmlFreeDoc(myDoc);
     } else {
diff --git a/testapi.c b/testapi.c
index 0367ffd..4a751e2 100644
--- a/testapi.c
+++ b/testapi.c
@@ -737,7 +737,8 @@
 
 #define gen_nb_xmlHashDeallocator 2
 static void
-test_xmlHashDeallocator(void *payload ATTRIBUTE_UNUSED, xmlChar *name ATTRIBUTE_UNUSED) {
+test_xmlHashDeallocator(void *payload ATTRIBUTE_UNUSED,
+                        const xmlChar *name ATTRIBUTE_UNUSED) {
 }
 
 static xmlHashDeallocator gen_xmlHashDeallocator(int no, int nr ATTRIBUTE_UNUSED) {
@@ -1034,10 +1035,10 @@
 
 #define gen_nb_xmlBufferAllocationScheme 4
 static xmlBufferAllocationScheme gen_xmlBufferAllocationScheme(int no, int nr ATTRIBUTE_UNUSED) {
-    if (no == 1) return(XML_BUFFER_ALLOC_DOUBLEIT);
-    if (no == 2) return(XML_BUFFER_ALLOC_EXACT);
-    if (no == 3) return(XML_BUFFER_ALLOC_HYBRID);
-    if (no == 4) return(XML_BUFFER_ALLOC_IMMUTABLE);
+    if (no == 1) return(XML_BUFFER_ALLOC_BOUNDED);
+    if (no == 2) return(XML_BUFFER_ALLOC_DOUBLEIT);
+    if (no == 3) return(XML_BUFFER_ALLOC_EXACT);
+    if (no == 4) return(XML_BUFFER_ALLOC_HYBRID);
     return(0);
 }
 
@@ -1480,6 +1481,9 @@
         mem_base = xmlMemBlocks();
         buffer = gen_const_char_ptr(n_buffer, 0);
         size = gen_int(n_size, 1);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = htmlCreateMemoryParserCtxt((const char *)buffer, size);
         desret_htmlParserCtxtPtr(ret_val);
@@ -1547,6 +1551,9 @@
         size = gen_int(n_size, 3);
         filename = gen_fileoutput(n_filename, 4);
         enc = gen_xmlCharEncoding(n_enc, 5);
+        if ((chunk != NULL) &&
+            (size > (int) strlen((const char *) chunk) + 1))
+            continue;
 
         ret_val = htmlCreatePushParserCtxt(sax, user_data, (const char *)chunk, size, filename, enc);
         desret_htmlParserCtxtPtr(ret_val);
@@ -1721,6 +1728,9 @@
         URL = gen_filepath(n_URL, 3);
         encoding = gen_const_char_ptr(n_encoding, 4);
         options = gen_int(n_options, 5);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = htmlCtxtReadMemory(ctxt, (const char *)buffer, size, URL, (const char *)encoding, options);
         desret_htmlDocPtr(ret_val);
@@ -2278,6 +2288,9 @@
         chunk = gen_const_char_ptr(n_chunk, 1);
         size = gen_int(n_size, 2);
         terminate = gen_int(n_terminate, 3);
+        if ((chunk != NULL) &&
+            (size > (int) strlen((const char *) chunk) + 1))
+            continue;
 
         ret_val = htmlParseChunk(ctxt, (const char *)chunk, size, terminate);
         if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;}
@@ -2321,16 +2334,16 @@
     char * encoding; /* a free form C string describing the HTML document encoding, or NULL */
     int n_encoding;
 
-    for (n_cur = 0;n_cur < gen_nb_xmlChar_ptr;n_cur++) {
+    for (n_cur = 0;n_cur < gen_nb_const_xmlChar_ptr;n_cur++) {
     for (n_encoding = 0;n_encoding < gen_nb_const_char_ptr;n_encoding++) {
         mem_base = xmlMemBlocks();
-        cur = gen_xmlChar_ptr(n_cur, 0);
+        cur = gen_const_xmlChar_ptr(n_cur, 0);
         encoding = gen_const_char_ptr(n_encoding, 1);
 
-        ret_val = htmlParseDoc(cur, (const char *)encoding);
+        ret_val = htmlParseDoc((const xmlChar *)cur, (const char *)encoding);
         desret_htmlDocPtr(ret_val);
         call_tests++;
-        des_xmlChar_ptr(n_cur, cur, 0);
+        des_const_xmlChar_ptr(n_cur, (const xmlChar *)cur, 0);
         des_const_char_ptr(n_encoding, (const char *)encoding, 1);
         xmlResetLastError();
         if (mem_base != xmlMemBlocks()) {
@@ -2621,6 +2634,9 @@
         URL = gen_filepath(n_URL, 2);
         encoding = gen_const_char_ptr(n_encoding, 3);
         options = gen_int(n_options, 4);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = htmlReadMemory((const char *)buffer, size, URL, (const char *)encoding, options);
         desret_htmlDocPtr(ret_val);
@@ -2670,20 +2686,20 @@
     void * userData; /* if using SAX, this pointer will be provided on callbacks. */
     int n_userData;
 
-    for (n_cur = 0;n_cur < gen_nb_xmlChar_ptr;n_cur++) {
+    for (n_cur = 0;n_cur < gen_nb_const_xmlChar_ptr;n_cur++) {
     for (n_encoding = 0;n_encoding < gen_nb_const_char_ptr;n_encoding++) {
     for (n_sax = 0;n_sax < gen_nb_htmlSAXHandlerPtr;n_sax++) {
     for (n_userData = 0;n_userData < gen_nb_userdata;n_userData++) {
         mem_base = xmlMemBlocks();
-        cur = gen_xmlChar_ptr(n_cur, 0);
+        cur = gen_const_xmlChar_ptr(n_cur, 0);
         encoding = gen_const_char_ptr(n_encoding, 1);
         sax = gen_htmlSAXHandlerPtr(n_sax, 2);
         userData = gen_userdata(n_userData, 3);
 
-        ret_val = htmlSAXParseDoc(cur, (const char *)encoding, sax, userData);
+        ret_val = htmlSAXParseDoc((const xmlChar *)cur, (const char *)encoding, sax, userData);
         desret_htmlDocPtr(ret_val);
         call_tests++;
-        des_xmlChar_ptr(n_cur, cur, 0);
+        des_const_xmlChar_ptr(n_cur, (const xmlChar *)cur, 0);
         des_const_char_ptr(n_encoding, (const char *)encoding, 1);
         des_htmlSAXHandlerPtr(n_sax, sax, 2);
         des_userdata(n_userData, userData, 3);
@@ -3870,6 +3886,9 @@
         ctx = gen_void_ptr(n_ctx, 0);
         value = gen_const_xmlChar_ptr(n_value, 1);
         len = gen_int(n_len, 2);
+        if ((value != NULL) &&
+            (len > (int) strlen((const char *) value) + 1))
+            continue;
 
         xmlSAX2CDataBlock(ctx, (const xmlChar *)value, len);
         call_tests++;
@@ -3914,6 +3933,9 @@
         ctx = gen_void_ptr(n_ctx, 0);
         ch = gen_const_xmlChar_ptr(n_ch, 1);
         len = gen_int(n_len, 2);
+        if ((ch != NULL) &&
+            (len > (int) strlen((const char *) ch) + 1))
+            continue;
 
         xmlSAX2Characters(ctx, (const xmlChar *)ch, len);
         call_tests++;
@@ -4554,6 +4576,9 @@
         ctx = gen_void_ptr(n_ctx, 0);
         ch = gen_const_xmlChar_ptr(n_ch, 1);
         len = gen_int(n_len, 2);
+        if ((ch != NULL) &&
+            (len > (int) strlen((const char *) ch) + 1))
+            continue;
 
         xmlSAX2IgnorableWhitespace(ctx, (const xmlChar *)ch, len);
         call_tests++;
@@ -8175,7 +8200,7 @@
 
     int mem_base;
     xmlDictPtr ret_val;
-    xmlDictPtr sub; /* an existing dictionnary */
+    xmlDictPtr sub; /* an existing dictionary */
     int n_sub;
 
     for (n_sub = 0;n_sub < gen_nb_xmlDictPtr;n_sub++) {
@@ -8207,7 +8232,7 @@
 
     int mem_base;
     const xmlChar * ret_val;
-    xmlDictPtr dict; /* the dictionnary */
+    xmlDictPtr dict; /* the dictionary */
     int n_dict;
     xmlChar * name; /* the name of the userdata */
     int n_name;
@@ -8221,6 +8246,9 @@
         dict = gen_xmlDictPtr(n_dict, 0);
         name = gen_const_xmlChar_ptr(n_name, 1);
         len = gen_int(n_len, 2);
+        if ((name != NULL) &&
+            (len > (int) strlen((const char *) name) + 1))
+            continue;
 
         ret_val = xmlDictExists(dict, (const xmlChar *)name, len);
         desret_const_xmlChar_ptr(ret_val);
@@ -8263,7 +8291,7 @@
 
     int mem_base;
     const xmlChar * ret_val;
-    xmlDictPtr dict; /* the dictionnary */
+    xmlDictPtr dict; /* the dictionary */
     int n_dict;
     xmlChar * name; /* the name of the userdata */
     int n_name;
@@ -8277,6 +8305,9 @@
         dict = gen_xmlDictPtr(n_dict, 0);
         name = gen_const_xmlChar_ptr(n_name, 1);
         len = gen_int(n_len, 2);
+        if ((name != NULL) &&
+            (len > (int) strlen((const char *) name) + 1))
+            continue;
 
         ret_val = xmlDictLookup(dict, (const xmlChar *)name, len);
         desret_const_xmlChar_ptr(ret_val);
@@ -8309,7 +8340,7 @@
 
     int mem_base;
     int ret_val;
-    xmlDictPtr dict; /* the dictionnary */
+    xmlDictPtr dict; /* the dictionary */
     int n_dict;
     xmlChar * str; /* the string */
     int n_str;
@@ -8348,7 +8379,7 @@
 
     int mem_base;
     const xmlChar * ret_val;
-    xmlDictPtr dict; /* the dictionnary */
+    xmlDictPtr dict; /* the dictionary */
     int n_dict;
     xmlChar * prefix; /* the prefix */
     int n_prefix;
@@ -8394,7 +8425,7 @@
 
     int mem_base;
     int ret_val;
-    xmlDictPtr dict; /* the dictionnary */
+    xmlDictPtr dict; /* the dictionary */
     int n_dict;
 
     for (n_dict = 0;n_dict < gen_nb_xmlDictPtr;n_dict++) {
@@ -8437,7 +8468,7 @@
 
     int mem_base;
     int ret_val;
-    xmlDictPtr dict; /* the dictionnary */
+    xmlDictPtr dict; /* the dictionary */
     int n_dict;
 
     for (n_dict = 0;n_dict < gen_nb_xmlDictPtr;n_dict++) {
@@ -9958,6 +9989,43 @@
 
 
 static int
+test_xmlHashDefaultDeallocator(void) {
+    int test_ret = 0;
+
+    int mem_base;
+    void * entry; /* the hash table entry */
+    int n_entry;
+    xmlChar * name; /* the entry's name */
+    int n_name;
+
+    for (n_entry = 0;n_entry < gen_nb_void_ptr;n_entry++) {
+    for (n_name = 0;n_name < gen_nb_const_xmlChar_ptr;n_name++) {
+        mem_base = xmlMemBlocks();
+        entry = gen_void_ptr(n_entry, 0);
+        name = gen_const_xmlChar_ptr(n_name, 1);
+
+        xmlHashDefaultDeallocator(entry, (const xmlChar *)name);
+        call_tests++;
+        des_void_ptr(n_entry, entry, 0);
+        des_const_xmlChar_ptr(n_name, (const xmlChar *)name, 1);
+        xmlResetLastError();
+        if (mem_base != xmlMemBlocks()) {
+            printf("Leak of %d blocks found in xmlHashDefaultDeallocator",
+	           xmlMemBlocks() - mem_base);
+	    test_ret++;
+            printf(" %d", n_entry);
+            printf(" %d", n_name);
+            printf("\n");
+        }
+    }
+    }
+    function_tests++;
+
+    return(test_ret);
+}
+
+
+static int
 test_xmlHashLookup(void) {
     int test_ret = 0;
 
@@ -10689,13 +10757,14 @@
 test_hash(void) {
     int test_ret = 0;
 
-    if (quiet == 0) printf("Testing hash : 16 of 24 functions ...\n");
+    if (quiet == 0) printf("Testing hash : 17 of 25 functions ...\n");
     test_ret += test_xmlHashAddEntry();
     test_ret += test_xmlHashAddEntry2();
     test_ret += test_xmlHashAddEntry3();
     test_ret += test_xmlHashCopy();
     test_ret += test_xmlHashCreate();
     test_ret += test_xmlHashCreateDict();
+    test_ret += test_xmlHashDefaultDeallocator();
     test_ret += test_xmlHashLookup();
     test_ret += test_xmlHashLookup2();
     test_ret += test_xmlHashLookup3();
@@ -12727,6 +12796,9 @@
         chunk = gen_const_char_ptr(n_chunk, 2);
         size = gen_int(n_size, 3);
         filename = gen_fileoutput(n_filename, 4);
+        if ((chunk != NULL) &&
+            (size > (int) strlen((const char *) chunk) + 1))
+            continue;
 
         ret_val = xmlCreatePushParserCtxt(sax, user_data, (const char *)chunk, size, filename);
         desret_xmlParserCtxtPtr(ret_val);
@@ -12905,6 +12977,9 @@
         URL = gen_filepath(n_URL, 3);
         encoding = gen_const_char_ptr(n_encoding, 4);
         options = gen_parseroptions(n_options, 5);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = xmlCtxtReadMemory(ctxt, (const char *)buffer, size, URL, (const char *)encoding, options);
         desret_xmlDocPtr(ret_val);
@@ -12998,6 +13073,9 @@
         size = gen_int(n_size, 2);
         filename = gen_filepath(n_filename, 3);
         encoding = gen_const_char_ptr(n_encoding, 4);
+        if ((chunk != NULL) &&
+            (size > (int) strlen((const char *) chunk) + 1))
+            continue;
 
         ret_val = xmlCtxtResetPush(ctxt, (const char *)chunk, size, filename, (const char *)encoding);
         desret_int(ret_val);
@@ -13709,6 +13787,9 @@
         chunk = gen_const_char_ptr(n_chunk, 1);
         size = gen_int(n_size, 2);
         terminate = gen_int(n_terminate, 3);
+        if ((chunk != NULL) &&
+            (size > (int) strlen((const char *) chunk) + 1))
+            continue;
 
         ret_val = xmlParseChunk(ctxt, (const char *)chunk, size, terminate);
         if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;}
@@ -14166,6 +14247,9 @@
         mem_base = xmlMemBlocks();
         buffer = gen_const_char_ptr(n_buffer, 0);
         size = gen_int(n_size, 1);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = xmlParseMemory((const char *)buffer, size);
         desret_xmlDocPtr(ret_val);
@@ -14578,6 +14662,9 @@
         URL = gen_filepath(n_URL, 2);
         encoding = gen_const_char_ptr(n_encoding, 3);
         options = gen_parseroptions(n_options, 4);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = xmlReadMemory((const char *)buffer, size, URL, (const char *)encoding, options);
         desret_xmlDocPtr(ret_val);
@@ -14700,6 +14787,9 @@
         mem_base = xmlMemBlocks();
         buffer = gen_const_char_ptr(n_buffer, 0);
         size = gen_int(n_size, 1);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = xmlRecoverMemory((const char *)buffer, size);
         desret_xmlDocPtr(ret_val);
@@ -15001,6 +15091,9 @@
         buffer = gen_const_char_ptr(n_buffer, 1);
         size = gen_int(n_size, 2);
         recovery = gen_int(n_recovery, 3);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = xmlSAXParseMemory(sax, (const char *)buffer, size, recovery);
         desret_xmlDocPtr(ret_val);
@@ -15062,6 +15155,9 @@
         size = gen_int(n_size, 2);
         recovery = gen_int(n_recovery, 3);
         data = gen_userdata(n_data, 4);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = xmlSAXParseMemoryWithData(sax, (const char *)buffer, size, recovery, data);
         desret_xmlDocPtr(ret_val);
@@ -15177,6 +15273,9 @@
         user_data = gen_userdata(n_user_data, 1);
         buffer = gen_const_char_ptr(n_buffer, 2);
         size = gen_int(n_size, 3);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
         
 #ifdef LIBXML_SAX1_ENABLED
         if (sax == (xmlSAXHandlerPtr)&xmlDefaultSAXHandler) user_data = NULL;
@@ -15948,6 +16047,9 @@
         mem_base = xmlMemBlocks();
         buffer = gen_const_char_ptr(n_buffer, 0);
         size = gen_int(n_size, 1);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = xmlCreateMemoryParserCtxt((const char *)buffer, size);
         desret_xmlParserCtxtPtr(ret_val);
@@ -16603,6 +16705,9 @@
         end = gen_xmlChar(n_end, 4);
         end2 = gen_xmlChar(n_end2, 5);
         end3 = gen_xmlChar(n_end3, 6);
+        if ((str != NULL) &&
+            (len > (int) strlen((const char *) str) + 1))
+            continue;
 
         ret_val = xmlStringLenDecodeEntities(ctxt, (const xmlChar *)str, len, what, end, end2, end3);
         desret_xmlChar_ptr(ret_val);
@@ -17573,6 +17678,9 @@
         mem_base = xmlMemBlocks();
         buffer = gen_const_char_ptr(n_buffer, 0);
         size = gen_int(n_size, 1);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = xmlRelaxNGNewMemParserCtxt((const char *)buffer, size);
         desret_xmlRelaxNGParserCtxtPtr(ret_val);
@@ -17849,6 +17957,9 @@
         ctxt = gen_xmlRelaxNGValidCtxtPtr(n_ctxt, 0);
         data = gen_const_xmlChar_ptr(n_data, 1);
         len = gen_int(n_len, 2);
+        if ((data != NULL) &&
+            (len > (int) strlen((const char *) data) + 1))
+            continue;
 
         ret_val = xmlRelaxNGValidatePushCData(ctxt, (const xmlChar *)data, len);
         desret_int(ret_val);
@@ -18591,6 +18702,9 @@
         buf = gen_xmlBufferPtr(n_buf, 0);
         str = gen_const_xmlChar_ptr(n_str, 1);
         len = gen_int(n_len, 2);
+        if ((str != NULL) &&
+            (len > (int) strlen((const char *) str) + 1))
+            continue;
 
         ret_val = xmlBufferAdd(buf, (const xmlChar *)str, len);
         desret_int(ret_val);
@@ -18637,6 +18751,9 @@
         buf = gen_xmlBufferPtr(n_buf, 0);
         str = gen_const_xmlChar_ptr(n_str, 1);
         len = gen_int(n_len, 2);
+        if ((str != NULL) &&
+            (len > (int) strlen((const char *) str) + 1))
+            continue;
 
         ret_val = xmlBufferAddHead(buf, (const xmlChar *)str, len);
         desret_int(ret_val);
@@ -19209,6 +19326,9 @@
         prefix = gen_const_xmlChar_ptr(n_prefix, 1);
         memory = gen_xmlChar_ptr(n_memory, 2);
         len = gen_int(n_len, 3);
+        if ((prefix != NULL) &&
+            (len > (int) strlen((const char *) prefix) + 1))
+            continue;
 
         ret_val = xmlBuildQName((const xmlChar *)ncname, (const xmlChar *)prefix, memory, len);
         if ((ret_val != NULL) && (ret_val != ncname) &&
@@ -20980,6 +21100,9 @@
         doc = gen_xmlDocPtr(n_doc, 0);
         content = gen_const_xmlChar_ptr(n_content, 1);
         len = gen_int(n_len, 2);
+        if ((content != NULL) &&
+            (len > (int) strlen((const char *) content) + 1))
+            continue;
 
         ret_val = xmlNewCDataBlock(doc, (const xmlChar *)content, len);
         desret_xmlNodePtr(ret_val);
@@ -21553,6 +21676,9 @@
         doc = gen_xmlDocPtr(n_doc, 0);
         content = gen_const_xmlChar_ptr(n_content, 1);
         len = gen_int(n_len, 2);
+        if ((content != NULL) &&
+            (len > (int) strlen((const char *) content) + 1))
+            continue;
 
         ret_val = xmlNewDocTextLen(doc, (const xmlChar *)content, len);
         desret_xmlNodePtr(ret_val);
@@ -22096,6 +22222,9 @@
         mem_base = xmlMemBlocks();
         content = gen_const_xmlChar_ptr(n_content, 0);
         len = gen_int(n_len, 1);
+        if ((content != NULL) &&
+            (len > (int) strlen((const char *) content) + 1))
+            continue;
 
         ret_val = xmlNewTextLen((const xmlChar *)content, len);
         desret_xmlNodePtr(ret_val);
@@ -22209,6 +22338,9 @@
         cur = gen_xmlNodePtr(n_cur, 0);
         content = gen_const_xmlChar_ptr(n_content, 1);
         len = gen_int(n_len, 2);
+        if ((content != NULL) &&
+            (len > (int) strlen((const char *) content) + 1))
+            continue;
 
         xmlNodeAddContentLen(cur, (const xmlChar *)content, len);
         call_tests++;
@@ -22759,6 +22891,9 @@
         cur = gen_xmlNodePtr(n_cur, 0);
         content = gen_const_xmlChar_ptr(n_content, 1);
         len = gen_int(n_len, 2);
+        if ((content != NULL) &&
+            (len > (int) strlen((const char *) content) + 1))
+            continue;
 
         xmlNodeSetContentLen(cur, (const xmlChar *)content, len);
         call_tests++;
@@ -23823,6 +23958,9 @@
         doc = gen_const_xmlDoc_ptr(n_doc, 0);
         value = gen_const_xmlChar_ptr(n_value, 1);
         len = gen_int(n_len, 2);
+        if ((value != NULL) &&
+            (len > (int) strlen((const char *) value) + 1))
+            continue;
 
         ret_val = xmlStringLenGetNodeList((const xmlDoc *)doc, (const xmlChar *)value, len);
         desret_xmlNodePtr(ret_val);
@@ -23869,6 +24007,9 @@
         node = gen_xmlNodePtr(n_node, 0);
         content = gen_const_xmlChar_ptr(n_content, 1);
         len = gen_int(n_len, 2);
+        if ((content != NULL) &&
+            (len > (int) strlen((const char *) content) + 1))
+            continue;
 
         ret_val = xmlTextConcat(node, (const xmlChar *)content, len);
         desret_int(ret_val);
@@ -27125,6 +27266,9 @@
         ctxt = gen_xmlValidCtxtPtr(n_ctxt, 0);
         data = gen_const_xmlChar_ptr(n_data, 1);
         len = gen_int(n_len, 2);
+        if ((data != NULL) &&
+            (len > (int) strlen((const char *) data) + 1))
+            continue;
 
         ret_val = xmlValidatePushCData(ctxt, (const xmlChar *)data, len);
         desret_int(ret_val);
@@ -28661,6 +28805,9 @@
         out = gen_xmlOutputBufferPtr(n_out, 0);
         len = gen_int(n_len, 1);
         buf = gen_const_char_ptr(n_buf, 2);
+        if ((buf != NULL) &&
+            (len > (int) strlen((const char *) buf) + 1))
+            continue;
 
         ret_val = xmlOutputBufferWrite(out, len, (const char *)buf);
         desret_int(ret_val);
@@ -28887,6 +29034,9 @@
         mem = gen_const_char_ptr(n_mem, 0);
         size = gen_int(n_size, 1);
         enc = gen_xmlCharEncoding(n_enc, 2);
+        if ((mem != NULL) &&
+            (size > (int) strlen((const char *) mem) + 1))
+            continue;
 
         ret_val = xmlParserInputBufferCreateMem((const char *)mem, size, enc);
         desret_xmlParserInputBufferPtr(ret_val);
@@ -28933,6 +29083,9 @@
         mem = gen_const_char_ptr(n_mem, 0);
         size = gen_int(n_size, 1);
         enc = gen_xmlCharEncoding(n_enc, 2);
+        if ((mem != NULL) &&
+            (size > (int) strlen((const char *) mem) + 1))
+            continue;
 
         ret_val = xmlParserInputBufferCreateStatic((const char *)mem, size, enc);
         desret_xmlParserInputBufferPtr(ret_val);
@@ -29018,6 +29171,9 @@
         in = gen_xmlParserInputBufferPtr(n_in, 0);
         len = gen_int(n_len, 1);
         buf = gen_const_char_ptr(n_buf, 2);
+        if ((buf != NULL) &&
+            (len > (int) strlen((const char *) buf) + 1))
+            continue;
 
         ret_val = xmlParserInputBufferPush(in, len, (const char *)buf);
         desret_int(ret_val);
@@ -30200,6 +30356,9 @@
         URL = gen_filepath(n_URL, 2);
         encoding = gen_const_char_ptr(n_encoding, 3);
         options = gen_parseroptions(n_options, 4);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = xmlReaderForMemory((const char *)buffer, size, URL, (const char *)encoding, options);
         desret_xmlTextReaderPtr(ret_val);
@@ -30383,6 +30542,9 @@
         URL = gen_filepath(n_URL, 3);
         encoding = gen_const_char_ptr(n_encoding, 4);
         options = gen_parseroptions(n_options, 5);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = xmlReaderNewMemory(reader, (const char *)buffer, size, URL, (const char *)encoding, options);
         desret_int(ret_val);
@@ -34420,6 +34582,9 @@
         mem_base = xmlMemBlocks();
         buffer = gen_const_char_ptr(n_buffer, 0);
         size = gen_int(n_size, 1);
+        if ((buffer != NULL) &&
+            (size > (int) strlen((const char *) buffer) + 1))
+            continue;
 
         ret_val = xmlSchemaNewMemParserCtxt((const char *)buffer, size);
         desret_xmlSchemaParserCtxtPtr(ret_val);
@@ -36304,6 +36469,9 @@
         mem_base = xmlMemBlocks();
         cur = gen_const_char_ptr(n_cur, 0);
         len = gen_int(n_len, 1);
+        if ((cur != NULL) &&
+            (len > (int) strlen((const char *) cur) + 1))
+            continue;
 
         ret_val = xmlCharStrndup((const char *)cur, len);
         desret_xmlChar_ptr(ret_val);
@@ -36743,6 +36911,9 @@
         str1 = gen_const_xmlChar_ptr(n_str1, 0);
         str2 = gen_const_xmlChar_ptr(n_str2, 1);
         len = gen_int(n_len, 2);
+        if ((str2 != NULL) &&
+            (len > (int) strlen((const char *) str2) + 1))
+            continue;
 
         ret_val = xmlStrncasecmp((const xmlChar *)str1, (const xmlChar *)str2, len);
         desret_int(ret_val);
@@ -36789,6 +36960,9 @@
         str1 = gen_const_xmlChar_ptr(n_str1, 0);
         str2 = gen_const_xmlChar_ptr(n_str2, 1);
         len = gen_int(n_len, 2);
+        if ((str2 != NULL) &&
+            (len > (int) strlen((const char *) str2) + 1))
+            continue;
 
         ret_val = xmlStrncatNew((const xmlChar *)str1, (const xmlChar *)str2, len);
         desret_xmlChar_ptr(ret_val);
@@ -36835,6 +37009,9 @@
         str1 = gen_const_xmlChar_ptr(n_str1, 0);
         str2 = gen_const_xmlChar_ptr(n_str2, 1);
         len = gen_int(n_len, 2);
+        if ((str2 != NULL) &&
+            (len > (int) strlen((const char *) str2) + 1))
+            continue;
 
         ret_val = xmlStrncmp((const xmlChar *)str1, (const xmlChar *)str2, len);
         desret_int(ret_val);
@@ -36877,6 +37054,9 @@
         mem_base = xmlMemBlocks();
         cur = gen_const_xmlChar_ptr(n_cur, 0);
         len = gen_int(n_len, 1);
+        if ((cur != NULL) &&
+            (len > (int) strlen((const char *) cur) + 1))
+            continue;
 
         ret_val = xmlStrndup((const xmlChar *)cur, len);
         desret_xmlChar_ptr(ret_val);
@@ -36959,6 +37139,12 @@
         str = gen_const_xmlChar_ptr(n_str, 0);
         start = gen_int(n_start, 1);
         len = gen_int(n_len, 2);
+        if ((str != NULL) &&
+            (start > (int) strlen((const char *) str) + 1))
+            continue;
+        if ((str != NULL) &&
+            (len > (int) strlen((const char *) str) + 1))
+            continue;
 
         ret_val = xmlStrsub((const xmlChar *)str, start, len);
         desret_xmlChar_ptr(ret_val);
@@ -37143,6 +37329,9 @@
         mem_base = xmlMemBlocks();
         utf = gen_const_xmlChar_ptr(n_utf, 0);
         len = gen_int(n_len, 1);
+        if ((utf != NULL) &&
+            (len > (int) strlen((const char *) utf) + 1))
+            continue;
 
         ret_val = xmlUTF8Strndup((const xmlChar *)utf, len);
         desret_xmlChar_ptr(ret_val);
@@ -37221,6 +37410,9 @@
         mem_base = xmlMemBlocks();
         utf = gen_const_xmlChar_ptr(n_utf, 0);
         len = gen_int(n_len, 1);
+        if ((utf != NULL) &&
+            (len > (int) strlen((const char *) utf) + 1))
+            continue;
 
         ret_val = xmlUTF8Strsize((const xmlChar *)utf, len);
         desret_int(ret_val);
@@ -37264,6 +37456,12 @@
         utf = gen_const_xmlChar_ptr(n_utf, 0);
         start = gen_int(n_start, 1);
         len = gen_int(n_len, 2);
+        if ((utf != NULL) &&
+            (start > (int) strlen((const char *) utf) + 1))
+            continue;
+        if ((utf != NULL) &&
+            (len > (int) strlen((const char *) utf) + 1))
+            continue;
 
         ret_val = xmlUTF8Strsub((const xmlChar *)utf, start, len);
         desret_xmlChar_ptr(ret_val);
@@ -44576,6 +44774,12 @@
         data = gen_const_char_ptr(n_data, 1);
         start = gen_int(n_start, 2);
         len = gen_int(n_len, 3);
+        if ((data != NULL) &&
+            (start > (int) strlen((const char *) data) + 1))
+            continue;
+        if ((data != NULL) &&
+            (len > (int) strlen((const char *) data) + 1))
+            continue;
 
         ret_val = xmlTextWriterWriteBase64(writer, (const char *)data, start, len);
         desret_int(ret_val);
@@ -44631,6 +44835,12 @@
         data = gen_const_char_ptr(n_data, 1);
         start = gen_int(n_start, 2);
         len = gen_int(n_len, 3);
+        if ((data != NULL) &&
+            (start > (int) strlen((const char *) data) + 1))
+            continue;
+        if ((data != NULL) &&
+            (len > (int) strlen((const char *) data) + 1))
+            continue;
 
         ret_val = xmlTextWriterWriteBinHex(writer, (const char *)data, start, len);
         desret_int(ret_val);
@@ -45561,6 +45771,9 @@
         writer = gen_xmlTextWriterPtr(n_writer, 0);
         content = gen_const_xmlChar_ptr(n_content, 1);
         len = gen_int(n_len, 2);
+        if ((content != NULL) &&
+            (len > (int) strlen((const char *) content) + 1))
+            continue;
 
         ret_val = xmlTextWriterWriteRawLen(writer, (const xmlChar *)content, len);
         desret_int(ret_val);
diff --git a/testlimits.c b/testlimits.c
index 577f593..68c94db 100644
--- a/testlimits.c
+++ b/testlimits.c
@@ -1284,13 +1284,14 @@
         if (fail)
             res = 0;
         else {
-            fprintf(stderr, "Failed to parse '%s' %lu\n", filename, limit);
+            fprintf(stderr, "Failed to parse '%s' %lu\n", filename,
+                    (unsigned long) limit);
             res = 1;
         }
     } else {
         if (fail) {
             fprintf(stderr, "Failed to get failure for '%s' %lu\n",
-                    filename, limit);
+                    filename, (unsigned long) limit);
             res = 1;
         } else
             res = 0;
@@ -1339,7 +1340,7 @@
                         filename, crazy_indx);
             else
                 fprintf(stderr, "Failed to parse '%s' %lu\n",
-                        filename, limit);
+                        filename, (unsigned long) limit);
             res = 1;
         }
     } else {
@@ -1349,7 +1350,7 @@
                         filename, crazy_indx);
             else
                 fprintf(stderr, "Failed to get failure for '%s' %lu\n",
-                        filename, limit);
+                        filename, (unsigned long) limit);
             res = 1;
         } else
             res = 0;
diff --git a/testrecurse.c b/testrecurse.c
index e5d5d1b..f95ae1c 100644
--- a/testrecurse.c
+++ b/testrecurse.c
@@ -69,8 +69,8 @@
 } glob_t;
 
 #define GLOB_DOOFFS 0
-static int glob(const char *pattern, int flags,
-                int errfunc(const char *epath, int eerrno),
+static int glob(const char *pattern, ATTRIBUTE_UNUSED int flags,
+                ATTRIBUTE_UNUSED int errfunc(const char *epath, int eerrno),
                 glob_t *pglob) {
     glob_t *ret;
     WIN32_FIND_DATA FindFileData;
diff --git a/threads.c b/threads.c
index b9d6cae..0433ac0 100644
--- a/threads.c
+++ b/threads.c
@@ -27,6 +27,7 @@
 #ifdef HAVE_PTHREAD_H
 #include <pthread.h>
 #elif defined HAVE_WIN32_THREADS
+#define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 #ifndef HAVE_COMPILER_TLS
 #include <process.h>
@@ -46,50 +47,37 @@
 
 #ifdef HAVE_PTHREAD_H
 
+#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 303) && \
+    defined(__GLIBC__) && defined(__linux__)
+
 static int libxml_is_threaded = -1;
-#if defined(__GNUC__) && defined(__GLIBC__)
-#ifdef linux
-#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
-extern int pthread_once (pthread_once_t *__once_control,
-                         void (*__init_routine) (void))
-	   __attribute((weak));
-extern void *pthread_getspecific (pthread_key_t __key)
-	   __attribute((weak));
-extern int pthread_setspecific (pthread_key_t __key,
-                                __const void *__pointer)
-	   __attribute((weak));
-extern int pthread_key_create (pthread_key_t *__key,
-                               void (*__destr_function) (void *))
-	   __attribute((weak));
-extern int pthread_key_delete (pthread_key_t __key)
-	   __attribute((weak));
-extern int pthread_mutex_init ()
-	   __attribute((weak));
-extern int pthread_mutex_destroy ()
-	   __attribute((weak));
-extern int pthread_mutex_lock ()
-	   __attribute((weak));
-extern int pthread_mutex_unlock ()
-	   __attribute((weak));
-extern int pthread_cond_init ()
-	   __attribute((weak));
-extern int pthread_cond_destroy ()
-	   __attribute((weak));
-extern int pthread_cond_wait ()
-	   __attribute((weak));
-extern int pthread_equal ()
-	   __attribute((weak));
-extern pthread_t pthread_self ()
-	   __attribute((weak));
-extern int pthread_key_create ()
-	   __attribute((weak));
-extern int pthread_key_delete ()
-	   __attribute((weak));
-extern int pthread_cond_signal ()
-	   __attribute((weak));
-#endif
-#endif /* linux */
-#endif /* defined(__GNUC__) && defined(__GLIBC__) */
+
+#define XML_PTHREAD_WEAK
+
+#pragma weak pthread_once
+#pragma weak pthread_getspecific
+#pragma weak pthread_setspecific
+#pragma weak pthread_key_create
+#pragma weak pthread_key_delete
+#pragma weak pthread_mutex_init
+#pragma weak pthread_mutex_destroy
+#pragma weak pthread_mutex_lock
+#pragma weak pthread_mutex_unlock
+#pragma weak pthread_cond_init
+#pragma weak pthread_cond_destroy
+#pragma weak pthread_cond_wait
+#pragma weak pthread_equal
+#pragma weak pthread_self
+#pragma weak pthread_key_create
+#pragma weak pthread_key_delete
+#pragma weak pthread_cond_signal
+
+#else /* __GNUC__, __GLIBC__, __linux__ */
+
+static int libxml_is_threaded = 1;
+
+#endif /* __GNUC__, __GLIBC__, __linux__ */
+
 #endif /* HAVE_PTHREAD_H */
 
 /*
@@ -158,7 +146,7 @@
 static DWORD mainthread;
 static struct {
     DWORD done;
-    DWORD control;
+    LONG control;
 } run_once = { 0, 0};
 static volatile LPCRITICAL_SECTION global_init_lock = NULL;
 
@@ -441,8 +429,11 @@
     /* Make sure the global init lock is initialized and then lock it. */
 #ifdef HAVE_PTHREAD_H
     /* The mutex is statically initialized, so we just lock it. */
-    if (pthread_mutex_lock != NULL)
-        pthread_mutex_lock(&global_init_lock);
+#ifdef XML_PTHREAD_WEAK
+    if (pthread_mutex_lock == NULL)
+        return;
+#endif /* XML_PTHREAD_WEAK */
+    pthread_mutex_lock(&global_init_lock);
 #elif defined HAVE_WIN32_THREADS
     LPCRITICAL_SECTION cs;
 
@@ -458,7 +449,8 @@
 
         /* Swap it into the global_init_lock */
 #ifdef InterlockedCompareExchangePointer
-        InterlockedCompareExchangePointer(&global_init_lock, cs, NULL);
+        InterlockedCompareExchangePointer((void **) &global_init_lock,
+                                          cs, NULL);
 #else /* Use older void* version */
         InterlockedCompareExchange((void **) &global_init_lock,
                                    (void *) cs, NULL);
@@ -510,8 +502,11 @@
 __xmlGlobalInitMutexUnlock(void)
 {
 #ifdef HAVE_PTHREAD_H
-    if (pthread_mutex_unlock != NULL)
-        pthread_mutex_unlock(&global_init_lock);
+#ifdef XML_PTHREAD_WEAK
+    if (pthread_mutex_unlock == NULL)
+        return;
+#endif /* XML_PTHREAD_WEAK */
+    pthread_mutex_unlock(&global_init_lock);
 #elif defined HAVE_WIN32_THREADS
     if (global_init_lock != NULL) {
 	LeaveCriticalSection(global_init_lock);
@@ -863,6 +858,7 @@
 xmlInitThreads(void)
 {
 #ifdef HAVE_PTHREAD_H
+#ifdef XML_PTHREAD_WEAK
     if (libxml_is_threaded == -1) {
         if ((pthread_once != NULL) &&
             (pthread_getspecific != NULL) &&
@@ -888,6 +884,7 @@
             libxml_is_threaded = 0;
         }
     }
+#endif /* XML_PTHREAD_WEAK */
 #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
     InitializeCriticalSection(&cleanup_helpers_cs);
 #endif
@@ -914,7 +911,7 @@
     xmlGenericError(xmlGenericErrorContext, "xmlCleanupThreads()\n");
 #endif
 #ifdef HAVE_PTHREAD_H
-    if ((libxml_is_threaded)  && (pthread_key_delete != NULL))
+    if (libxml_is_threaded != 0)
         pthread_key_delete(globalkey);
     once_control = once_control_init;
 #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
@@ -999,11 +996,23 @@
 #ifdef HAVE_PTHREAD_H
 #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
 #if defined(LIBXML_STATIC_FOR_DLL)
-BOOL XMLCALL
-xmlDllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+int XMLCALL
+xmlDllMain(ATTRIBUTE_UNUSED void *hinstDLL, unsigned long fdwReason,
+           ATTRIBUTE_UNUSED void *lpvReserved)
 #else
+/* declare to avoid "no previous prototype for 'DllMain'" warning */
+/* Note that we do NOT want to include this function declaration in
+   a public header because it's meant to be called by Windows itself,
+   not a program that uses this library.  This also has to be exported. */
+
+XMLPUBFUN BOOL WINAPI
+DllMain (HINSTANCE hinstDLL,
+         DWORD     fdwReason,
+         LPVOID    lpvReserved);
+
 BOOL WINAPI
-DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+DllMain(ATTRIBUTE_UNUSED HINSTANCE hinstDLL, DWORD fdwReason,
+        ATTRIBUTE_UNUSED LPVOID lpvReserved)
 #endif
 {
     switch (fdwReason) {
diff --git a/timsort.h b/timsort.h
index 795f272..0c6346b 100644
--- a/timsort.h
+++ b/timsort.h
@@ -1,90 +1,44 @@
 /*
- * taken from https://github.com/swenson/sort
- * Kept as is for the moment to be able to apply upstream patches for that
- * code, currently used only to speed up XPath node sorting, see xpath.c
+ * Taken from https://github.com/swenson/sort
+ * Revision: 05fd77bfec049ce8b7c408c4d3dd2d51ee061a15
+ * Removed all code unrelated to Timsort and made minor adjustments for
+ * cross-platform compatibility.
  */
 
 /*
- * All code in this header, unless otherwise specified, is hereby licensed under the MIT Public License:
-
-Copyright (c) 2010 Christopher Swenson
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2010-2017 Christopher Swenson.
+ * Copyright (c) 2012 Vojtech Fried.
+ * Copyright (c) 2012 Google Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
 
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #ifdef HAVE_STDINT_H
 #include <stdint.h>
-#else
-#ifdef HAVE_INTTYPES_H
-#include <inttypes.h>
-#elif defined(WIN32)
-typedef __int64 int64_t;
+#elif defined(_WIN32)
 typedef unsigned __int64 uint64_t;
 #endif
-#endif
-
-#ifndef MK_UINT64
-#if defined(WIN32) && defined(_MSC_VER) && _MSC_VER < 1300
-#define MK_UINT64(x) ((uint64_t)(x))
-#else
-#define MK_UINT64(x) x##ULL
-#endif
-#endif
-
-#ifndef MAX
-#define MAX(x,y) (((x) > (y) ? (x) : (y)))
-#endif
-#ifndef MIN
-#define MIN(x,y) (((x) < (y) ? (x) : (y)))
-#endif
-
-int compute_minrun(uint64_t);
-
-#ifndef CLZ
-#if defined(__GNUC__) && ((__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ > 3))
-#define CLZ __builtin_clzll
-#else
-
-int clzll(uint64_t);
-
-/* adapted from Hacker's Delight */
-int clzll(uint64_t x) /* {{{ */
-{
-  int n;
-
-  if (x == 0) return(64);
-  n = 0;
-  if (x <= MK_UINT64(0x00000000FFFFFFFF)) {n = n + 32; x = x << 32;}
-  if (x <= MK_UINT64(0x0000FFFFFFFFFFFF)) {n = n + 16; x = x << 16;}
-  if (x <= MK_UINT64(0x00FFFFFFFFFFFFFF)) {n = n + 8; x = x << 8;}
-  if (x <= MK_UINT64(0x0FFFFFFFFFFFFFFF)) {n = n + 4; x = x << 4;}
-  if (x <= MK_UINT64(0x3FFFFFFFFFFFFFFF)) {n = n + 2; x = x << 2;}
-  if (x <= MK_UINT64(0x7FFFFFFFFFFFFFFF)) {n = n + 1;}
-  return n;
-}
-/* }}} */
-
-#define CLZ clzll
-#endif
-#endif
-
-int compute_minrun(uint64_t size) /* {{{ */
-{
-  const int top_bit = 64 - CLZ(size);
-  const int shift = MAX(top_bit, 6) - 6;
-  const int minrun = size >> shift;
-  const uint64_t mask = (MK_UINT64(1) << shift) - 1;
-  if (mask & size) return minrun + 1;
-  return minrun;
-}
-/* }}} */
 
 #ifndef SORT_NAME
 #error "Must declare SORT_NAME"
@@ -98,215 +52,299 @@
 #define SORT_CMP(x, y)  ((x) < (y) ? -1 : ((x) == (y) ? 0 : 1))
 #endif
 
+#ifndef TIM_SORT_STACK_SIZE
+#define TIM_SORT_STACK_SIZE 128
+#endif
 
 #define SORT_SWAP(x,y) {SORT_TYPE __SORT_SWAP_t = (x); (x) = (y); (y) = __SORT_SWAP_t;}
 
+
+/* Common, type-agnosting functions and constants that we don't want to declare twice. */
+#ifndef SORT_COMMON_H
+#define SORT_COMMON_H
+
+#ifndef MAX
+#define MAX(x,y) (((x) > (y) ? (x) : (y)))
+#endif
+
+#ifndef MIN
+#define MIN(x,y) (((x) < (y) ? (x) : (y)))
+#endif
+
+static int compute_minrun(const uint64_t);
+
+#ifndef CLZ
+#ifdef __GNUC__
+#define CLZ __builtin_clzll
+#else
+
+static int clzll(uint64_t);
+
+/* adapted from Hacker's Delight */
+static int clzll(uint64_t x) {
+  int n;
+
+  if (x == 0) {
+    return 64;
+  }
+
+  n = 0;
+
+  if (x <= 0x00000000FFFFFFFFL) {
+    n = n + 32;
+    x = x << 32;
+  }
+
+  if (x <= 0x0000FFFFFFFFFFFFL) {
+    n = n + 16;
+    x = x << 16;
+  }
+
+  if (x <= 0x00FFFFFFFFFFFFFFL) {
+    n = n + 8;
+    x = x << 8;
+  }
+
+  if (x <= 0x0FFFFFFFFFFFFFFFL) {
+    n = n + 4;
+    x = x << 4;
+  }
+
+  if (x <= 0x3FFFFFFFFFFFFFFFL) {
+    n = n + 2;
+    x = x << 2;
+  }
+
+  if (x <= 0x7FFFFFFFFFFFFFFFL) {
+    n = n + 1;
+  }
+
+  return n;
+}
+
+#define CLZ clzll
+#endif
+#endif
+
+static __inline int compute_minrun(const uint64_t size) {
+  const int top_bit = 64 - CLZ(size);
+  const int shift = MAX(top_bit, 6) - 6;
+  const int minrun = size >> shift;
+  const uint64_t mask = (1ULL << shift) - 1;
+
+  if (mask & size) {
+    return minrun + 1;
+  }
+
+  return minrun;
+}
+
+#endif /* SORT_COMMON_H */
+
 #define SORT_CONCAT(x, y) x ## _ ## y
 #define SORT_MAKE_STR1(x, y) SORT_CONCAT(x,y)
 #define SORT_MAKE_STR(x) SORT_MAKE_STR1(SORT_NAME,x)
 
-#define BINARY_INSERTION_FIND  SORT_MAKE_STR(binary_insertion_find)
-#define BINARY_INSERTION_SORT_START SORT_MAKE_STR(binary_insertion_sort_start)
-#define BINARY_INSERTION_SORT  SORT_MAKE_STR(binary_insertion_sort)
-#define REVERSE_ELEMENTS       SORT_MAKE_STR(reverse_elements)
-#define COUNT_RUN              SORT_MAKE_STR(count_run)
-#define CHECK_INVARIANT        SORT_MAKE_STR(check_invariant)
-#define TIM_SORT               SORT_MAKE_STR(tim_sort)
-#define TIM_SORT_RESIZE        SORT_MAKE_STR(tim_sort_resize)
-#define TIM_SORT_MERGE         SORT_MAKE_STR(tim_sort_merge)
-#define TIM_SORT_COLLAPSE      SORT_MAKE_STR(tim_sort_collapse)
+#define BINARY_INSERTION_FIND          SORT_MAKE_STR(binary_insertion_find)
+#define BINARY_INSERTION_SORT_START    SORT_MAKE_STR(binary_insertion_sort_start)
+#define BINARY_INSERTION_SORT          SORT_MAKE_STR(binary_insertion_sort)
+#define REVERSE_ELEMENTS               SORT_MAKE_STR(reverse_elements)
+#define COUNT_RUN                      SORT_MAKE_STR(count_run)
+#define CHECK_INVARIANT                SORT_MAKE_STR(check_invariant)
+#define TIM_SORT                       SORT_MAKE_STR(tim_sort)
+#define TIM_SORT_RESIZE                SORT_MAKE_STR(tim_sort_resize)
+#define TIM_SORT_MERGE                 SORT_MAKE_STR(tim_sort_merge)
+#define TIM_SORT_COLLAPSE              SORT_MAKE_STR(tim_sort_collapse)
 
-#define TIM_SORT_RUN_T         SORT_MAKE_STR(tim_sort_run_t)
-#define TEMP_STORAGE_T         SORT_MAKE_STR(temp_storage_t)
+#ifndef MAX
+#define MAX(x,y) (((x) > (y) ? (x) : (y)))
+#endif
+#ifndef MIN
+#define MIN(x,y) (((x) < (y) ? (x) : (y)))
+#endif
 
 typedef struct {
-  int64_t start;
-  int64_t length;
+  size_t start;
+  size_t length;
 } TIM_SORT_RUN_T;
 
+
 void BINARY_INSERTION_SORT(SORT_TYPE *dst, const size_t size);
 void TIM_SORT(SORT_TYPE *dst, const size_t size);
 
+
 /* Function used to do a binary search for binary insertion sort */
-static int64_t BINARY_INSERTION_FIND(SORT_TYPE *dst, const SORT_TYPE x, const size_t size)
-{
-  int64_t l, c, r;
-  SORT_TYPE lx;
+static __inline size_t BINARY_INSERTION_FIND(SORT_TYPE *dst, const SORT_TYPE x,
+    const size_t size) {
+  size_t l, c, r;
   SORT_TYPE cx;
   l = 0;
   r = size - 1;
   c = r >> 1;
-  lx = dst[l];
 
-  /* check for beginning conditions */
-  if (SORT_CMP(x, lx) < 0)
+  /* check for out of bounds at the beginning. */
+  if (SORT_CMP(x, dst[0]) < 0) {
     return 0;
-  else if (SORT_CMP(x, lx) == 0)
-  {
-    int64_t i = 1;
-    while (SORT_CMP(x, dst[i]) == 0) i++;
-    return i;
+  } else if (SORT_CMP(x, dst[r]) > 0) {
+    return r;
   }
 
   cx = dst[c];
-  while (1)
-  {
+
+  while (1) {
     const int val = SORT_CMP(x, cx);
-    if (val < 0)
-    {
-      if (c - l <= 1) return c;
+
+    if (val < 0) {
+      if (c - l <= 1) {
+        return c;
+      }
+
       r = c;
-    }
-    else if (val > 0)
-    {
-      if (r - c <= 1) return c + 1;
+    } else { /* allow = for stability. The binary search favors the right. */
+      if (r - c <= 1) {
+        return c + 1;
+      }
+
       l = c;
-      lx = cx;
     }
-    else
-    {
-      do
-      {
-        cx = dst[++c];
-      } while (SORT_CMP(x, cx) == 0);
-      return c;
-    }
+
     c = l + ((r - l) >> 1);
     cx = dst[c];
   }
 }
 
 /* Binary insertion sort, but knowing that the first "start" entries are sorted.  Used in timsort. */
-static void BINARY_INSERTION_SORT_START(SORT_TYPE *dst, const size_t start, const size_t size)
-{
-  int64_t i;
-  for (i = start; i < (int64_t) size; i++)
-  {
-    int64_t j;
+static void BINARY_INSERTION_SORT_START(SORT_TYPE *dst, const size_t start, const size_t size) {
+  size_t i;
+
+  for (i = start; i < size; i++) {
+    size_t j;
     SORT_TYPE x;
-    int64_t location;
+    size_t location;
+
     /* If this entry is already correct, just move along */
-    if (SORT_CMP(dst[i - 1], dst[i]) <= 0) continue;
+    if (SORT_CMP(dst[i - 1], dst[i]) <= 0) {
+      continue;
+    }
 
     /* Else we need to find the right place, shift everything over, and squeeze in */
     x = dst[i];
     location = BINARY_INSERTION_FIND(dst, x, i);
-    for (j = i - 1; j >= location; j--)
-    {
+
+    for (j = i - 1; j >= location; j--) {
       dst[j + 1] = dst[j];
+
+      if (j == 0) { /* check edge case because j is unsigned */
+        break;
+      }
     }
+
     dst[location] = x;
   }
 }
 
 /* Binary insertion sort */
-void BINARY_INSERTION_SORT(SORT_TYPE *dst, const size_t size)
-{
+void BINARY_INSERTION_SORT(SORT_TYPE *dst, const size_t size) {
+  /* don't bother sorting an array of size <= 1 */
+  if (size <= 1) {
+    return;
+  }
+
   BINARY_INSERTION_SORT_START(dst, 1, size);
 }
 
 /* timsort implementation, based on timsort.txt */
 
-static void REVERSE_ELEMENTS(SORT_TYPE *dst, int64_t start, int64_t end)
-{
-  while (1)
-  {
-    if (start >= end) return;
+static __inline void REVERSE_ELEMENTS(SORT_TYPE *dst, size_t start, size_t end) {
+  while (1) {
+    if (start >= end) {
+      return;
+    }
+
     SORT_SWAP(dst[start], dst[end]);
     start++;
     end--;
   }
 }
 
-static int64_t COUNT_RUN(SORT_TYPE *dst, const int64_t start, const size_t size)
-{
-  int64_t curr;
-  if (size - start == 1) return 1;
-  if (start >= (int64_t) size - 2)
-  {
-    if (SORT_CMP(dst[size - 2], dst[size - 1]) > 0)
+static size_t COUNT_RUN(SORT_TYPE *dst, const size_t start, const size_t size) {
+  size_t curr;
+
+  if (size - start == 1) {
+    return 1;
+  }
+
+  if (start >= size - 2) {
+    if (SORT_CMP(dst[size - 2], dst[size - 1]) > 0) {
       SORT_SWAP(dst[size - 2], dst[size - 1]);
+    }
+
     return 2;
   }
 
   curr = start + 2;
 
-  if (SORT_CMP(dst[start], dst[start + 1]) <= 0)
-  {
+  if (SORT_CMP(dst[start], dst[start + 1]) <= 0) {
     /* increasing run */
-    while (1)
-    {
-      if (curr == (int64_t) size - 1) break;
-      if (SORT_CMP(dst[curr - 1], dst[curr]) > 0) break;
+    while (1) {
+      if (curr == size - 1) {
+        break;
+      }
+
+      if (SORT_CMP(dst[curr - 1], dst[curr]) > 0) {
+        break;
+      }
+
       curr++;
     }
+
     return curr - start;
-  }
-  else
-  {
+  } else {
     /* decreasing run */
-    while (1)
-    {
-      if (curr == (int64_t) size - 1) break;
-      if (SORT_CMP(dst[curr - 1], dst[curr]) <= 0) break;
+    while (1) {
+      if (curr == size - 1) {
+        break;
+      }
+
+      if (SORT_CMP(dst[curr - 1], dst[curr]) <= 0) {
+        break;
+      }
+
       curr++;
     }
+
     /* reverse in-place */
     REVERSE_ELEMENTS(dst, start, curr - 1);
     return curr - start;
   }
 }
 
-#define PUSH_NEXT() do {\
-len = COUNT_RUN(dst, curr, size);\
-run = minrun;\
-if (run < minrun) run = minrun;\
-if (run > (int64_t) size - curr) run = size - curr;\
-if (run > len)\
-{\
-  BINARY_INSERTION_SORT_START(&dst[curr], len, run);\
-  len = run;\
-}\
-{\
-run_stack[stack_curr].start = curr;\
-run_stack[stack_curr].length = len;\
-stack_curr++;\
-}\
-curr += len;\
-if (curr == (int64_t) size)\
-{\
-  /* finish up */ \
-  while (stack_curr > 1) \
-  { \
-    TIM_SORT_MERGE(dst, run_stack, stack_curr, store); \
-    run_stack[stack_curr - 2].length += run_stack[stack_curr - 1].length; \
-    stack_curr--; \
-  } \
-  if (store->storage != NULL)\
-  {\
-    free(store->storage);\
-    store->storage = NULL;\
-  }\
-  return;\
-}\
-}\
-while (0)
+static int CHECK_INVARIANT(TIM_SORT_RUN_T *stack, const int stack_curr) {
+  size_t A, B, C;
 
-static int CHECK_INVARIANT(TIM_SORT_RUN_T *stack, const int stack_curr)
-{
-  int64_t A, B, C;
-  if (stack_curr < 2) return 1;
-  if (stack_curr == 2)
-  {
-    const int64_t A1 = stack[stack_curr - 2].length;
-    const int64_t B1 = stack[stack_curr - 1].length;
-    if (A1 <= B1) return 0;
+  if (stack_curr < 2) {
     return 1;
   }
+
+  if (stack_curr == 2) {
+    const size_t A1 = stack[stack_curr - 2].length;
+    const size_t B1 = stack[stack_curr - 1].length;
+
+    if (A1 <= B1) {
+      return 0;
+    }
+
+    return 1;
+  }
+
   A = stack[stack_curr - 3].length;
   B = stack[stack_curr - 2].length;
   C = stack[stack_curr - 1].length;
-  if ((A <= B + C) || (B <= C)) return 0;
+
+  if ((A <= B + C) || (B <= C)) {
+    return 0;
+  }
+
   return 1;
 }
 
@@ -315,86 +353,78 @@
   SORT_TYPE *storage;
 } TEMP_STORAGE_T;
 
-
-static void TIM_SORT_RESIZE(TEMP_STORAGE_T *store, const size_t new_size)
-{
-  if (store->alloc < new_size)
-  {
+static void TIM_SORT_RESIZE(TEMP_STORAGE_T *store, const size_t new_size) {
+  if (store->alloc < new_size) {
     SORT_TYPE *tempstore = (SORT_TYPE *)realloc(store->storage, new_size * sizeof(SORT_TYPE));
-    if (tempstore == NULL)
-    {
-      fprintf(stderr, "Error allocating temporary storage for tim sort: need %lu bytes", sizeof(SORT_TYPE) * new_size);
+
+    if (tempstore == NULL) {
+      fprintf(stderr, "Error allocating temporary storage for tim sort: need %lu bytes",
+              (unsigned long)(sizeof(SORT_TYPE) * new_size));
       exit(1);
     }
+
     store->storage = tempstore;
     store->alloc = new_size;
   }
 }
 
-static void TIM_SORT_MERGE(SORT_TYPE *dst, const TIM_SORT_RUN_T *stack, const int stack_curr, TEMP_STORAGE_T *store)
-{
-  const int64_t A = stack[stack_curr - 2].length;
-  const int64_t B = stack[stack_curr - 1].length;
-  const int64_t curr = stack[stack_curr - 2].start;
+static void TIM_SORT_MERGE(SORT_TYPE *dst, const TIM_SORT_RUN_T *stack, const int stack_curr,
+                           TEMP_STORAGE_T *store) {
+  const size_t A = stack[stack_curr - 2].length;
+  const size_t B = stack[stack_curr - 1].length;
+  const size_t curr = stack[stack_curr - 2].start;
   SORT_TYPE *storage;
-  int64_t i, j, k;
-
+  size_t i, j, k;
   TIM_SORT_RESIZE(store, MIN(A, B));
   storage = store->storage;
 
   /* left merge */
-  if (A < B)
-  {
+  if (A < B) {
     memcpy(storage, &dst[curr], A * sizeof(SORT_TYPE));
     i = 0;
     j = curr + A;
 
-    for (k = curr; k < curr + A + B; k++)
-    {
-      if ((i < A) && (j < curr + A + B))
-      {
-        if (SORT_CMP(storage[i], dst[j]) <= 0)
+    for (k = curr; k < curr + A + B; k++) {
+      if ((i < A) && (j < curr + A + B)) {
+        if (SORT_CMP(storage[i], dst[j]) <= 0) {
           dst[k] = storage[i++];
-        else
+        } else {
           dst[k] = dst[j++];
-      }
-      else if (i < A)
-      {
+        }
+      } else if (i < A) {
         dst[k] = storage[i++];
+      } else {
+        break;
       }
-      else
-        dst[k] = dst[j++];
     }
-  }
-  /* right merge */
-  else
-  {
+  } else {
+    /* right merge */
     memcpy(storage, &dst[curr + A], B * sizeof(SORT_TYPE));
-    i = B - 1;
-    j = curr + A - 1;
+    i = B;
+    j = curr + A;
+    k = curr + A + B;
 
-    for (k = curr + A + B - 1; k >= curr; k--)
-    {
-      if ((i >= 0) && (j >= curr))
-      {
-          if (SORT_CMP(dst[j], storage[i]) > 0)
-            dst[k] = dst[j--];
-          else
-            dst[k] = storage[i--];
+    while (k-- > curr) {
+      if ((i > 0) && (j > curr)) {
+        if (SORT_CMP(dst[j - 1], storage[i - 1]) > 0) {
+          dst[k] = dst[--j];
+        } else {
+          dst[k] = storage[--i];
+        }
+      } else if (i > 0) {
+        dst[k] = storage[--i];
+      } else {
+        break;
       }
-      else if (i >= 0)
-        dst[k] = storage[i--];
-      else
-        dst[k] = dst[j--];
     }
   }
 }
 
-static int TIM_SORT_COLLAPSE(SORT_TYPE *dst, TIM_SORT_RUN_T *stack, int stack_curr, TEMP_STORAGE_T *store, const size_t size)
-{
+static int TIM_SORT_COLLAPSE(SORT_TYPE *dst, TIM_SORT_RUN_T *stack, int stack_curr,
+                             TEMP_STORAGE_T *store, const size_t size) {
   while (1) {
-    int64_t A, B, C, D;
-    int ABC, BCD, BD, CD;
+    size_t A, B, C, D;
+    int ABC, BCD, CD;
 
     /* if the stack only has one thing on it, we are done with the collapse */
     if (stack_curr <= 1) {
@@ -431,7 +461,6 @@
 
     BCD = (B <= C + D) || ABC;
     CD = (C <= D);
-    BD = (B < D);
 
     /* Both invariants are good */
     if (!BCD && !CD) {
@@ -455,41 +484,94 @@
   return stack_curr;
 }
 
-void TIM_SORT(SORT_TYPE *dst, const size_t size)
-{
-  int minrun;
-  TEMP_STORAGE_T _store, *store;
-  TIM_SORT_RUN_T run_stack[128];
-  int stack_curr = 0;
-  int64_t len, run;
-  int64_t curr = 0;
+static __inline int PUSH_NEXT(SORT_TYPE *dst,
+                              const size_t size,
+                              TEMP_STORAGE_T *store,
+                              const size_t minrun,
+                              TIM_SORT_RUN_T *run_stack,
+                              size_t *stack_curr,
+                              size_t *curr) {
+  size_t len = COUNT_RUN(dst, *curr, size);
+  size_t run = minrun;
 
-  if (size < 64)
-  {
+  if (run > size - *curr) {
+    run = size - *curr;
+  }
+
+  if (run > len) {
+    BINARY_INSERTION_SORT_START(&dst[*curr], len, run);
+    len = run;
+  }
+
+  run_stack[*stack_curr].start = *curr;
+  run_stack[*stack_curr].length = len;
+  (*stack_curr)++;
+  *curr += len;
+
+  if (*curr == size) {
+    /* finish up */
+    while (*stack_curr > 1) {
+      TIM_SORT_MERGE(dst, run_stack, *stack_curr, store);
+      run_stack[*stack_curr - 2].length += run_stack[*stack_curr - 1].length;
+      (*stack_curr)--;
+    }
+
+    if (store->storage != NULL) {
+      free(store->storage);
+      store->storage = NULL;
+    }
+
+    return 0;
+  }
+
+  return 1;
+}
+
+void TIM_SORT(SORT_TYPE *dst, const size_t size) {
+  size_t minrun;
+  TEMP_STORAGE_T _store, *store;
+  TIM_SORT_RUN_T run_stack[TIM_SORT_STACK_SIZE];
+  size_t stack_curr = 0;
+  size_t curr = 0;
+
+  /* don't bother sorting an array of size 1 */
+  if (size <= 1) {
+    return;
+  }
+
+  if (size < 64) {
     BINARY_INSERTION_SORT(dst, size);
     return;
   }
 
   /* compute the minimum run length */
   minrun = compute_minrun(size);
-
   /* temporary storage for merges */
   store = &_store;
   store->alloc = 0;
   store->storage = NULL;
 
-  PUSH_NEXT();
-  PUSH_NEXT();
-  PUSH_NEXT();
+  if (!PUSH_NEXT(dst, size, store, minrun, run_stack, &stack_curr, &curr)) {
+    return;
+  }
 
-  while (1)
-  {
-    if (!CHECK_INVARIANT(run_stack, stack_curr))
-    {
+  if (!PUSH_NEXT(dst, size, store, minrun, run_stack, &stack_curr, &curr)) {
+    return;
+  }
+
+  if (!PUSH_NEXT(dst, size, store, minrun, run_stack, &stack_curr, &curr)) {
+    return;
+  }
+
+  while (1) {
+    if (!CHECK_INVARIANT(run_stack, stack_curr)) {
       stack_curr = TIM_SORT_COLLAPSE(dst, run_stack, stack_curr, store, size);
       continue;
     }
-    PUSH_NEXT();
+
+    if (!PUSH_NEXT(dst, size, store, minrun, run_stack, &stack_curr, &curr)) {
+      return;
+    }
   }
 }
 
diff --git a/tree.c b/tree.c
index 9d330b8..959421b 100644
--- a/tree.c
+++ b/tree.c
@@ -10,10 +10,16 @@
  *
  */
 
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
 #define IN_LIBXML
 #include "libxml.h"
 
 #include <string.h> /* for memset() only ! */
+#include <stddef.h>
 #include <limits.h>
 #ifdef HAVE_CTYPE_H
 #include <ctype.h>
@@ -21,7 +27,7 @@
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 #include <zlib.h>
 #endif
 
@@ -254,10 +260,10 @@
  *
  * [NS 7] LocalPart ::= NCName
  *
- * Returns NULL if not a QName, otherwise the local part, and prefix
- *   is updated to get the Prefix if any.
+ * Returns NULL if the name doesn't have a prefix. Otherwise, returns the
+ * local part, and prefix is updated to get the Prefix. Both the return value
+ * and the prefix must be freed by the caller.
  */
-
 xmlChar *
 xmlSplitQName2(const xmlChar *name, xmlChar **prefix) {
     int len = 0;
@@ -1401,6 +1407,8 @@
 			else if ((ent != NULL) && (ent->children == NULL)) {
 			    xmlNodePtr temp;
 
+                            /* Set to non-NULL value to avoid recursion. */
+			    ent->children = (xmlNodePtr) -1;
 			    ent->children = xmlStringGetNodeList(doc,
 				    (const xmlChar*)node->content);
 			    ent->owner = 1;
@@ -1593,6 +1601,7 @@
 			else if ((ent != NULL) && (ent->children == NULL)) {
 			    xmlNodePtr temp;
 
+                            /* Set to non-NULL value to avoid recursion. */
 			    ent->children = (xmlNodePtr) -1;
 			    ent->children = xmlStringGetNodeList(doc,
 				    (const xmlChar*)node->content);
@@ -1600,6 +1609,7 @@
 			    temp = ent->children;
 			    while (temp) {
 				temp->parent = (xmlNodePtr)ent;
+				ent->last = temp;
 				temp = temp->next;
 			    }
 			}
@@ -4596,7 +4606,7 @@
 	(node->type == XML_PI_NODE)) {
 	if (node->line == 65535) {
 	    if ((node->type == XML_TEXT_NODE) && (node->psvi != NULL))
-	        result = (long) node->psvi;
+	        result = (long) (ptrdiff_t) node->psvi;
 	    else if ((node->type == XML_ELEMENT_NODE) &&
 	             (node->children != NULL))
 	        result = xmlGetLineNoInternal(node->children, depth + 1);
@@ -4755,8 +4765,8 @@
             if (occur == 0) {
                 tmp = cur->next;
                 while (tmp != NULL && occur == 0) {
-		  if (tmp->type == XML_COMMENT_NODE)
-		    occur++;
+		    if (tmp->type == XML_COMMENT_NODE)
+		        occur++;
                     tmp = tmp->next;
                 }
                 if (occur != 0)
@@ -8249,7 +8259,7 @@
 			ns = ns->next;
 		    } while (ns != NULL);
 		}
-		/* No break on purpose. */
+                /* Falls through. */
 	    case XML_ATTRIBUTE_NODE:
 		if (node->ns != NULL) {
 		    /*
@@ -8840,7 +8850,7 @@
 		}
 		if (! adoptns)
 		    goto ns_end;
-		/* No break on purpose. */
+                /* Falls through. */
 	    case XML_ATTRIBUTE_NODE:
 		/* No ns, no fun. */
 		if (cur->ns == NULL)
@@ -9121,7 +9131,7 @@
 			    goto internal_error;
 		    }
 		}
-		/* No break on purpose. */
+                /* Falls through. */
 	    case XML_ATTRIBUTE_NODE:
 		/* No namespace, no fun. */
 		if (cur->ns == NULL)
diff --git a/uri.c b/uri.c
index b11a8a1..860b203 100644
--- a/uri.c
+++ b/uri.c
@@ -1533,10 +1533,11 @@
           break;
         }
         /* Valgrind complained, strcpy(cur, segp + 3); */
-	/* string will overlap, do not use strcpy */
-	tmp = cur;
-	segp += 3;
-	while ((*tmp++ = *segp++) != 0);
+        /* string will overlap, do not use strcpy */
+        tmp = cur;
+        segp += 3;
+        while ((*tmp++ = *segp++) != 0)
+          ;
 
         /* If there are no previous segments, then keep going from here.  */
         segp = cur;
@@ -1961,8 +1962,9 @@
 	    res->scheme = xmlMemStrdup(bas->scheme);
 	if (bas->authority != NULL)
 	    res->authority = xmlMemStrdup(bas->authority);
-	else if (bas->server != NULL) {
-	    res->server = xmlMemStrdup(bas->server);
+	else if ((bas->server != NULL) || (bas->port == -1)) {
+	    if (bas->server != NULL)
+		res->server = xmlMemStrdup(bas->server);
 	    if (bas->user != NULL)
 		res->user = xmlMemStrdup(bas->user);
 	    res->port = bas->port;
@@ -2024,8 +2026,9 @@
     }
     if (bas->authority != NULL)
 	res->authority = xmlMemStrdup(bas->authority);
-    else if (bas->server != NULL) {
-	res->server = xmlMemStrdup(bas->server);
+    else if ((bas->server != NULL) || (bas->port == -1)) {
+	if (bas->server != NULL)
+	    res->server = xmlMemStrdup(bas->server);
 	if (bas->user != NULL)
 	    res->user = xmlMemStrdup(bas->user);
 	res->port = bas->port;
@@ -2163,7 +2166,6 @@
     xmlChar *val = NULL;
     int ret;
     int ix;
-    int pos = 0;
     int nbslash = 0;
     int len;
     xmlURIPtr ref = NULL;
@@ -2254,19 +2256,22 @@
 	uptr = NULL;
 	len = 1;	/* this is for a string terminator only */
     } else {
-    /*
-     * Next we compare the two strings and find where they first differ
-     */
-	if ((ref->path[pos] == '.') && (ref->path[pos+1] == '/'))
-            pos += 2;
+        xmlChar *rptr = (xmlChar *) ref->path;
+        int pos = 0;
+
+        /*
+         * Next we compare the two strings and find where they first differ
+         */
+	if ((*rptr == '.') && (rptr[1] == '/'))
+            rptr += 2;
 	if ((*bptr == '.') && (bptr[1] == '/'))
             bptr += 2;
-	else if ((*bptr == '/') && (ref->path[pos] != '/'))
+	else if ((*bptr == '/') && (*rptr != '/'))
 	    bptr++;
-	while ((bptr[pos] == ref->path[pos]) && (bptr[pos] != 0))
+	while ((bptr[pos] == rptr[pos]) && (bptr[pos] != 0))
 	    pos++;
 
-	if (bptr[pos] == ref->path[pos]) {
+	if (bptr[pos] == rptr[pos]) {
 	    val = xmlStrdup(BAD_CAST "");
 	    goto done;		/* (I can't imagine why anyone would do this) */
 	}
@@ -2276,25 +2281,25 @@
 	 * beginning of the "unique" suffix of URI
 	 */
 	ix = pos;
-	if ((ref->path[ix] == '/') && (ix > 0))
+	if ((rptr[ix] == '/') && (ix > 0))
 	    ix--;
-	else if ((ref->path[ix] == 0) && (ix > 1) && (ref->path[ix - 1] == '/'))
+	else if ((rptr[ix] == 0) && (ix > 1) && (rptr[ix - 1] == '/'))
 	    ix -= 2;
 	for (; ix > 0; ix--) {
-	    if (ref->path[ix] == '/')
+	    if (rptr[ix] == '/')
 		break;
 	}
 	if (ix == 0) {
-	    uptr = (xmlChar *)ref->path;
+	    uptr = (xmlChar *)rptr;
 	} else {
 	    ix++;
-	    uptr = (xmlChar *)&ref->path[ix];
+	    uptr = (xmlChar *)&rptr[ix];
 	}
 
 	/*
 	 * In base, count the number of '/' from the differing point
 	 */
-	if (bptr[pos] != ref->path[pos]) {/* check for trivial URI == base */
+	if (bptr[pos] != rptr[pos]) {/* check for trivial URI == base */
 	    for (; bptr[ix] != 0; ix++) {
 		if (bptr[ix] == '/')
 		    nbslash++;
@@ -2390,8 +2395,7 @@
  */
 #if defined(_WIN32) && !defined(__CYGWIN__)
     int len = 0;
-    int i = 0;
-    xmlChar *p = NULL;
+    char *p = NULL;
 #endif
     xmlURIPtr uri;
     xmlChar *ret;
@@ -2455,6 +2459,7 @@
 	        xmlFreeURI(uri);
 		return escURI;
 	    }
+            xmlFree(escURI);
 	}
     }
 
@@ -2472,7 +2477,7 @@
     len = xmlStrlen(path);
     if ((len > 2) && IS_WINDOWS_PATH(path)) {
         /* make the scheme 'file' */
-	uri->scheme = xmlStrdup(BAD_CAST "file");
+	uri->scheme = (char *) xmlStrdup(BAD_CAST "file");
 	/* allocate space for leading '/' + path + string terminator */
 	uri->path = xmlMallocAtomic(len + 2);
 	if (uri->path == NULL) {
@@ -2482,9 +2487,9 @@
 	/* Put in leading '/' plus path */
 	uri->path[0] = '/';
 	p = uri->path + 1;
-	strncpy(p, path, len + 1);
+	strncpy(p, (char *) path, len + 1);
     } else {
-	uri->path = xmlStrdup(path);
+	uri->path = (char *) xmlStrdup(path);
 	if (uri->path == NULL) {
 	    xmlFreeURI(uri);
 	    return(NULL);
diff --git a/valid.c b/valid.c
index aee6f40..57a1a9e 100644
--- a/valid.c
+++ b/valid.c
@@ -163,7 +163,7 @@
     __xmlRaiseError(schannel, channel, data, pctxt, node, XML_FROM_VALID, error,
                     XML_ERR_ERROR, NULL, 0,
                     (const char *) str1,
-                    (const char *) str1,
+                    (const char *) str2,
                     (const char *) str3, 0, 0, msg, str1, str2, str3);
 }
 #endif /* LIBXML_VALID_ENABLED or LIBXML_SCHEMAS_ENABLED */
@@ -247,7 +247,7 @@
     __xmlRaiseError(schannel, channel, data, pctxt, node, XML_FROM_VALID, error,
                     XML_ERR_WARNING, NULL, 0,
                     (const char *) str1,
-                    (const char *) str1,
+                    (const char *) str2,
                     (const char *) str3, 0, 0, msg, str1, str2, str3);
 }
 
@@ -1172,29 +1172,33 @@
 	    xmlBufferWriteCHAR(buf, content->name);
 	    break;
 	case XML_ELEMENT_CONTENT_SEQ:
-	    if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
-	        (content->c1->type == XML_ELEMENT_CONTENT_SEQ))
+	    if ((content->c1 != NULL) &&
+	        ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
+	         (content->c1->type == XML_ELEMENT_CONTENT_SEQ)))
 		xmlDumpElementContent(buf, content->c1, 1);
 	    else
 		xmlDumpElementContent(buf, content->c1, 0);
             xmlBufferWriteChar(buf, " , ");
-	    if ((content->c2->type == XML_ELEMENT_CONTENT_OR) ||
-	        ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) &&
-		 (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE)))
+	    if ((content->c2 != NULL) &&
+	        ((content->c2->type == XML_ELEMENT_CONTENT_OR) ||
+	         ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) &&
+		  (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE))))
 		xmlDumpElementContent(buf, content->c2, 1);
 	    else
 		xmlDumpElementContent(buf, content->c2, 0);
 	    break;
 	case XML_ELEMENT_CONTENT_OR:
-	    if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
-	        (content->c1->type == XML_ELEMENT_CONTENT_SEQ))
+	    if ((content->c1 != NULL) &&
+	        ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
+	         (content->c1->type == XML_ELEMENT_CONTENT_SEQ)))
 		xmlDumpElementContent(buf, content->c1, 1);
 	    else
 		xmlDumpElementContent(buf, content->c1, 0);
             xmlBufferWriteChar(buf, " | ");
-	    if ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) ||
-	        ((content->c2->type == XML_ELEMENT_CONTENT_OR) &&
-		 (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE)))
+	    if ((content->c2 != NULL) &&
+	        ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) ||
+	         ((content->c2->type == XML_ELEMENT_CONTENT_OR) &&
+		  (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE))))
 		xmlDumpElementContent(buf, content->c2, 1);
 	    else
 		xmlDumpElementContent(buf, content->c2, 0);
@@ -1262,22 +1266,23 @@
         case XML_ELEMENT_CONTENT_PCDATA:
             strcat(buf, "#PCDATA");
 	    break;
-	case XML_ELEMENT_CONTENT_ELEMENT:
-	    if (content->prefix != NULL) {
-		if (size - len < xmlStrlen(content->prefix) + 10) {
-		    strcat(buf, " ...");
-		    return;
-		}
-		strcat(buf, (char *) content->prefix);
-		strcat(buf, ":");
-	    }
-	    if (size - len < xmlStrlen(content->name) + 10) {
+	case XML_ELEMENT_CONTENT_ELEMENT: {
+            int qnameLen = xmlStrlen(content->name);
+
+	    if (content->prefix != NULL)
+                qnameLen += xmlStrlen(content->prefix) + 1;
+	    if (size - len < qnameLen + 10) {
 		strcat(buf, " ...");
 		return;
 	    }
+	    if (content->prefix != NULL) {
+		strcat(buf, (char *) content->prefix);
+		strcat(buf, ":");
+	    }
 	    if (content->name != NULL)
 		strcat(buf, (char *) content->name);
 	    break;
+        }
 	case XML_ELEMENT_CONTENT_SEQ:
 	    if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
 	        (content->c1->type == XML_ELEMENT_CONTENT_SEQ))
@@ -1319,6 +1324,7 @@
 		xmlSnprintfElementContent(buf, size, content->c2, 0);
 	    break;
     }
+    if (size - strlen(buf) <= 2) return;
     if (englob)
         strcat(buf, ")");
     switch (content->ocur) {
@@ -1591,6 +1597,11 @@
     return(ret);
 }
 
+static void
+xmlFreeElementTableEntry(void *elem, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlFreeElement((xmlElementPtr) elem);
+}
+
 /**
  * xmlFreeElementTable:
  * @table:  An element table
@@ -1599,7 +1610,7 @@
  */
 void
 xmlFreeElementTable(xmlElementTablePtr table) {
-    xmlHashFree(table, (xmlHashDeallocator) xmlFreeElement);
+    xmlHashFree(table, xmlFreeElementTableEntry);
 }
 
 #ifdef LIBXML_TREE_ENABLED
@@ -1611,8 +1622,9 @@
  *
  * Returns the new xmlElementPtr or NULL in case of error.
  */
-static xmlElementPtr
-xmlCopyElement(xmlElementPtr elem) {
+static void *
+xmlCopyElement(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlElementPtr elem = (xmlElementPtr) payload;
     xmlElementPtr cur;
 
     cur = (xmlElementPtr) xmlMalloc(sizeof(xmlElement));
@@ -1647,8 +1659,7 @@
  */
 xmlElementTablePtr
 xmlCopyElementTable(xmlElementTablePtr table) {
-    return((xmlElementTablePtr) xmlHashCopy(table,
-		                            (xmlHashCopier) xmlCopyElement));
+    return((xmlElementTablePtr) xmlHashCopy(table, xmlCopyElement));
 }
 #endif /* LIBXML_TREE_ENABLED */
 
@@ -1722,8 +1733,9 @@
  * the arguments.
  */
 static void
-xmlDumpElementDeclScan(xmlElementPtr elem, xmlBufferPtr buf) {
-    xmlDumpElementDecl(buf, elem);
+xmlDumpElementDeclScan(void *elem, void *buf,
+                       const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlDumpElementDecl((xmlBufferPtr) buf, (xmlElementPtr) elem);
 }
 
 /**
@@ -1737,7 +1749,7 @@
 xmlDumpElementTable(xmlBufferPtr buf, xmlElementTablePtr table) {
     if ((buf == NULL) || (table == NULL))
         return;
-    xmlHashScan(table, (xmlHashScanner) xmlDumpElementDeclScan, buf);
+    xmlHashScan(table, xmlDumpElementDeclScan, buf);
 }
 #endif /* LIBXML_OUTPUT_ENABLED */
 
@@ -2137,6 +2149,11 @@
     return(ret);
 }
 
+static void
+xmlFreeAttributeTableEntry(void *attr, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlFreeAttribute((xmlAttributePtr) attr);
+}
+
 /**
  * xmlFreeAttributeTable:
  * @table:  An attribute table
@@ -2145,7 +2162,7 @@
  */
 void
 xmlFreeAttributeTable(xmlAttributeTablePtr table) {
-    xmlHashFree(table, (xmlHashDeallocator) xmlFreeAttribute);
+    xmlHashFree(table, xmlFreeAttributeTableEntry);
 }
 
 #ifdef LIBXML_TREE_ENABLED
@@ -2157,8 +2174,9 @@
  *
  * Returns the new xmlAttributePtr or NULL in case of error.
  */
-static xmlAttributePtr
-xmlCopyAttribute(xmlAttributePtr attr) {
+static void *
+xmlCopyAttribute(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlAttributePtr attr = (xmlAttributePtr) payload;
     xmlAttributePtr cur;
 
     cur = (xmlAttributePtr) xmlMalloc(sizeof(xmlAttribute));
@@ -2192,8 +2210,7 @@
  */
 xmlAttributeTablePtr
 xmlCopyAttributeTable(xmlAttributeTablePtr table) {
-    return((xmlAttributeTablePtr) xmlHashCopy(table,
-				    (xmlHashCopier) xmlCopyAttribute));
+    return((xmlAttributeTablePtr) xmlHashCopy(table, xmlCopyAttribute));
 }
 #endif /* LIBXML_TREE_ENABLED */
 
@@ -2288,8 +2305,9 @@
  * This is used with the hash scan function - just reverses arguments
  */
 static void
-xmlDumpAttributeDeclScan(xmlAttributePtr attr, xmlBufferPtr buf) {
-    xmlDumpAttributeDecl(buf, attr);
+xmlDumpAttributeDeclScan(void *attr, void *buf,
+                         const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlDumpAttributeDecl((xmlBufferPtr) buf, (xmlAttributePtr) attr);
 }
 
 /**
@@ -2303,7 +2321,7 @@
 xmlDumpAttributeTable(xmlBufferPtr buf, xmlAttributeTablePtr table) {
     if ((buf == NULL) || (table == NULL))
         return;
-    xmlHashScan(table, (xmlHashScanner) xmlDumpAttributeDeclScan, buf);
+    xmlHashScan(table, xmlDumpAttributeDeclScan, buf);
 }
 #endif /* LIBXML_OUTPUT_ENABLED */
 
@@ -2409,6 +2427,11 @@
     return(ret);
 }
 
+static void
+xmlFreeNotationTableEntry(void *nota, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlFreeNotation((xmlNotationPtr) nota);
+}
+
 /**
  * xmlFreeNotationTable:
  * @table:  An notation table
@@ -2417,7 +2440,7 @@
  */
 void
 xmlFreeNotationTable(xmlNotationTablePtr table) {
-    xmlHashFree(table, (xmlHashDeallocator) xmlFreeNotation);
+    xmlHashFree(table, xmlFreeNotationTableEntry);
 }
 
 #ifdef LIBXML_TREE_ENABLED
@@ -2429,8 +2452,9 @@
  *
  * Returns the new xmlNotationPtr or NULL in case of error.
  */
-static xmlNotationPtr
-xmlCopyNotation(xmlNotationPtr nota) {
+static void *
+xmlCopyNotation(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlNotationPtr nota = (xmlNotationPtr) payload;
     xmlNotationPtr cur;
 
     cur = (xmlNotationPtr) xmlMalloc(sizeof(xmlNotation));
@@ -2463,8 +2487,7 @@
  */
 xmlNotationTablePtr
 xmlCopyNotationTable(xmlNotationTablePtr table) {
-    return((xmlNotationTablePtr) xmlHashCopy(table,
-				    (xmlHashCopier) xmlCopyNotation));
+    return((xmlNotationTablePtr) xmlHashCopy(table, xmlCopyNotation));
 }
 #endif /* LIBXML_TREE_ENABLED */
 
@@ -2504,8 +2527,9 @@
  * This is called with the hash scan function, and just reverses args
  */
 static void
-xmlDumpNotationDeclScan(xmlNotationPtr nota, xmlBufferPtr buf) {
-    xmlDumpNotationDecl(buf, nota);
+xmlDumpNotationDeclScan(void *nota, void *buf,
+                        const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlDumpNotationDecl((xmlBufferPtr) buf, (xmlNotationPtr) nota);
 }
 
 /**
@@ -2519,7 +2543,7 @@
 xmlDumpNotationTable(xmlBufferPtr buf, xmlNotationTablePtr table) {
     if ((buf == NULL) || (table == NULL))
         return;
-    xmlHashScan(table, (xmlHashScanner) xmlDumpNotationDeclScan, buf);
+    xmlHashScan(table, xmlDumpNotationDeclScan, buf);
 }
 #endif /* LIBXML_OUTPUT_ENABLED */
 
@@ -2647,6 +2671,11 @@
     return(ret);
 }
 
+static void
+xmlFreeIDTableEntry(void *id, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlFreeID((xmlIDPtr) id);
+}
+
 /**
  * xmlFreeIDTable:
  * @table:  An id table
@@ -2655,7 +2684,7 @@
  */
 void
 xmlFreeIDTable(xmlIDTablePtr table) {
-    xmlHashFree(table, (xmlHashDeallocator) xmlFreeID);
+    xmlHashFree(table, xmlFreeIDTableEntry);
 }
 
 /**
@@ -2755,7 +2784,7 @@
         return(-1);
     }
 
-    xmlHashRemoveEntry(table, ID, (xmlHashDeallocator) xmlFreeID);
+    xmlHashRemoveEntry(table, ID, xmlFreeIDTableEntry);
     xmlFree(ID);
     attr->atype = 0;
     return(0);
@@ -2839,13 +2868,14 @@
 }
 
 /**
- * xmlFreeRefList:
+ * xmlFreeRefTableEntry:
  * @list_ref:  A list of references.
  *
  * Deallocate the memory used by a list of references
  */
 static void
-xmlFreeRefList(xmlListPtr list_ref) {
+xmlFreeRefTableEntry(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlListPtr list_ref = (xmlListPtr) payload;
     if (list_ref == NULL) return;
     xmlListDelete(list_ref);
 }
@@ -2858,7 +2888,7 @@
  * Returns 0 to abort the walk or 1 to continue
  */
 static int
-xmlWalkRemoveRef(const void *data, const void *user)
+xmlWalkRemoveRef(const void *data, void *user)
 {
     xmlAttrPtr attr0 = ((xmlRefPtr)data)->attr;
     xmlAttrPtr attr1 = ((xmlRemoveMemoPtr)user)->ap;
@@ -2996,7 +3026,7 @@
  */
 void
 xmlFreeRefTable(xmlRefTablePtr table) {
-    xmlHashFree(table, (xmlHashDeallocator) xmlFreeRefList);
+    xmlHashFree(table, xmlFreeRefTableEntry);
 }
 
 /**
@@ -3093,8 +3123,7 @@
 
     /*If the list is empty then remove the list entry in the hash */
     if (xmlListEmpty(ref_list))
-        xmlHashUpdateEntry(table, ID, NULL, (xmlHashDeallocator)
-        xmlFreeRefList);
+        xmlHashUpdateEntry(table, ID, NULL, xmlFreeRefTableEntry);
     xmlFree(ID);
     return(0);
 }
@@ -4090,8 +4119,10 @@
 }
 
 static void
-xmlValidateAttributeIdCallback(xmlAttributePtr attr, int *count,
-	                       const xmlChar* name ATTRIBUTE_UNUSED) {
+xmlValidateAttributeIdCallback(void *payload, void *data,
+	                       const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlAttributePtr attr = (xmlAttributePtr) payload;
+    int *count = (int *) data;
     if (attr->atype == XML_ATTRIBUTE_ID) (*count)++;
 }
 
@@ -4163,7 +4194,7 @@
 	    nbId = 0;
 	    if (doc->intSubset != NULL) {
 		table = (xmlAttributeTablePtr) doc->intSubset->attributes;
-		xmlHashScan3(table, NULL, NULL, attr->elem, (xmlHashScanner)
+		xmlHashScan3(table, NULL, NULL, attr->elem,
 			     xmlValidateAttributeIdCallback, &nbId);
 	    }
 	}
@@ -4621,6 +4652,12 @@
 	}
     }
 
+    /*
+     * Casting ns to xmlAttrPtr is wrong. We'd need separate functions
+     * xmlAddID and xmlAddRef for namespace declarations, but it makes
+     * no practical sense to use ID types anyway.
+     */
+#if 0
     /* Validity Constraint: ID uniqueness */
     if (attrDecl->atype == XML_ATTRIBUTE_ID) {
         if (xmlAddID(ctxt, doc, value, (xmlAttrPtr) attrDecl) == NULL)
@@ -4632,6 +4669,7 @@
         if (xmlAddRef(ctxt, doc, value, (xmlAttrPtr) attrDecl) == NULL)
 	    ret = 0;
     }
+#endif
 
     /* Validity Constraint: Notation Attributes */
     if (attrDecl->atype == XML_ATTRIBUTE_NOTATION) {
@@ -5177,6 +5215,7 @@
             case XML_TEXT_NODE:
 		if (xmlIsBlankNode(cur))
 		    break;
+                /* Falls through. */
             case XML_CDATA_SECTION_NODE:
             case XML_ENTITY_REF_NODE:
 	        strcat(buf, "CDATA");
@@ -5725,7 +5764,7 @@
 	xmlElementPtr elemDecl;
 
 	/*
-	 * Check the new element agaisnt the content model of the new elem.
+	 * Check the new element against the content model of the new elem.
 	 */
 	if (state->elemDecl != NULL) {
 	    elemDecl = state->elemDecl;
@@ -5817,7 +5856,7 @@
 	xmlElementPtr elemDecl;
 
 	/*
-	 * Check the new element agaisnt the content model of the new elem.
+	 * Check the new element against the content model of the new elem.
 	 */
 	if (state->elemDecl != NULL) {
 	    elemDecl = state->elemDecl;
@@ -5891,7 +5930,7 @@
 	xmlElementPtr elemDecl;
 
 	/*
-	 * Check the new element agaisnt the content model of the new elem.
+	 * Check the new element against the content model of the new elem.
 	 */
 	if (state->elemDecl != NULL) {
 	    elemDecl = state->elemDecl;
@@ -6516,7 +6555,7 @@
  * Returns 0 to abort the walk or 1 to continue
  */
 static int
-xmlWalkValidateList(const void *data, const void *user)
+xmlWalkValidateList(const void *data, void *user)
 {
 	xmlValidateMemoPtr memo = (xmlValidateMemoPtr)user;
 	xmlValidateRef((xmlRefPtr)data, memo->ctxt, memo->name);
@@ -6531,8 +6570,9 @@
  *
  */
 static void
-xmlValidateCheckRefCallback(xmlListPtr ref_list, xmlValidCtxtPtr ctxt,
-	                   const xmlChar *name) {
+xmlValidateCheckRefCallback(void *payload, void *data, const xmlChar *name) {
+    xmlListPtr ref_list = (xmlListPtr) payload;
+    xmlValidCtxtPtr ctxt = (xmlValidCtxtPtr) data;
     xmlValidateMemo memo;
 
     if (ref_list == NULL)
@@ -6588,7 +6628,7 @@
     table = (xmlRefTablePtr) doc->refs;
     ctxt->doc = doc;
     ctxt->valid = 1;
-    xmlHashScan(table, (xmlHashScanner) xmlValidateCheckRefCallback, ctxt);
+    xmlHashScan(table, xmlValidateCheckRefCallback, ctxt);
 
     ctxt->finishDtd = save;
     return(ctxt->valid);
@@ -6645,8 +6685,10 @@
 }
 
 static void
-xmlValidateNotationCallback(xmlEntityPtr cur, xmlValidCtxtPtr ctxt,
+xmlValidateNotationCallback(void *payload, void *data,
 	                    const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlEntityPtr cur = (xmlEntityPtr) payload;
+    xmlValidCtxtPtr ctxt = (xmlValidCtxtPtr) data;
     if (cur == NULL)
 	return;
     if (cur->etype == XML_EXTERNAL_GENERAL_UNPARSED_ENTITY) {
@@ -6664,8 +6706,10 @@
 }
 
 static void
-xmlValidateAttributeCallback(xmlAttributePtr cur, xmlValidCtxtPtr ctxt,
-	                    const xmlChar *name ATTRIBUTE_UNUSED) {
+xmlValidateAttributeCallback(void *payload, void *data,
+	                     const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlAttributePtr cur = (xmlAttributePtr) payload;
+    xmlValidCtxtPtr ctxt = (xmlValidCtxtPtr) data;
     int ret;
     xmlDocPtr doc;
     xmlElementPtr elem = NULL;
@@ -6764,22 +6808,20 @@
     dtd = doc->intSubset;
     if ((dtd != NULL) && (dtd->attributes != NULL)) {
 	table = (xmlAttributeTablePtr) dtd->attributes;
-	xmlHashScan(table, (xmlHashScanner) xmlValidateAttributeCallback, ctxt);
+	xmlHashScan(table, xmlValidateAttributeCallback, ctxt);
     }
     if ((dtd != NULL) && (dtd->entities != NULL)) {
 	entities = (xmlEntitiesTablePtr) dtd->entities;
-	xmlHashScan(entities, (xmlHashScanner) xmlValidateNotationCallback,
-		    ctxt);
+	xmlHashScan(entities, xmlValidateNotationCallback, ctxt);
     }
     dtd = doc->extSubset;
     if ((dtd != NULL) && (dtd->attributes != NULL)) {
 	table = (xmlAttributeTablePtr) dtd->attributes;
-	xmlHashScan(table, (xmlHashScanner) xmlValidateAttributeCallback, ctxt);
+	xmlHashScan(table, xmlValidateAttributeCallback, ctxt);
     }
     if ((dtd != NULL) && (dtd->entities != NULL)) {
 	entities = (xmlEntitiesTablePtr) dtd->entities;
-	xmlHashScan(entities, (xmlHashScanner) xmlValidateNotationCallback,
-		    ctxt);
+	xmlHashScan(entities, xmlValidateNotationCallback, ctxt);
     }
     return(ctxt->valid);
 }
diff --git a/vms/build_libxml.com b/vms/build_libxml.com
index 3a6fcc0..1f7936e 100755
--- a/vms/build_libxml.com
+++ b/vms/build_libxml.com
@@ -62,9 +62,9 @@
 $   bin_progs = "xmllint xmlcatalog"
 $!
 $!- list of test modules to compile and link.  Compare this list to the
-$!  definition of noinst_PROGRAMS in MAKEFILE.
+$!  definition of check_PROGRAMS in MAKEFILE.
 $!
-$   noinst_PROGRAMS = "testSchemas testRelax testSAX testHTML testXPath testURI " -
+$   check_PROGRAMS = "testSchemas testRelax testSAX testHTML testXPath testURI " -
                 + "testThreads testC14N testAutomata testRegexp testReader"
 $!
 $!- set up build logicals -----------------------------------------------------\
@@ -196,7 +196,7 @@
 $ write sys$output ""
 $!
 $ p_no = 0
-$ all_progs = bin_progs + " " + noinst_PROGRAMS
+$ all_progs = bin_progs + " " + check_PROGRAMS
 $ all_progs = f$edit(all_progs,"COMPRESS")
 $!
 $ prog_loop:
diff --git a/vms/config.vms b/vms/config.vms
index d1cd7f3..375406b 100755
--- a/vms/config.vms
+++ b/vms/config.vms
@@ -21,39 +21,15 @@
 
 #define ICONV_CONST
 
-/* Define if you have the class function.  */
-#undef HAVE_CLASS
-
-/* Define if you have the finite function.  */
-#undef HAVE_FINITE
-
-/* Define if you have the fp_class function.  */
-#define HAVE_FP_CLASS	1
-
-/* Define if you have the fpclass function.  */
-#undef HAVE_FPCLASS
-
-/* Define if you have the isnand function.  */
-#undef HAVE_ISNAND
-
 /* Define if you have the localtime function.  */
 #define HAVE_LOCALTIME	1
 
 /* Define if you have the snprintf function.  */
 #undef HAVE_SNPRINTF
 
-/* Define if you have the strdup function.  */
-#define HAVE_STRDUP	1
-
-/* Define if you have the strerror function.  */
-#define HAVE_STRERROR	1
-
 /* Define if you have the strftime function.  */
 #define HAVE_STRFTIME	1
 
-/* Define if you have the strndup function.  */
-#undef HAVE_STRNDUP
-
 /* Define if you have the <arpa/inet.h> header file.  */
 #undef HAVE_ARPA_INET_H
 
@@ -72,21 +48,12 @@
 /* Define if you have the <float.h> header file.  */
 #define HAVE_FLOAT_H	1
 
-/* Define if you have the <fp_class.h> header file.  */
-#define HAVE_FP_CLASS_H	1
-
-/* Define if you have the <ieeefp.h> header file.  */
-#undef HAVE_IEEEFP_H
-
 /* Define if you have the <malloc.h> header file.  */
 #undef HAVE_MALLOC_H
 
 /* Define if you have the <math.h> header file.  */
 #define HAVE_MATH_H	1
 
-/* Define if you have the <nan.h> header file.  */
-#undef HAVE_NAN_H
-
 /* Define if you have the <ndir.h> header file.  */
 #undef HAVE_NDIR_H
 
@@ -102,12 +69,6 @@
 /* Define if you have the <stdlib.h> header file.  */
 #define HAVE_STDLIB_H	1
 
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP 1
-
-/* Define to 1 if you have the `strerror' function. */
-#define HAVE_STRERROR 1
-
 /* Define to 1 if you have the `strftime' function. */
 #define HAVE_STRFTIME 1
 
@@ -117,9 +78,6 @@
 /* Define to 1 if you have the <string.h> header file. */
 #define HAVE_STRING_H 1
 
-/* Define to 1 if you have the `strndup' function. */
-#undef HAVE_STRNDUP
-
 /* Define if you have the <sys/dir.h> header file.  */
 #undef HAVE_SYS_DIR_H
 
@@ -150,9 +108,6 @@
 /* Define if you have the <unistd.h> header file.  */
 #define HAVE_UNISTD_H	1
 
-/* Define if you have the <zlib.h> header file.  */
-#undef HAVE_ZLIB_H
-
 /* Name of package */
 #undef PACKAGE
 
diff --git a/win32/Makefile.bcb b/win32/Makefile.bcb
index 7129c61..41002da 100644
--- a/win32/Makefile.bcb
+++ b/win32/Makefile.bcb
@@ -65,12 +65,6 @@
 !else if "$(WITH_THREADS)" == "posix"
 CFLAGS = $(CFLAGS) -DHAVE_PTHREAD_H
 !endif
-!if "$(WITH_ZLIB)" == "1"
-CFLAGS = $(CFLAGS) -DHAVE_ZLIB_H
-!endif
-!if "$(WITH_LZMA)" == "1"
-CFLAGS = $(CFLAGS) -DHAVE_LZMA_H
-!endif
 
 # The linker and its options.
 LD = ilink32.exe
diff --git a/win32/Makefile.mingw b/win32/Makefile.mingw
index 1889376..3d4cb88 100644
--- a/win32/Makefile.mingw
+++ b/win32/Makefile.mingw
@@ -57,12 +57,6 @@
 ifeq ($(WITH_THREADS),posix)
 CFLAGS += -DHAVE_PTHREAD_H
 endif
-ifeq ($(WITH_ZLIB),1)
-CFLAGS += -DHAVE_ZLIB_H
-endif
-ifeq ($(WITH_LZMA),1)
-CFLAGS += -DHAVE_LZMA_H
-endif
 
 # The linker and its options.
 LD = gcc.exe
@@ -71,11 +65,9 @@
 LDFLAGS += -Wl,-L,$(BINDIR) -Wl,-L,$(LIBPREFIX)
 LIBS =
 ifeq ($(WITH_FTP),1)
-CFLAGS += -D_WINSOCKAPI_
 LIBS += -lwsock32 -lws2_32
 endif 
 ifeq ($(WITH_HTTP),1)
-CFLAGS += -D_WINSOCKAPI_
 LIBS += -lwsock32 -lws2_32
 endif 
 ifeq ($(WITH_ICONV),1)
diff --git a/win32/Makefile.msvc b/win32/Makefile.msvc
index d16c1a2..491dc88 100644
--- a/win32/Makefile.msvc
+++ b/win32/Makefile.msvc
@@ -22,6 +22,7 @@
 XML_NAME = xml2
 XML_BASENAME = lib$(XML_NAME)
 XML_SO = $(XML_BASENAME).dll
+XML_RES = $(XML_BASENAME).res
 XML_IMP = $(XML_BASENAME).lib
 XML_DEF = $(XML_BASENAME).def
 XML_A = $(XML_BASENAME)_a.lib
@@ -43,7 +44,7 @@
 
 # The compiler and its options.
 CC = cl.exe
-CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOLIBTOOL" /W1 $(CRUNTIME)
+CFLAGS = /nologo /D "_WINDOWS" /D "_MBCS" /D "NOLIBTOOL" /W3 /wd4244 /wd4267 $(CRUNTIME)
 CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX)
 !if "$(WITH_THREADS)" != "no"
 CFLAGS = $(CFLAGS) /D "_REENTRANT"
@@ -55,12 +56,6 @@
 !else if "$(WITH_THREADS)" == "posix"
 CFLAGS = $(CFLAGS) /D "HAVE_PTHREAD_H"
 !endif
-!if "$(WITH_ZLIB)" == "1"
-CFLAGS = $(CFLAGS) /D "HAVE_ZLIB_H"
-!endif
-!if "$(WITH_LZMA)" == "1"
-CFLAGS = $(CFLAGS) /D "HAVE_LZMA_H"
-!endif
 CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
 
 # The linker and its options.
@@ -75,7 +70,11 @@
 LIBS = $(LIBS) iconv.lib
 !endif 
 !if "$(WITH_ICU)" == "1"
-LIBS = $(LIBS) icu.lib
+!if "$(STATIC)" == "1"
+LIBS = $(LIBS) advapi32.lib sicuuc.lib sicuin.lib sicudt.lib
+!else
+LIBS = $(LIBS) icuuc.lib icuin.lib icudt.lib
+!endif
 !endif
 !if "$(WITH_ZLIB)" == "1"
 # could be named differently zdll or zlib
@@ -262,7 +261,10 @@
 	$(BINDIR)\testXPath.exe\
 	$(BINDIR)\runtest.exe\
 	$(BINDIR)\runsuite.exe\
+	$(BINDIR)\runxmlconf.exe\
 	$(BINDIR)\testapi.exe\
+	$(BINDIR)\testchar.exe\
+	$(BINDIR)\testdict.exe\
 	$(BINDIR)\testlimits.exe\
 	$(BINDIR)\testrecurse.exe
 	
@@ -373,11 +375,13 @@
 # Creates the export definition file (DEF) for libxml.
 $(XML_INTDIR)\$(XML_DEF) : $(XML_INTDIR) $(XML_DEF).src
 	$(CPP) $(CPPFLAGS) $(XML_DEF).src > $(XML_INTDIR)\$(XML_DEF)
+$(XML_INTDIR)\$(XML_RES) : $(XML_INTDIR) libxml2.rc
+	rc -Fo $(XML_INTDIR)\$(XML_RES) libxml2.rc
 
 # Creates the libxml shared object.
-$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF)
+$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF) $(XML_INTDIR)\$(XML_RES)
 	$(LD) $(LDFLAGS) /DLL \
-		/IMPLIB:$(BINDIR)\$(XML_IMP) /OUT:$(BINDIR)\$(XML_SO) $(XML_OBJS) $(LIBS)
+		/IMPLIB:$(BINDIR)\$(XML_IMP) /OUT:$(BINDIR)\$(XML_SO) $(XML_OBJS) $(XML_INTDIR)\$(XML_RES) $(LIBS)
 	@$(_VC_MANIFEST_EMBED_DLL)
 
 #$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF)
diff --git a/win32/VC10/config.h b/win32/VC10/config.h
index 8629944..c1e16f1 100644
--- a/win32/VC10/config.h
+++ b/win32/VC10/config.h
@@ -9,11 +9,9 @@
 
 #if defined(_WIN32_WCE)
 #undef HAVE_ERRNO_H
-#include <windows.h>
 #include "wincecompat.h"
 #else
 #define HAVE_SYS_STAT_H
-#define HAVE__STAT
 #define HAVE_STAT
 #define HAVE_STDLIB_H
 #define HAVE_TIME_H
@@ -28,10 +26,6 @@
 #define ICONV_CONST const
 #endif
 
-#ifdef NEED_SOCKETS
-#include <wsockcompat.h>
-#endif
-
 /*
  * Windows platforms may define except 
  */
@@ -96,7 +90,9 @@
 
 #if defined(_MSC_VER)
 #define mkdir(p,m) _mkdir(p)
+#if _MSC_VER < 1900 // Cannot define this in VS 2015 and above!
 #define snprintf _snprintf
+#endif
 #if _MSC_VER < 1500
 #define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
 #endif
diff --git a/win32/configure.js b/win32/configure.js
index 92b9ba0..dbf238c 100644
--- a/win32/configure.js
+++ b/win32/configure.js
@@ -280,6 +280,18 @@
 		vf.WriteLine("DYNRUNTIME=" + (dynruntime? "1" : "0"));
 	}
 	vf.Close();
+	versionFile = "rcVersion.h"
+	vf = fso.CreateTextFile(versionFile, true);
+	vf.WriteLine("/*");
+	vf.WriteLine("  " + versionFile);
+	vf.WriteLine("  This file is generated automatically by " + WScript.ScriptName + ".");
+	vf.WriteLine("*/");
+	vf.WriteBlankLines(1);
+	vf.WriteLine("#define LIBXML_MAJOR_VERSION " + verMajor);
+	vf.WriteLine("#define LIBXML_MINOR_VERSION " + verMinor);
+	vf.WriteLine("#define LIBXML_MICRO_VERSION " + verMicro);
+	vf.WriteLine("#define LIBXML_DOTTED_VERSION " + "\"" + verMajor + "." + verMinor + "." + verMicro + "\"");
+	vf.Close()
 }
 
 /* Configures libxml. This one will generate xmlversion.h from xmlversion.h.in
diff --git a/win32/libxml2.rc b/win32/libxml2.rc
new file mode 100644
index 0000000..c774a5e
--- /dev/null
+++ b/win32/libxml2.rc
@@ -0,0 +1,36 @@
+#include <winver.h>
+#include "rcVersion.h"
+
+VS_VERSION_INFO		VERSIONINFO
+  FILEVERSION		LIBXML_MAJOR_VERSION,LIBXML_MINOR_VERSION,LIBXML_MICRO_VERSION,0
+  PRODUCTVERSION	LIBXML_MAJOR_VERSION,LIBXML_MINOR_VERSION,LIBXML_MICRO_VERSION,0
+  FILEFLAGSMASK		VS_FFI_FILEFLAGSMASK
+#ifdef _DEBUG
+  FILEFLAGS		VS_FF_DEBUG
+#else
+  FILEFLAGS		0
+#endif
+  FILEOS		VOS__WINDOWS32
+  FILETYPE		VFT_DLL
+  FILESUBTYPE	VFT2_UNKNOWN	// not used
+BEGIN
+  BLOCK "StringFileInfo"
+  BEGIN
+    BLOCK "04090000"  /* Lang = US English, Charset = ASCII */
+    BEGIN
+      VALUE "FileDescription",	"libxml2 library\0"
+      VALUE "FileVersion",	LIBXML_DOTTED_VERSION "\0"
+      VALUE "InternalName",	"libxml2.dll\0"
+      VALUE "LegalCopyright",	"Copyright (C) Daniel Veillard\0"
+      VALUE "LegalTrademarks",	"\0"
+      VALUE "OriginalFilename",	"libxml2.dll\0"
+      VALUE "ProductName",	"libxml2\0"
+      VALUE "ProductVersion",	LIBXML_DOTTED_VERSION "\0"
+      VALUE "Comments",		"For more information visit http://xmlsoft.org/\0"
+    END
+  END
+  BLOCK "VarFileInfo"
+  BEGIN
+      VALUE "Translation", 0x0409, 0  /* US English, ASCII */
+  END
+END
diff --git a/xinclude.c b/xinclude.c
index e3bb43e..001e992 100644
--- a/xinclude.c
+++ b/xinclude.c
@@ -1261,8 +1261,10 @@
  * Inplements the merge of one entity
  */
 static void
-xmlXIncludeMergeEntity(xmlEntityPtr ent, xmlXIncludeMergeDataPtr data,
-	               xmlChar *name ATTRIBUTE_UNUSED) {
+xmlXIncludeMergeEntity(void *payload, void *vdata,
+	               const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlEntityPtr ent = (xmlEntityPtr) payload;
+    xmlXIncludeMergeDataPtr data = (xmlXIncludeMergeDataPtr) vdata;
     xmlEntityPtr ret, prev;
     xmlDocPtr doc;
     xmlXIncludeCtxtPtr ctxt;
@@ -1367,7 +1369,7 @@
 	data.doc = doc;
 
 	xmlHashScan((xmlHashTablePtr) source->entities,
-		    (xmlHashScanner) xmlXIncludeMergeEntity, &data);
+		    xmlXIncludeMergeEntity, &data);
     }
     source = from->extSubset;
     if ((source != NULL) && (source->entities != NULL)) {
@@ -1382,7 +1384,7 @@
 	if ((!xmlStrEqual(target->ExternalID, source->ExternalID)) &&
 	    (!xmlStrEqual(target->SystemID, source->SystemID))) {
 	    xmlHashScan((xmlHashTablePtr) source->entities,
-			(xmlHashScanner) xmlXIncludeMergeEntity, &data);
+			xmlXIncludeMergeEntity, &data);
 	}
     }
     return(0);
diff --git a/xlink.c b/xlink.c
index c0e4ff3..ecf9f96 100644
--- a/xlink.c
+++ b/xlink.c
@@ -28,7 +28,7 @@
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 #include <zlib.h>
 #endif
 
diff --git a/xmlIO.c b/xmlIO.c
index 1a79c09..8254347 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -12,6 +12,7 @@
 #include "libxml.h"
 
 #include <string.h>
+#include <stddef.h>
 #ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
@@ -32,14 +33,15 @@
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 #include <zlib.h>
 #endif
-#ifdef HAVE_LZMA_H
+#ifdef LIBXML_LZMA_ENABLED
 #include <lzma.h>
 #endif
 
-#if defined(WIN32) || defined(_WIN32)
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 #endif
 
@@ -47,38 +49,14 @@
 #include <winnls.h> /* for CP_UTF8 */
 #endif
 
-/* Figure a portable way to know if a file is a directory. */
-#ifndef HAVE_STAT
-#  ifdef HAVE__STAT
-     /* MS C library seems to define stat and _stat. The definition
-        is identical. Still, mapping them to each other causes a warning. */
-#    ifndef _MSC_VER
-#      define stat(x,y) _stat(x,y)
-#    endif
-#    define HAVE_STAT
-#  endif
-#else
-#  ifdef HAVE__STAT
-#    if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
-#      define stat _stat
-#    endif
-#  endif
-#endif
-#ifdef HAVE_STAT
-#  ifndef S_ISDIR
-#    ifdef _S_ISDIR
-#      define S_ISDIR(x) _S_ISDIR(x)
-#    else
-#      ifdef S_IFDIR
-#        ifndef S_IFMT
-#          ifdef _S_IFMT
-#            define S_IFMT _S_IFMT
-#          endif
-#        endif
-#        ifdef S_IFMT
-#          define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
-#        endif
-#      endif
+#ifndef S_ISDIR
+#  ifdef _S_ISDIR
+#    define S_ISDIR(x) _S_ISDIR(x)
+#  elif defined(S_IFDIR)
+#    ifdef S_IFMT
+#      define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+#    elif defined(_S_IFMT)
+#      define S_ISDIR(m) (((m) & _S_IFMT) == S_IFDIR)
 #    endif
 #  endif
 #endif
@@ -619,7 +597,7 @@
     return fd;
 }
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 static gzFile
 xmlWrapGzOpenUtf8(const char *path, const char *mode)
 {
@@ -656,99 +634,19 @@
  *
  */
 static int
-xmlWrapStatUtf8(const char *path,struct stat *info)
-{
-#ifdef HAVE_STAT
+xmlWrapStatUtf8(const char *path, struct _stat *info) {
     int retval = -1;
     wchar_t *wPath;
 
     wPath = __xmlIOWin32UTF8ToWChar(path);
-    if (wPath)
-    {
-       retval = _wstat(wPath,info);
+    if (wPath) {
+       retval = _wstat(wPath, info);
        xmlFree(wPath);
     }
     /* maybe path in native encoding */
     if(retval < 0)
-       retval = stat(path,info);
+       retval = _stat(path, info);
     return retval;
-#else
-    return -1;
-#endif
-}
-
-/**
- *  xmlWrapOpenNative:
- * @path:  the path
- * @mode:  type of access (0 - read, 1 - write)
- *
- * function opens the file specified by @path
- *
- */
-static FILE*
-xmlWrapOpenNative(const char *path,int mode)
-{
-    return fopen(path,mode ? "wb" : "rb");
-}
-
-/**
- *  xmlWrapStatNative:
- * @path:  the path
- * @info:  structure that stores results
- *
- * function obtains information about the file or directory
- *
- */
-static int
-xmlWrapStatNative(const char *path,struct stat *info)
-{
-#ifdef HAVE_STAT
-    return stat(path,info);
-#else
-    return -1;
-#endif
-}
-
-typedef int (* xmlWrapStatFunc) (const char *f, struct stat *s);
-static xmlWrapStatFunc xmlWrapStat = xmlWrapStatNative;
-typedef FILE* (* xmlWrapOpenFunc)(const char *f,int mode);
-static xmlWrapOpenFunc xmlWrapOpen = xmlWrapOpenNative;
-#ifdef HAVE_ZLIB_H
-typedef gzFile (* xmlWrapGzOpenFunc) (const char *f, const char *mode);
-static xmlWrapGzOpenFunc xmlWrapGzOpen = gzopen;
-#endif
-/**
- * xmlInitPlatformSpecificIo:
- *
- * Initialize platform specific features.
- */
-static void
-xmlInitPlatformSpecificIo(void)
-{
-    static int xmlPlatformIoInitialized = 0;
-    OSVERSIONINFO osvi;
-
-    if(xmlPlatformIoInitialized)
-      return;
-
-    osvi.dwOSVersionInfoSize = sizeof(osvi);
-
-    if(GetVersionEx(&osvi) && (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)) {
-      xmlWrapStat = xmlWrapStatUtf8;
-      xmlWrapOpen = xmlWrapOpenUtf8;
-#ifdef HAVE_ZLIB_H
-      xmlWrapGzOpen = xmlWrapGzOpenUtf8;
-#endif
-    } else {
-      xmlWrapStat = xmlWrapStatNative;
-      xmlWrapOpen = xmlWrapOpenNative;
-#ifdef HAVE_ZLIB_H
-      xmlWrapGzOpen = gzopen;
-#endif
-    }
-
-    xmlPlatformIoInitialized = 1;
-    return;
 }
 
 #endif
@@ -771,8 +669,12 @@
 xmlCheckFilename (const char *path)
 {
 #ifdef HAVE_STAT
+#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
+    struct _stat stat_buffer;
+#else
     struct stat stat_buffer;
 #endif
+#endif
     if (path == NULL)
 	return(0);
 
@@ -786,7 +688,7 @@
 	(path[3] == '\\') )
 	    return 1;
 
-    if (xmlWrapStat(path, &stat_buffer) == -1)
+    if (xmlWrapStatUtf8(path, &stat_buffer) == -1)
         return 0;
 #else
     if (stat(path, &stat_buffer) == -1)
@@ -801,14 +703,16 @@
 }
 
 /**
- * xmlNop:
+ * xmlInputReadCallbackNop:
  *
- * No Operation function, does nothing, no input
+ * No Operation xmlInputReadCallback function, does nothing.
  *
  * Returns zero
  */
 int
-xmlNop(void) {
+xmlInputReadCallbackNop(void *context ATTRIBUTE_UNUSED,
+                        char *buffer ATTRIBUTE_UNUSED,
+                        int len ATTRIBUTE_UNUSED) {
     return(0);
 }
 
@@ -826,7 +730,7 @@
 xmlFdRead (void * context, char * buffer, int len) {
     int ret;
 
-    ret = read((int) (long) context, &buffer[0], len);
+    ret = read((int) (ptrdiff_t) context, &buffer[0], len);
     if (ret < 0) xmlIOErr(0, "read()");
     return(ret);
 }
@@ -847,7 +751,7 @@
     int ret = 0;
 
     if (len > 0) {
-	ret = write((int) (long) context, &buffer[0], len);
+	ret = write((int) (ptrdiff_t) context, &buffer[0], len);
 	if (ret < 0) xmlIOErr(0, "write()");
     }
     return(ret);
@@ -865,7 +769,7 @@
 static int
 xmlFdClose (void * context) {
     int ret;
-    ret = close((int) (long) context);
+    ret = close((int) (ptrdiff_t) context);
     if (ret < 0) xmlIOErr(0, "close()");
     return(ret);
 }
@@ -926,11 +830,14 @@
 #endif
     }
 
+    /* Do not check DDNAME on zOS ! */
+#if !defined(__MVS__)
     if (!xmlCheckFilename(path))
         return(NULL);
+#endif
 
 #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
-    fd = xmlWrapOpen(path, 0);
+    fd = xmlWrapOpenUtf8(path, 0);
 #else
     fd = fopen(path, "r");
 #endif /* WIN32 */
@@ -1003,12 +910,14 @@
 	return(NULL);
 
 #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
-    fd = xmlWrapOpen(path, 1);
+    fd = xmlWrapOpenUtf8(path, 1);
+#elif(__MVS__)
+    fd = fopen(path, "w");
 #else
-	   fd = fopen(path, "wb");
+    fd = fopen(path, "wb");
 #endif /* WIN32 */
 
-	 if (fd == NULL) xmlIOErr(0, path);
+    if (fd == NULL) xmlIOErr(0, path);
     return((void *) fd);
 }
 #endif /* LIBXML_OUTPUT_ENABLED */
@@ -1129,7 +1038,7 @@
 }
 #endif
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 /************************************************************************
  *									*
  *		I/O for compressed file accesses			*
@@ -1193,7 +1102,7 @@
         return(NULL);
 
 #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
-    fd = xmlWrapGzOpen(path, "rb");
+    fd = xmlWrapGzOpenUtf8(path, "rb");
 #else
     fd = gzopen(path, "rb");
 #endif
@@ -1270,7 +1179,7 @@
 	return(NULL);
 
 #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
-    fd = xmlWrapGzOpen(path, mode);
+    fd = xmlWrapGzOpenUtf8(path, mode);
 #else
     fd = gzopen(path, mode);
 #endif
@@ -1286,7 +1195,7 @@
  *
  * Read @len bytes to @buffer from the compressed I/O channel.
  *
- * Returns the number of bytes written
+ * Returns the number of bytes read.
  */
 static int
 xmlGzfileRead (void * context, char * buffer, int len) {
@@ -1332,7 +1241,7 @@
     if (ret < 0) xmlIOErr(0, "gzclose()");
     return(ret);
 }
-#endif /* HAVE_ZLIB_H */
+#endif /* LIBXML_ZLIB_ENABLED */
 
 #ifdef LIBXML_LZMA_ENABLED
 /************************************************************************
@@ -1471,7 +1380,7 @@
 
 } xmlIOHTTPWriteCtxt, *xmlIOHTTPWriteCtxtPtr;
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 
 #define DFLT_WBITS		( -15 )
 #define DFLT_MEM_LVL		( 8 )
@@ -1674,7 +1583,7 @@
 	xmlStrPrintf(msg, 500,
 		    "xmlZMemBuffExtend:  %s %lu bytes.\n",
 		    "Allocation failure extending output buffer to",
-		    new_size );
+		    (unsigned long) new_size );
 	xmlIOErr(XML_IO_WRITE, (const char *) msg);
     }
 
@@ -1799,7 +1708,7 @@
     return ( zlgth );
 }
 #endif /* LIBXML_OUTPUT_ENABLED */
-#endif  /*  HAVE_ZLIB_H  */
+#endif  /*  LIBXML_ZLIB_ENABLED  */
 
 #ifdef LIBXML_OUTPUT_ENABLED
 /**
@@ -1818,7 +1727,7 @@
 
     if ( ctxt->doc_buff != NULL ) {
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 	if ( ctxt->compression > 0 ) {
 	    xmlFreeZMemBuff( ctxt->doc_buff );
 	}
@@ -1876,7 +1785,7 @@
  */
 
 void *
-xmlIOHTTPOpenW(const char *post_uri, int compression)
+xmlIOHTTPOpenW(const char *post_uri, int compression ATTRIBUTE_UNUSED)
 {
 
     xmlIOHTTPWriteCtxtPtr ctxt = NULL;
@@ -1905,7 +1814,7 @@
      * **  is being used to avoid pushing the data to disk and back.
      */
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     if ((compression > 0) && (compression <= 9)) {
 
         ctxt->compression = compression;
@@ -1985,7 +1894,7 @@
 
 	/*  Use gzwrite or fwrite as previously setup in the open call  */
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 	if ( ctxt->compression > 0 )
 	    len = xmlZMemBuffAppend( ctxt->doc_buff, buffer, len );
 
@@ -2049,7 +1958,7 @@
 
     /*  Retrieve the content from the appropriate buffer  */
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 
     if ( ctxt->compression > 0 ) {
 	content_lgth = xmlZMemBuffGetContent( ctxt->doc_buff, &http_content );
@@ -2318,16 +2227,12 @@
     if (xmlInputCallbackInitialized)
 	return;
 
-#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
-    xmlInitPlatformSpecificIo();
-#endif
-
     xmlRegisterInputCallbacks(xmlFileMatch, xmlFileOpen,
 	                      xmlFileRead, xmlFileClose);
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     xmlRegisterInputCallbacks(xmlGzfileMatch, xmlGzfileOpen,
 	                      xmlGzfileRead, xmlGzfileClose);
-#endif /* HAVE_ZLIB_H */
+#endif /* LIBXML_ZLIB_ENABLED */
 #ifdef LIBXML_LZMA_ENABLED
     xmlRegisterInputCallbacks(xmlXzfileMatch, xmlXzfileOpen,
 	                      xmlXzfileRead, xmlXzfileClose);
@@ -2356,10 +2261,6 @@
     if (xmlOutputCallbackInitialized)
 	return;
 
-#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
-    xmlInitPlatformSpecificIo();
-#endif
-
     xmlRegisterOutputCallbacks(xmlFileMatch, xmlFileOpenW,
 	                      xmlFileWrite, xmlFileClose);
 
@@ -2373,7 +2274,7 @@
  uncompressed ones except opening if existing then closing
  and saving with same compression ratio ... a pain.
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     xmlRegisterOutputCallbacks(xmlGzfileMatch, xmlGzfileOpen,
 	                       xmlGzfileWrite, xmlGzfileClose);
 #endif
@@ -2663,7 +2564,7 @@
 	ret->context = context;
 	ret->readcallback = xmlInputCallbackTable[i].readcallback;
 	ret->closecallback = xmlInputCallbackTable[i].closecallback;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 	if ((xmlInputCallbackTable[i].opencallback == xmlGzfileOpen) &&
 		(strcmp(URI, "-") != 0)) {
 #if defined(ZLIB_VERNUM) && ZLIB_VERNUM >= 0x1230
@@ -2727,7 +2628,7 @@
     int i = 0;
     void *context = NULL;
     char *unescaped = NULL;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     int is_file_uri = 1;
 #endif
 
@@ -2738,7 +2639,7 @@
 
     puri = xmlParseURI(URI);
     if (puri != NULL) {
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
         if ((puri->scheme != NULL) &&
 	    (!xmlStrEqual(BAD_CAST puri->scheme, BAD_CAST "file")))
 	    is_file_uri = 0;
@@ -2758,7 +2659,7 @@
      * try with an unescaped version of the URI
      */
     if (unescaped != NULL) {
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 	if ((compression > 0) && (compression <= 9) && (is_file_uri == 1)) {
 	    context = xmlGzfileOpenW(unescaped, compression);
 	    if (context != NULL) {
@@ -2776,7 +2677,7 @@
 	for (i = xmlOutputCallbackNr - 1;i >= 0;i--) {
 	    if ((xmlOutputCallbackTable[i].matchcallback != NULL) &&
 		(xmlOutputCallbackTable[i].matchcallback(unescaped) != 0)) {
-#if defined(LIBXML_HTTP_ENABLED) && defined(HAVE_ZLIB_H)
+#if defined(LIBXML_HTTP_ENABLED) && defined(LIBXML_ZLIB_ENABLED)
 		/*  Need to pass compression parameter into HTTP open calls  */
 		if (xmlOutputCallbackTable[i].matchcallback == xmlIOHTTPMatch)
 		    context = xmlIOHTTPOpenW(unescaped, compression);
@@ -2795,7 +2696,7 @@
      * filename
      */
     if (context == NULL) {
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 	if ((compression > 0) && (compression <= 9) && (is_file_uri == 1)) {
 	    context = xmlGzfileOpenW(URI, compression);
 	    if (context != NULL) {
@@ -2812,7 +2713,7 @@
 	for (i = xmlOutputCallbackNr - 1;i >= 0;i--) {
 	    if ((xmlOutputCallbackTable[i].matchcallback != NULL) &&
 		(xmlOutputCallbackTable[i].matchcallback(URI) != 0)) {
-#if defined(LIBXML_HTTP_ENABLED) && defined(HAVE_ZLIB_H)
+#if defined(LIBXML_HTTP_ENABLED) && defined(LIBXML_ZLIB_ENABLED)
 		/*  Need to pass compression parameter into HTTP open calls  */
 		if (xmlOutputCallbackTable[i].matchcallback == xmlIOHTTPMatch)
 		    context = xmlIOHTTPOpenW(URI, compression);
@@ -2942,10 +2843,8 @@
 
     if (buffer == NULL) return(NULL);
 
-    ret = xmlOutputBufferCreateIO((xmlOutputWriteCallback)
-                                  xmlBufferWrite,
-                                  (xmlOutputCloseCallback)
-                                  NULL, (void *) buffer, encoder);
+    ret = xmlOutputBufferCreateIO(xmlBufferWrite, NULL, (void *) buffer,
+                                  encoder);
 
     return(ret);
 }
@@ -3003,7 +2902,7 @@
 
     ret = xmlAllocParserInputBuffer(enc);
     if (ret != NULL) {
-        ret->context = (void *) (long) fd;
+        ret->context = (void *) (ptrdiff_t) fd;
 	ret->readcallback = xmlFdRead;
 	ret->closecallback = xmlFdClose;
     }
@@ -3027,13 +2926,13 @@
     xmlParserInputBufferPtr ret;
     int errcode;
 
-    if (size <= 0) return(NULL);
+    if (size < 0) return(NULL);
     if (mem == NULL) return(NULL);
 
     ret = xmlAllocParserInputBuffer(enc);
     if (ret != NULL) {
         ret->context = (void *) mem;
-	ret->readcallback = (xmlInputReadCallback) xmlNop;
+	ret->readcallback = xmlInputReadCallbackNop;
 	ret->closecallback = NULL;
 	errcode = xmlBufAdd(ret->buffer, (const xmlChar *) mem, size);
 	if (errcode != 0) {
@@ -3063,7 +2962,7 @@
                                  xmlCharEncoding enc) {
     xmlParserInputBufferPtr ret;
 
-    if (size <= 0) return(NULL);
+    if (size < 0) return(NULL);
     if (mem == NULL) return(NULL);
 
     ret = (xmlParserInputBufferPtr) xmlMalloc(sizeof(xmlParserInputBuffer));
@@ -3109,7 +3008,7 @@
 
     ret = xmlAllocOutputBufferInternal(encoder);
     if (ret != NULL) {
-        ret->context = (void *) (long) fd;
+        ret->context = (void *) (ptrdiff_t) fd;
 	ret->writecallback = xmlFdWrite;
 	ret->closecallback = NULL;
     }
@@ -3258,7 +3157,7 @@
 	 * convert as much as possible to the parser reading buffer.
 	 */
 	use = xmlBufUse(in->raw);
-	nbchars = xmlCharEncInput(in, 1);
+	nbchars = xmlCharEncInput(in, 0);
 	if (nbchars < 0) {
 	    xmlIOErr(XML_IO_ENCODER, NULL);
 	    in->error = XML_IO_ENCODER;
@@ -3374,7 +3273,7 @@
 	 * convert as much as possible to the parser reading buffer.
 	 */
 	use = xmlBufUse(in->raw);
-	nbchars = xmlCharEncInput(in, 1);
+	nbchars = xmlCharEncInput(in, 0);
 	if (nbchars < 0) {
 	    xmlIOErr(XML_IO_ENCODER, NULL);
 	    in->error = XML_IO_ENCODER;
@@ -3823,7 +3722,7 @@
 
     if (filename == NULL) return(NULL);
 
-#if defined(WIN32) && !defined(__CYGWIN__)
+#if defined(_WIN32) && !defined(__CYGWIN__)
 #   define IS_XMLPGD_SEP(ch) ((ch=='/')||(ch=='\\'))
 #else
 #   define IS_XMLPGD_SEP(ch) (ch=='/')
diff --git a/xmlcatalog.c b/xmlcatalog.c
index 006f0cc..c02b97f 100644
--- a/xmlcatalog.c
+++ b/xmlcatalog.c
@@ -312,7 +312,8 @@
     /* split into 2 printf's to avoid overly long string (gcc warning) */
     printf("\
 Usage : %s [options] catalogfile entities...\n\
-\tParse the catalog file and query it for the entities\n\
+\tParse the catalog file (void specification possibly expressed as \"\"\n\
+\tappoints the default system one) and query it for the entities\n\
 \t--sgml : handle SGML Super catalogs for --add and --del\n\
 \t--shell : run a shell allowing interactive queries\n\
 \t--create : create a new catalog\n\
@@ -408,11 +409,18 @@
 	    continue;
 	} else if (argv[i][0] == '-')
 	    continue;
-	filename = argv[i];
+
+	if (filename == NULL && argv[i][0] == '\0') {
+	    /* Interpret empty-string catalog specification as
+	       a shortcut for a default system catalog. */
+	    xmlInitializeCatalog();
+	} else {
+	    filename = argv[i];
 	    ret = xmlLoadCatalog(argv[i]);
 	    if ((ret < 0) && (create)) {
 		xmlCatalogAdd(BAD_CAST "catalog", BAD_CAST argv[i], NULL);
 	    }
+	}
 	break;
     }
 
diff --git a/xmllint.c b/xmllint.c
index 67f7adb..6512540 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -12,14 +12,6 @@
 #include <stdarg.h>
 #include <assert.h>
 
-#if defined (_WIN32) && !defined(__CYGWIN__)
-#if defined (_MSC_VER) || defined(__BORLANDC__)
-#include <winsock2.h>
-#pragma comment(lib, "ws2_32.lib")
-#define gettimeofday(p1,p2)
-#endif /* _MSC_VER */
-#endif /* _WIN32 */
-
 #ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
 #endif
@@ -27,14 +19,6 @@
 #include <time.h>
 #endif
 
-#ifdef __MINGW32__
-#define _WINSOCKAPI_
-#include <wsockcompat.h>
-#include <winsock2.h>
-#undef XML_SOCKLEN_T
-#define XML_SOCKLEN_T unsigned int
-#endif
-
 #ifdef HAVE_SYS_TIMEB_H
 #include <sys/timeb.h>
 #endif
@@ -830,13 +814,14 @@
  *									*
  ************************************************************************/
 
-static int myRead(FILE *f, char * buf, int len) {
-    return(fread(buf, 1, len, f));
+static int myRead(void *f, char *buf, int len) {
+    return(fread(buf, 1, len, (FILE *) f));
 }
-static void myClose(FILE *f) {
-  if (f != stdin) {
-    fclose(f);
-  }
+static int myClose(void *context) {
+    FILE *f = (FILE *) context;
+    if (f == stdin)
+        return(0);
+    return(fclose(f));
 }
 
 /************************************************************************
@@ -2319,14 +2304,11 @@
 #endif
 		if (f != NULL) {
 		    if (rectxt == NULL)
-			doc = xmlReadIO((xmlInputReadCallback) myRead,
-					(xmlInputCloseCallback) myClose, f,
-					filename, NULL, options);
+			doc = xmlReadIO(myRead, myClose, f, filename, NULL,
+                                        options);
 		    else
-			doc = xmlCtxtReadIO(rectxt,
-			                (xmlInputReadCallback) myRead,
-					(xmlInputCloseCallback) myClose, f,
-					filename, NULL, options);
+			doc = xmlCtxtReadIO(rectxt, myRead, myClose, f,
+					    filename, NULL, options);
 		} else
 		    doc = NULL;
 	    }
@@ -2991,124 +2973,124 @@
     fprintf(stderr, "\n");
 }
 
-static void usage(const char *name) {
-    printf("Usage : %s [options] XMLfiles ...\n", name);
+static void usage(FILE *f, const char *name) {
+    fprintf(f, "Usage : %s [options] XMLfiles ...\n", name);
 #ifdef LIBXML_OUTPUT_ENABLED
-    printf("\tParse the XML files and output the result of the parsing\n");
+    fprintf(f, "\tParse the XML files and output the result of the parsing\n");
 #else
-    printf("\tParse the XML files\n");
+    fprintf(f, "\tParse the XML files\n");
 #endif /* LIBXML_OUTPUT_ENABLED */
-    printf("\t--version : display the version of the XML library used\n");
+    fprintf(f, "\t--version : display the version of the XML library used\n");
 #ifdef LIBXML_DEBUG_ENABLED
-    printf("\t--debug : dump a debug tree of the in-memory document\n");
-    printf("\t--shell : run a navigating shell\n");
-    printf("\t--debugent : debug the entities defined in the document\n");
+    fprintf(f, "\t--debug : dump a debug tree of the in-memory document\n");
+    fprintf(f, "\t--shell : run a navigating shell\n");
+    fprintf(f, "\t--debugent : debug the entities defined in the document\n");
 #else
 #ifdef LIBXML_READER_ENABLED
-    printf("\t--debug : dump the nodes content when using --stream\n");
+    fprintf(f, "\t--debug : dump the nodes content when using --stream\n");
 #endif /* LIBXML_READER_ENABLED */
 #endif
 #ifdef LIBXML_TREE_ENABLED
-    printf("\t--copy : used to test the internal copy implementation\n");
+    fprintf(f, "\t--copy : used to test the internal copy implementation\n");
 #endif /* LIBXML_TREE_ENABLED */
-    printf("\t--recover : output what was parsable on broken XML documents\n");
-    printf("\t--huge : remove any internal arbitrary parser limits\n");
-    printf("\t--noent : substitute entity references by their value\n");
-    printf("\t--noenc : ignore any encoding specified inside the document\n");
-    printf("\t--noout : don't output the result tree\n");
-    printf("\t--path 'paths': provide a set of paths for resources\n");
-    printf("\t--load-trace : print trace of all external entities loaded\n");
-    printf("\t--nonet : refuse to fetch DTDs or entities over network\n");
-    printf("\t--nocompact : do not generate compact text nodes\n");
-    printf("\t--htmlout : output results as HTML\n");
-    printf("\t--nowrap : do not put HTML doc wrapper\n");
+    fprintf(f, "\t--recover : output what was parsable on broken XML documents\n");
+    fprintf(f, "\t--huge : remove any internal arbitrary parser limits\n");
+    fprintf(f, "\t--noent : substitute entity references by their value\n");
+    fprintf(f, "\t--noenc : ignore any encoding specified inside the document\n");
+    fprintf(f, "\t--noout : don't output the result tree\n");
+    fprintf(f, "\t--path 'paths': provide a set of paths for resources\n");
+    fprintf(f, "\t--load-trace : print trace of all external entities loaded\n");
+    fprintf(f, "\t--nonet : refuse to fetch DTDs or entities over network\n");
+    fprintf(f, "\t--nocompact : do not generate compact text nodes\n");
+    fprintf(f, "\t--htmlout : output results as HTML\n");
+    fprintf(f, "\t--nowrap : do not put HTML doc wrapper\n");
 #ifdef LIBXML_VALID_ENABLED
-    printf("\t--valid : validate the document in addition to std well-formed check\n");
-    printf("\t--postvalid : do a posteriori validation, i.e after parsing\n");
-    printf("\t--dtdvalid URL : do a posteriori validation against a given DTD\n");
-    printf("\t--dtdvalidfpi FPI : same but name the DTD with a Public Identifier\n");
+    fprintf(f, "\t--valid : validate the document in addition to std well-formed check\n");
+    fprintf(f, "\t--postvalid : do a posteriori validation, i.e after parsing\n");
+    fprintf(f, "\t--dtdvalid URL : do a posteriori validation against a given DTD\n");
+    fprintf(f, "\t--dtdvalidfpi FPI : same but name the DTD with a Public Identifier\n");
 #endif /* LIBXML_VALID_ENABLED */
-    printf("\t--timing : print some timings\n");
-    printf("\t--output file or -o file: save to a given file\n");
-    printf("\t--repeat : repeat 100 times, for timing or profiling\n");
-    printf("\t--insert : ad-hoc test for valid insertions\n");
+    fprintf(f, "\t--timing : print some timings\n");
+    fprintf(f, "\t--output file or -o file: save to a given file\n");
+    fprintf(f, "\t--repeat : repeat 100 times, for timing or profiling\n");
+    fprintf(f, "\t--insert : ad-hoc test for valid insertions\n");
 #ifdef LIBXML_OUTPUT_ENABLED
-#ifdef HAVE_ZLIB_H
-    printf("\t--compress : turn on gzip compression of output\n");
+#ifdef LIBXML_ZLIB_ENABLED
+    fprintf(f, "\t--compress : turn on gzip compression of output\n");
 #endif
 #endif /* LIBXML_OUTPUT_ENABLED */
 #ifdef LIBXML_HTML_ENABLED
-    printf("\t--html : use the HTML parser\n");
-    printf("\t--xmlout : force to use the XML serializer when using --html\n");
-    printf("\t--nodefdtd : do not default HTML doctype\n");
+    fprintf(f, "\t--html : use the HTML parser\n");
+    fprintf(f, "\t--xmlout : force to use the XML serializer when using --html\n");
+    fprintf(f, "\t--nodefdtd : do not default HTML doctype\n");
 #endif
 #ifdef LIBXML_PUSH_ENABLED
-    printf("\t--push : use the push mode of the parser\n");
-    printf("\t--pushsmall : use the push mode of the parser using tiny increments\n");
+    fprintf(f, "\t--push : use the push mode of the parser\n");
+    fprintf(f, "\t--pushsmall : use the push mode of the parser using tiny increments\n");
 #endif /* LIBXML_PUSH_ENABLED */
 #ifdef HAVE_MMAP
-    printf("\t--memory : parse from memory\n");
+    fprintf(f, "\t--memory : parse from memory\n");
 #endif
-    printf("\t--maxmem nbbytes : limits memory allocation to nbbytes bytes\n");
-    printf("\t--nowarning : do not emit warnings from parser/validator\n");
-    printf("\t--noblanks : drop (ignorable?) blanks spaces\n");
-    printf("\t--nocdata : replace cdata section with text nodes\n");
+    fprintf(f, "\t--maxmem nbbytes : limits memory allocation to nbbytes bytes\n");
+    fprintf(f, "\t--nowarning : do not emit warnings from parser/validator\n");
+    fprintf(f, "\t--noblanks : drop (ignorable?) blanks spaces\n");
+    fprintf(f, "\t--nocdata : replace cdata section with text nodes\n");
 #ifdef LIBXML_OUTPUT_ENABLED
-    printf("\t--format : reformat/reindent the output\n");
-    printf("\t--encode encoding : output in the given encoding\n");
-    printf("\t--dropdtd : remove the DOCTYPE of the input docs\n");
-    printf("\t--pretty STYLE : pretty-print in a particular style\n");
-    printf("\t                 0 Do not pretty print\n");
-    printf("\t                 1 Format the XML content, as --format\n");
-    printf("\t                 2 Add whitespace inside tags, preserving content\n");
+    fprintf(f, "\t--format : reformat/reindent the output\n");
+    fprintf(f, "\t--encode encoding : output in the given encoding\n");
+    fprintf(f, "\t--dropdtd : remove the DOCTYPE of the input docs\n");
+    fprintf(f, "\t--pretty STYLE : pretty-print in a particular style\n");
+    fprintf(f, "\t                 0 Do not pretty print\n");
+    fprintf(f, "\t                 1 Format the XML content, as --format\n");
+    fprintf(f, "\t                 2 Add whitespace inside tags, preserving content\n");
 #endif /* LIBXML_OUTPUT_ENABLED */
-    printf("\t--c14n : save in W3C canonical format v1.0 (with comments)\n");
-    printf("\t--c14n11 : save in W3C canonical format v1.1 (with comments)\n");
-    printf("\t--exc-c14n : save in W3C exclusive canonical format (with comments)\n");
+    fprintf(f, "\t--c14n : save in W3C canonical format v1.0 (with comments)\n");
+    fprintf(f, "\t--c14n11 : save in W3C canonical format v1.1 (with comments)\n");
+    fprintf(f, "\t--exc-c14n : save in W3C exclusive canonical format (with comments)\n");
 #ifdef LIBXML_C14N_ENABLED
 #endif /* LIBXML_C14N_ENABLED */
-    printf("\t--nsclean : remove redundant namespace declarations\n");
-    printf("\t--testIO : test user I/O support\n");
+    fprintf(f, "\t--nsclean : remove redundant namespace declarations\n");
+    fprintf(f, "\t--testIO : test user I/O support\n");
 #ifdef LIBXML_CATALOG_ENABLED
-    printf("\t--catalogs : use SGML catalogs from $SGML_CATALOG_FILES\n");
-    printf("\t             otherwise XML Catalogs starting from \n");
-    printf("\t         %s are activated by default\n", XML_XML_DEFAULT_CATALOG);
-    printf("\t--nocatalogs: deactivate all catalogs\n");
+    fprintf(f, "\t--catalogs : use SGML catalogs from $SGML_CATALOG_FILES\n");
+    fprintf(f, "\t             otherwise XML Catalogs starting from \n");
+    fprintf(f, "\t         %s are activated by default\n", XML_XML_DEFAULT_CATALOG);
+    fprintf(f, "\t--nocatalogs: deactivate all catalogs\n");
 #endif
-    printf("\t--auto : generate a small doc on the fly\n");
+    fprintf(f, "\t--auto : generate a small doc on the fly\n");
 #ifdef LIBXML_XINCLUDE_ENABLED
-    printf("\t--xinclude : do XInclude processing\n");
-    printf("\t--noxincludenode : same but do not generate XInclude nodes\n");
-    printf("\t--nofixup-base-uris : do not fixup xml:base uris\n");
+    fprintf(f, "\t--xinclude : do XInclude processing\n");
+    fprintf(f, "\t--noxincludenode : same but do not generate XInclude nodes\n");
+    fprintf(f, "\t--nofixup-base-uris : do not fixup xml:base uris\n");
 #endif
-    printf("\t--loaddtd : fetch external DTD\n");
-    printf("\t--dtdattr : loaddtd + populate the tree with inherited attributes \n");
+    fprintf(f, "\t--loaddtd : fetch external DTD\n");
+    fprintf(f, "\t--dtdattr : loaddtd + populate the tree with inherited attributes \n");
 #ifdef LIBXML_READER_ENABLED
-    printf("\t--stream : use the streaming interface to process very large files\n");
-    printf("\t--walker : create a reader and walk though the resulting doc\n");
+    fprintf(f, "\t--stream : use the streaming interface to process very large files\n");
+    fprintf(f, "\t--walker : create a reader and walk though the resulting doc\n");
 #endif /* LIBXML_READER_ENABLED */
 #ifdef LIBXML_PATTERN_ENABLED
-    printf("\t--pattern pattern_value : test the pattern support\n");
+    fprintf(f, "\t--pattern pattern_value : test the pattern support\n");
 #endif
-    printf("\t--chkregister : verify the node registration code\n");
+    fprintf(f, "\t--chkregister : verify the node registration code\n");
 #ifdef LIBXML_SCHEMAS_ENABLED
-    printf("\t--relaxng schema : do RelaxNG validation against the schema\n");
-    printf("\t--schema schema : do validation against the WXS schema\n");
+    fprintf(f, "\t--relaxng schema : do RelaxNG validation against the schema\n");
+    fprintf(f, "\t--schema schema : do validation against the WXS schema\n");
 #endif
 #ifdef LIBXML_SCHEMATRON_ENABLED
-    printf("\t--schematron schema : do validation against a schematron\n");
+    fprintf(f, "\t--schematron schema : do validation against a schematron\n");
 #endif
 #ifdef LIBXML_SAX1_ENABLED
-    printf("\t--sax1: use the old SAX1 interfaces for processing\n");
+    fprintf(f, "\t--sax1: use the old SAX1 interfaces for processing\n");
 #endif
-    printf("\t--sax: do not build a tree but work just at the SAX level\n");
-    printf("\t--oldxml10: use XML-1.0 parsing rules before the 5th edition\n");
+    fprintf(f, "\t--sax: do not build a tree but work just at the SAX level\n");
+    fprintf(f, "\t--oldxml10: use XML-1.0 parsing rules before the 5th edition\n");
 #ifdef LIBXML_XPATH_ENABLED
-    printf("\t--xpath expr: evaluate the XPath expression, imply --noout\n");
+    fprintf(f, "\t--xpath expr: evaluate the XPath expression, imply --noout\n");
 #endif
 
-    printf("\nLibxml project home page: http://xmlsoft.org/\n");
-    printf("To report bugs or get some help check: http://xmlsoft.org/bugs.html\n");
+    fprintf(f, "\nLibxml project home page: http://xmlsoft.org/\n");
+    fprintf(f, "To report bugs or get some help check: http://xmlsoft.org/bugs.html\n");
 }
 
 static void registerNode(xmlNodePtr node)
@@ -3138,7 +3120,7 @@
     const char* indent;
 
     if (argc <= 1) {
-	usage(argv[0]);
+	usage(stderr, argv[0]);
 	return(1);
     }
     LIBXML_TEST_VERSION
@@ -3313,7 +3295,7 @@
 	}
 #endif
 #ifdef LIBXML_OUTPUT_ENABLED
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 	else if ((!strcmp(argv[i], "-compress")) ||
 	         (!strcmp(argv[i], "--compress"))) {
 	    compress++;
@@ -3490,7 +3472,7 @@
 	    options |= XML_PARSE_OLD10;
 	} else {
 	    fprintf(stderr, "Unknown option %s\n", argv[i]);
-	    usage(argv[0]);
+	    usage(stderr, argv[0]);
 	    return(1);
 	}
     }
@@ -3784,7 +3766,7 @@
 	xmlGenericError(xmlGenericErrorContext, "</body></html>\n");
     }
     if ((files == 0) && (!generate) && (version == 0)) {
-	usage(argv[0]);
+	usage(stderr, argv[0]);
     }
 #ifdef LIBXML_SCHEMATRON_ENABLED
     if (wxschematron != NULL)
diff --git a/xmlmemory.c b/xmlmemory.c
index f08c8c3..6f16c4b 100644
--- a/xmlmemory.c
+++ b/xmlmemory.c
@@ -111,7 +111,7 @@
 
 #define MAX_SIZE_T ((size_t)-1)
 
-#define CLIENT_2_HDR(a) ((MEMHDR *) (((char *) (a)) - RESERVE_SIZE))
+#define CLIENT_2_HDR(a) ((void *) (((char *) (a)) - RESERVE_SIZE))
 #define HDR_2_CLIENT(a)    ((void *) (((char *) (a)) + RESERVE_SIZE))
 
 
@@ -172,6 +172,13 @@
 
     TEST_POINT
 
+    if (size > (MAX_SIZE_T - RESERVE_SIZE)) {
+	xmlGenericError(xmlGenericErrorContext,
+		"xmlMallocLoc : Unsigned overflow\n");
+	xmlMemoryDump();
+	return(NULL);
+    }
+
     p = (MEMHDR *) malloc(RESERVE_SIZE+size);
 
     if (!p) {
@@ -243,7 +250,7 @@
 
     if (size > (MAX_SIZE_T - RESERVE_SIZE)) {
 	xmlGenericError(xmlGenericErrorContext,
-		"xmlMallocAtomicLoc : Unsigned overflow prevented\n");
+		"xmlMallocAtomicLoc : Unsigned overflow\n");
 	xmlMemoryDump();
 	return(NULL);
     }
@@ -352,6 +359,13 @@
 #endif
     xmlMutexUnlock(xmlMemMutex);
 
+    if (size > (MAX_SIZE_T - RESERVE_SIZE)) {
+	xmlGenericError(xmlGenericErrorContext,
+		"xmlReallocLoc : Unsigned overflow\n");
+	xmlMemoryDump();
+	return(NULL);
+    }
+
     tmp = (MEMHDR *) realloc(p,RESERVE_SIZE+size);
     if (!tmp) {
 	 free(p);
@@ -473,7 +487,7 @@
 
 error:
     xmlGenericError(xmlGenericErrorContext,
-	    "xmlMemFree(%lX) error\n", (unsigned long) ptr);
+	    "xmlMemFree(%p) error\n", ptr);
     xmlMallocBreakpoint();
     return;
 }
@@ -499,6 +513,13 @@
     if (!xmlMemInitialized) xmlInitMemory();
     TEST_POINT
 
+    if (size > (MAX_SIZE_T - RESERVE_SIZE)) {
+	xmlGenericError(xmlGenericErrorContext,
+		"xmlMemStrdupLoc : Unsigned overflow\n");
+	xmlMemoryDump();
+	return(NULL);
+    }
+
     p = (MEMHDR *) malloc(RESERVE_SIZE+size);
     if (!p) {
       goto error;
diff --git a/xmlmodule.c b/xmlmodule.c
index 50ed666..a95ab66 100644
--- a/xmlmodule.c
+++ b/xmlmodule.c
@@ -8,6 +8,11 @@
  * http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html
  */
 
+/* In order RTLD_GLOBAL and RTLD_NOW to be defined on zOS */
+#if defined(__MVS__)
+#define _UNIX03_SOURCE
+#endif
+
 #define IN_LIBXML
 #include "libxml.h"
 
@@ -296,8 +301,9 @@
 #endif /* HAVE_SHLLOAD */
 #endif /* ! HAVE_DLOPEN */
 
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(__CYGWIN__)
 
+#define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 
 /*
@@ -334,6 +340,7 @@
 static int
 xmlModulePlatformSymbol(void *handle, const char *name, void **symbol)
 {
+XML_IGNORE_PEDANTIC_WARNINGS
 #ifdef _WIN32_WCE
     /*
      * GetProcAddressA seems only available on WinCE
@@ -343,6 +350,7 @@
     *symbol = GetProcAddress(handle, name);
 #endif
     return (NULL == *symbol) ? -1 : 0;
+XML_POP_WARNINGS
 }
 
 #endif /* _WIN32 */
diff --git a/xmlreader.c b/xmlreader.c
index f285790..4053269 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -491,6 +491,11 @@
     }
 }
 
+static void
+xmlTextReaderFreeIDTableEntry(void *id, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlFreeID((xmlIDPtr) id);
+}
+
 /**
  * xmlTextReaderFreeIDTable:
  * @table:  An id table
@@ -499,7 +504,7 @@
  */
 static void
 xmlTextReaderFreeIDTable(xmlIDTablePtr table) {
-    xmlHashFree(table, (xmlHashDeallocator) xmlFreeID);
+    xmlHashFree(table, xmlTextReaderFreeIDTableEntry);
 }
 
 /**
@@ -3982,7 +3987,7 @@
  * pattern. The caller must also use xmlTextReaderCurrentDoc() to
  * keep an handle on the resulting document once parsing has finished
  *
- * Returns a positive number in case of success and -1 in case of error
+ * Returns a non-negative number in case of success and -1 in case of error
  */
 int
 xmlTextReaderPreservePattern(xmlTextReaderPtr reader, const xmlChar *pattern,
diff --git a/xmlregexp.c b/xmlregexp.c
index ca3b4f4..d255fbf 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -2810,18 +2810,21 @@
 	    break;
         case XML_REGEXP_NOTSPACE:
 	    neg = !neg;
+            /* Falls through. */
         case XML_REGEXP_ANYSPACE:
 	    ret = ((codepoint == '\n') || (codepoint == '\r') ||
 		   (codepoint == '\t') || (codepoint == ' '));
 	    break;
         case XML_REGEXP_NOTINITNAME:
 	    neg = !neg;
+            /* Falls through. */
         case XML_REGEXP_INITNAME:
 	    ret = (IS_LETTER(codepoint) ||
 		   (codepoint == '_') || (codepoint == ':'));
 	    break;
         case XML_REGEXP_NOTNAMECHAR:
 	    neg = !neg;
+            /* Falls through. */
         case XML_REGEXP_NAMECHAR:
 	    ret = (IS_LETTER(codepoint) || IS_DIGIT(codepoint) ||
 		   (codepoint == '.') || (codepoint == '-') ||
@@ -2830,11 +2833,13 @@
 	    break;
         case XML_REGEXP_NOTDECIMAL:
 	    neg = !neg;
+            /* Falls through. */
         case XML_REGEXP_DECIMAL:
 	    ret = xmlUCSIsCatNd(codepoint);
 	    break;
         case XML_REGEXP_REALCHAR:
 	    neg = !neg;
+            /* Falls through. */
         case XML_REGEXP_NOTREALCHAR:
 	    ret = xmlUCSIsCatP(codepoint);
 	    if (ret == 0)
@@ -4089,8 +4094,9 @@
 		    xmlFree(exec->errString);
 		exec->errString = xmlStrdup(value);
 		exec->errState = exec->state;
-		memcpy(exec->errCounts, exec->counts,
-		       exec->comp->nbCounters * sizeof(int));
+                if (exec->comp->nbCounters)
+                    memcpy(exec->errCounts, exec->counts,
+                           exec->comp->nbCounters * sizeof(int));
 	    }
 
 	    /*
@@ -4880,7 +4886,8 @@
 	}
 	NEXT;
 	xmlFAParseCharProp(ctxt);
-	ctxt->atom->neg = 1;
+        if (ctxt->atom != NULL)
+	    ctxt->atom->neg = 1;
 	if (CUR != '}') {
 	    ERROR("Expecting '}'");
 	    return;
@@ -5051,7 +5058,7 @@
 		return;
 	}
         len = 1;
-    } else if ((cur != 0x5B) && (cur != 0x5D)) {
+    } else if ((cur != '\0') && (cur != 0x5B) && (cur != 0x5D)) {
         end = CUR_SCHAR(ctxt->cur, len);
     } else {
 	ERROR("Expecting the end of a char range");
diff --git a/xmlsave.c b/xmlsave.c
index 4a8e3f3..6c7418e 100644
--- a/xmlsave.c
+++ b/xmlsave.c
@@ -1595,31 +1595,31 @@
     if (cur->properties != NULL)
         xhtmlAttrListDumpOutput(ctxt, cur->properties);
 
-	if ((cur->type == XML_ELEMENT_NODE) &&
-		(cur->parent != NULL) &&
-		(cur->parent->parent == (xmlNodePtr) cur->doc) &&
-		xmlStrEqual(cur->name, BAD_CAST"head") &&
-		xmlStrEqual(cur->parent->name, BAD_CAST"html")) {
+    if ((cur->type == XML_ELEMENT_NODE) &&
+        (cur->parent != NULL) &&
+        (cur->parent->parent == (xmlNodePtr) cur->doc) &&
+        xmlStrEqual(cur->name, BAD_CAST"head") &&
+        xmlStrEqual(cur->parent->name, BAD_CAST"html")) {
 
-		tmp = cur->children;
-		while (tmp != NULL) {
-			if (xmlStrEqual(tmp->name, BAD_CAST"meta")) {
-				xmlChar *httpequiv;
+        tmp = cur->children;
+        while (tmp != NULL) {
+            if (xmlStrEqual(tmp->name, BAD_CAST"meta")) {
+                xmlChar *httpequiv;
 
-				httpequiv = xmlGetProp(tmp, BAD_CAST"http-equiv");
-				if (httpequiv != NULL) {
-					if (xmlStrcasecmp(httpequiv, BAD_CAST"Content-Type") == 0) {
-						xmlFree(httpequiv);
-						break;
-					}
-					xmlFree(httpequiv);
-				}
-			}
-			tmp = tmp->next;
-		}
-		if (tmp == NULL)
-			addmeta = 1;
-	}
+                httpequiv = xmlGetProp(tmp, BAD_CAST"http-equiv");
+                if (httpequiv != NULL) {
+                    if (xmlStrcasecmp(httpequiv, BAD_CAST"Content-Type") == 0) {
+                        xmlFree(httpequiv);
+                        break;
+                    }
+                    xmlFree(httpequiv);
+                }
+            }
+            tmp = tmp->next;
+        }
+        if (tmp == NULL)
+            addmeta = 1;
+    }
 
     if ((cur->type == XML_ELEMENT_NODE) && (cur->children == NULL)) {
 	if (((cur->ns == NULL) || (cur->ns->prefix == NULL)) &&
@@ -2109,8 +2109,6 @@
                 xmlBufAdd(buf, base, cur - base);
             if (*cur < 0xC0) {
                 xmlSaveErr(XML_SAVE_NOT_UTF8, (xmlNodePtr) attr, NULL);
-                if (doc != NULL)
-                    doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1");
 		xmlSerializeHexCharRef(tmp, *cur);
                 xmlBufAdd(buf, (xmlChar *) tmp, -1);
                 cur++;
@@ -2140,9 +2138,6 @@
             }
             if ((l == 1) || (!IS_CHAR(val))) {
                 xmlSaveErr(XML_SAVE_CHAR_INVALID, (xmlNodePtr) attr, NULL);
-                if (doc != NULL)
-                    doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1");
-
 		xmlSerializeHexCharRef(tmp, *cur);
                 xmlBufAdd(buf, (xmlChar *) tmp, -1);
                 cur++;
@@ -2709,7 +2704,7 @@
 		return(-1);
     }
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     if (cur->compression < 0) cur->compression = xmlGetCompressMode();
 #endif
     /*
diff --git a/xmlschemas.c b/xmlschemas.c
index 7afe2eb..405f72a 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -44,6 +44,12 @@
  *     but is done here due to performance. Move it to an other layer
  *     is schema construction via an API is implemented.
  */
+
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
 #define IN_LIBXML
 #include "libxml.h"
 
@@ -166,7 +172,7 @@
 /*
 * Macros for attribute uses.
 */
-#define WXS_ATTRUSE_DECL(au) WXS_ATTR_CAST (WXS_ATTR_USE_CAST (au))->attrDecl
+#define WXS_ATTRUSE_DECL(au) (WXS_ATTR_USE_CAST (au))->attrDecl
 
 #define WXS_ATTRUSE_TYPEDEF(au) WXS_ATTR_TYPEDEF(WXS_ATTRUSE_DECL( WXS_ATTR_USE_CAST au))
 
@@ -363,6 +369,7 @@
 typedef xmlSchemaAbstractCtxt *xmlSchemaAbstractCtxtPtr;
 struct _xmlSchemaAbstractCtxt {
     int type; /* E.g. XML_SCHEMA_CTXT_VALIDATOR */
+    void *dummy; /* Fix alignment issues */
 };
 
 typedef struct _xmlSchemaBucket xmlSchemaBucket;
@@ -473,6 +480,7 @@
 typedef xmlSchemaBasicItem *xmlSchemaBasicItemPtr;
 struct _xmlSchemaBasicItem {
     xmlSchemaTypeType type;
+    void *dummy; /* Fix alignment issues */
 };
 
 /**
@@ -1734,6 +1742,7 @@
 		*buf = xmlStrcat(*buf, BAD_CAST "'");
 		FREE_AND_NULL(str);
 	    }
+            /* Falls through. */
 	default:
 	    named = 0;
 	}
@@ -2833,7 +2842,7 @@
     xmlSchemaFormatItemForReport(&des, NULL, ownerItem, ownerElem);
     if (refTypeStr == NULL)
 	refTypeStr = (const char *) xmlSchemaItemTypeToStr(refType);
-	xmlSchemaPErrExt(ctxt, ownerElem, error,
+    xmlSchemaPErrExt(ctxt, ownerElem, error,
 	    NULL, NULL, NULL,
 	    "%s, attribute '%s': The QName value '%s' does not resolve to a(n) "
 	    "%s.\n", BAD_CAST des, BAD_CAST name,
@@ -3556,6 +3565,12 @@
     xmlFree(bucket);
 }
 
+static void
+xmlSchemaBucketFreeEntry(void *bucket, const xmlChar *name ATTRIBUTE_UNUSED)
+{
+    xmlSchemaBucketFree((xmlSchemaBucketPtr) bucket);
+}
+
 static xmlSchemaBucketPtr
 xmlSchemaBucketCreate(xmlSchemaParserCtxtPtr pctxt,
 			 int type, const xmlChar *targetNamespace)
@@ -4150,8 +4165,7 @@
         xmlHashFree(schema->idcDef, NULL);
 
     if (schema->schemasImports != NULL)
-	xmlHashFree(schema->schemasImports,
-		    (xmlHashDeallocator) xmlSchemaBucketFree);
+	xmlHashFree(schema->schemasImports, xmlSchemaBucketFreeEntry);
     if (schema->includes != NULL) {
 	xmlSchemaItemListPtr list = (xmlSchemaItemListPtr) schema->includes;
 	int i;
@@ -4187,11 +4201,13 @@
  * Dump the element
  */
 static void
-xmlSchemaElementDump(xmlSchemaElementPtr elem, FILE * output,
+xmlSchemaElementDump(void *payload, void *data,
                      const xmlChar * name ATTRIBUTE_UNUSED,
 		     const xmlChar * namespace ATTRIBUTE_UNUSED,
                      const xmlChar * context ATTRIBUTE_UNUSED)
 {
+    xmlSchemaElementPtr elem = (xmlSchemaElementPtr) payload;
+    FILE *output = (FILE *) data;
     if (elem == NULL)
         return;
 
@@ -4506,6 +4522,13 @@
 #endif
 }
 
+static void
+xmlSchemaTypeDumpEntry(void *type, void *output,
+                       const xmlChar *name ATTRIBUTE_UNUSED)
+{
+    xmlSchemaTypeDump((xmlSchemaTypePtr) type, (FILE *) output);
+}
+
 /**
  * xmlSchemaDump:
  * @output:  the file output
@@ -4534,10 +4557,8 @@
     fprintf(output, "\n");
     if (schema->annot != NULL)
         xmlSchemaAnnotDump(output, schema->annot);
-    xmlHashScan(schema->typeDecl, (xmlHashScanner) xmlSchemaTypeDump,
-                output);
-    xmlHashScanFull(schema->elemDecl,
-                    (xmlHashScannerFull) xmlSchemaElementDump, output);
+    xmlHashScan(schema->typeDecl, xmlSchemaTypeDumpEntry, output);
+    xmlHashScanFull(schema->elemDecl, xmlSchemaElementDump, output);
 }
 
 #ifdef DEBUG_IDC_NODE_TABLE
@@ -5697,6 +5718,12 @@
     xmlFree(group);
 }
 
+static void
+xmlSchemaSubstGroupFreeEntry(void *group, const xmlChar *name ATTRIBUTE_UNUSED)
+{
+    xmlSchemaSubstGroupFree((xmlSchemaSubstGroupPtr) group);
+}
+
 static xmlSchemaSubstGroupPtr
 xmlSchemaSubstGroupAdd(xmlSchemaParserCtxtPtr pctxt,
 		       xmlSchemaElementPtr head)
@@ -7364,8 +7391,8 @@
 	*/
 	if (defValue != NULL)
 	    use->defValue = defValue;
-	    if (defValueType == WXS_ATTR_DEF_VAL_FIXED)
-		use->flags |= XML_SCHEMA_ATTR_USE_FIXED;
+	if (defValueType == WXS_ATTR_DEF_VAL_FIXED)
+	    use->flags |= XML_SCHEMA_ATTR_USE_FIXED;
     }
 
 check_children:
@@ -9909,8 +9936,7 @@
     if (con->pending != NULL)
 	xmlSchemaItemListFree(con->pending);
     if (con->substGroups != NULL)
-	xmlHashFree(con->substGroups,
-	    (xmlHashDeallocator) xmlSchemaSubstGroupFree);
+	xmlHashFree(con->substGroups, xmlSchemaSubstGroupFreeEntry);
     if (con->redefs != NULL)
 	xmlSchemaRedefListFree(con->redefs);
     if (con->dict != NULL)
@@ -15890,7 +15916,7 @@
  * STATUS: (seems) complete
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckCTPropsCorrect(xmlSchemaParserCtxtPtr pctxt,
@@ -16137,7 +16163,7 @@
  *     (1.4.3.2.2.2) "Particle Valid (Extension)"
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckCOSCTExtends(xmlSchemaParserCtxtPtr ctxt,
@@ -16394,7 +16420,7 @@
  * Validation Rule: Checking complex type subsumption
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckDerivationOKRestriction(xmlSchemaParserCtxtPtr ctxt,
@@ -16584,7 +16610,7 @@
  * (3.4.6) Constraints on Complex Type Definition Schema Components
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckCTComponent(xmlSchemaParserCtxtPtr ctxt,
@@ -16614,7 +16640,7 @@
  * Complex Type Definition Representation OK (src-ct)
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckSRCCT(xmlSchemaParserCtxtPtr ctxt,
@@ -16783,7 +16809,7 @@
  * STATUS: complete
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckParticleRangeOK(int rmin, int rmax,
@@ -16813,7 +16839,7 @@
  *   CLARIFY: (3.2.2)
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckRCaseNameAndTypeOK(xmlSchemaParserCtxtPtr ctxt,
@@ -16918,7 +16944,7 @@
  * STATUS: complete
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckRCaseNSCompat(xmlSchemaParserCtxtPtr ctxt,
@@ -16962,7 +16988,7 @@
  * STATUS: TODO
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckRCaseRecurseAsIfGroup(xmlSchemaParserCtxtPtr ctxt,
@@ -16988,7 +17014,7 @@
  * STATUS: complete
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckRCaseNSSubset(xmlSchemaParserCtxtPtr ctxt,
@@ -17038,7 +17064,7 @@
  * STATUS: TODO
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckCOSParticleRestrict(xmlSchemaParserCtxtPtr ctxt,
@@ -17079,7 +17105,7 @@
  * STATUS: TODO: subst-groups
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckRCaseNSRecurseCheckCardinality(xmlSchemaParserCtxtPtr ctxt,
@@ -17134,7 +17160,7 @@
  * TODO: subst-groups
  *
  * Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
  */
 static int
 xmlSchemaCheckRCaseRecurse(xmlSchemaParserCtxtPtr ctxt,
@@ -17764,7 +17790,7 @@
     return (0);
 internal_error:
     PERROR_INT("xmlSchemaDeriveAndValidateFacets",
-	"an error occured");
+	"an error occurred");
     return (-1);
 }
 
@@ -21284,8 +21310,7 @@
     con->bucket = oldbucket;
     con->pending->nbItems = 0;
     if (con->substGroups != NULL) {
-	xmlHashFree(con->substGroups,
-	    (xmlHashDeallocator) xmlSchemaSubstGroupFree);
+	xmlHashFree(con->substGroups, xmlSchemaSubstGroupFreeEntry);
 	con->substGroups = NULL;
     }
     if (con->redefs != NULL) {
@@ -21413,7 +21438,7 @@
 	ctxt->ownsConstructor = 0;
     }
     PERROR_INT2("xmlSchemaParse",
-	"An internal error occured");
+	"An internal error occurred");
     ctxt->schema = NULL;
     return(NULL);
 }
@@ -21993,9 +22018,11 @@
  * Returns the item, or NULL on internal errors.
  */
 static void
-xmlSchemaAugmentIDC(xmlSchemaIDCPtr idcDef,
-		    xmlSchemaValidCtxtPtr vctxt)
+xmlSchemaAugmentIDC(void *payload, void *data,
+                    const xmlChar *name ATTRIBUTE_UNUSED)
 {
+    xmlSchemaIDCPtr idcDef = (xmlSchemaIDCPtr) payload;
+    xmlSchemaValidCtxtPtr vctxt = (xmlSchemaValidCtxtPtr) data;
     xmlSchemaIDCAugPtr aidc;
 
     aidc = (xmlSchemaIDCAugPtr) xmlMalloc(sizeof(xmlSchemaIDCAug));
@@ -22029,10 +22056,12 @@
  * Creates an augmented IDC definition for the imported schema.
  */
 static void
-xmlSchemaAugmentImportedIDC(xmlSchemaImportPtr imported, xmlSchemaValidCtxtPtr vctxt) {
+xmlSchemaAugmentImportedIDC(void *payload, void *data,
+                            const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlSchemaImportPtr imported = (xmlSchemaImportPtr) payload;
+    xmlSchemaValidCtxtPtr vctxt = (xmlSchemaValidCtxtPtr) data;
     if (imported->schema->idcDef != NULL) {
-	    xmlHashScan(imported->schema->idcDef ,
-	    (xmlHashScanner) xmlSchemaAugmentIDC, vctxt);
+	    xmlHashScan(imported->schema->idcDef, xmlSchemaAugmentIDC, vctxt);
     }
 }
 
@@ -25957,11 +25986,12 @@
 }
 
 static void
-xmlSchemaVContentModelCallback(xmlSchemaValidCtxtPtr vctxt ATTRIBUTE_UNUSED,
+xmlSchemaVContentModelCallback(xmlRegExecCtxtPtr exec ATTRIBUTE_UNUSED,
 			       const xmlChar * name ATTRIBUTE_UNUSED,
-			       xmlSchemaElementPtr item,
-			       xmlSchemaNodeInfoPtr inode)
+			       void *transdata, void *inputdata)
 {
+    xmlSchemaElementPtr item = (xmlSchemaElementPtr) transdata;
+    xmlSchemaNodeInfoPtr inode = (xmlSchemaNodeInfoPtr) inputdata;
     inode->decl = item;
 #ifdef DEBUG_CONTENT
     {
@@ -26066,8 +26096,7 @@
 		*/
 		inode->regexCtxt =
 		    xmlRegNewExecCtxt(inode->typeDef->contModel,
-		    (xmlRegExecCallbacks) xmlSchemaVContentModelCallback,
-		    vctxt);
+		    xmlSchemaVContentModelCallback, vctxt);
 		if (inode->regexCtxt == NULL) {
 		    VERROR_INT("xmlSchemaValidatorPopElem",
 			"failed to create a regex context");
@@ -26094,7 +26123,7 @@
 
 	    /*
 	    * Get hold of the still expected content, since a further
-	    * call to xmlRegExecPushString() will loose this information.
+	    * call to xmlRegExecPushString() will lose this information.
 	    */
 	    xmlRegExecNextValues(inode->regexCtxt,
 		&nbval, &nbneg, &values[0], &terminal);
@@ -26615,8 +26644,7 @@
 		* Create the regex context.
 		*/
 		regexCtxt = xmlRegNewExecCtxt(ptype->contModel,
-		    (xmlRegExecCallbacks) xmlSchemaVContentModelCallback,
-		    vctxt);
+		    xmlSchemaVContentModelCallback, vctxt);
 		if (regexCtxt == NULL) {
 		    VERROR_INT("xmlSchemaValidateChildElem",
 			"failed to create a regex context");
@@ -26876,7 +26904,8 @@
          * Augment the IDC definitions for the main schema and all imported ones
          * NOTE: main schema is the first in the imported list
          */
-        xmlHashScan(vctxt->schema->schemasImports,(xmlHashScanner)xmlSchemaAugmentImportedIDC, vctxt);
+        xmlHashScan(vctxt->schema->schemasImports, xmlSchemaAugmentImportedIDC,
+                    vctxt);
     }
     if (vctxt->depth > 0) {
 	/*
@@ -27150,7 +27179,7 @@
 		    }
 		    if (ret < 0) {
 			/*
-			* VAL TODO: A reader error occured; what to do here?
+			* VAL TODO: A reader error occurred; what to do here?
 			*/
 			ret = 1;
 			goto exit;
@@ -27391,6 +27420,7 @@
     * attributes yet.
     */
     if (nb_attributes != 0) {
+	int valueLen, k, l;
 	xmlChar *value;
 
         for (j = 0, i = 0; i < nb_attributes; i++, j += 5) {
@@ -27400,12 +27430,31 @@
 	    * libxml2 differs from normal SAX here in that it escapes all ampersands
 	    * as &#38; instead of delivering the raw converted string. Changing the
 	    * behavior at this point would break applications that use this API, so
-	    * we are forced to work around it. There is no danger of accidentally
-	    * decoding some entity other than &#38; in this step because without
-	    * unescaped ampersands there can be no other entities in the string.
+	    * we are forced to work around it.
 	    */
-	    value = xmlStringLenDecodeEntities(vctxt->parserCtxt, attributes[j+3],
-		attributes[j+4] - attributes[j+3], XML_SUBSTITUTE_REF, 0, 0, 0);
+	    valueLen = attributes[j+4] - attributes[j+3];
+	    value = xmlMallocAtomic(valueLen + 1);
+	    if (value == NULL) {
+		xmlSchemaVErrMemory(vctxt,
+		    "allocating string for decoded attribute",
+		    NULL);
+		goto internal_error;
+	    }
+	    for (k = 0, l = 0; k < valueLen; l++) {
+		if (k < valueLen - 4 &&
+		    attributes[j+3][k+0] == '&' &&
+		    attributes[j+3][k+1] == '#' &&
+		    attributes[j+3][k+2] == '3' &&
+		    attributes[j+3][k+3] == '8' &&
+		    attributes[j+3][k+4] == ';') {
+		    value[l] = '&';
+		    k += 5;
+		} else {
+		    value[l] = attributes[j+3][k];
+		    k++;
+		}
+	    }
+	    value[l] = '\0';
 	    /*
 	    * TODO: Set the node line.
 	    */
@@ -27788,7 +27837,7 @@
 {
     if (ctxt == NULL)
         return;
-	ctxt->serror = serror;
+    ctxt->serror = serror;
     ctxt->error = NULL;
     ctxt->warning = NULL;
     ctxt->errCtxt = ctx;
@@ -28098,7 +28147,8 @@
     * Augment the IDC definitions for the main schema and all imported ones
     * NOTE: main schema if the first in the imported list
     */
-    xmlHashScan(vctxt->schema->schemasImports,(xmlHashScanner)xmlSchemaAugmentImportedIDC, vctxt);
+    xmlHashScan(vctxt->schema->schemasImports, xmlSchemaAugmentImportedIDC,
+                vctxt);
 
     return(0);
 }
diff --git a/xmlschemastypes.c b/xmlschemastypes.c
index 5f38599..ca381d3 100644
--- a/xmlschemastypes.c
+++ b/xmlschemastypes.c
@@ -7,6 +7,11 @@
  * Daniel Veillard <veillard@redhat.com>
  */
 
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
 #define IN_LIBXML
 #include "libxml.h"
 
@@ -614,6 +619,11 @@
     xmlSchemaTypesInitialized = 1;
 }
 
+static void
+xmlSchemaFreeTypeEntry(void *type, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlSchemaFreeType((xmlSchemaTypePtr) type);
+}
+
 /**
  * xmlSchemaCleanupTypes:
  *
@@ -641,7 +651,7 @@
 	xmlFree((xmlSchemaParticlePtr) particle);
 	xmlSchemaTypeAnyTypeDef->subtypes = NULL;
     }
-    xmlHashFree(xmlSchemaTypesBank, (xmlHashDeallocator) xmlSchemaFreeType);
+    xmlHashFree(xmlSchemaTypesBank, xmlSchemaFreeTypeEntry);
     xmlSchemaTypesInitialized = 0;
 }
 
@@ -5398,7 +5408,7 @@
 	    if ((valType == XML_SCHEMAS_QNAME) ||
 		(valType == XML_SCHEMAS_NOTATION))
 		return (0);
-	    /* No break on purpose. */
+            /* Falls through. */
 	case XML_SCHEMA_FACET_MAXLENGTH:
 	case XML_SCHEMA_FACET_MINLENGTH: {
 	    unsigned int len = 0;
diff --git a/xmlstring.c b/xmlstring.c
index cc85777..8d2e06f 100644
--- a/xmlstring.c
+++ b/xmlstring.c
@@ -440,8 +440,8 @@
  * first bytes of @add. Note that if @len < 0 then this is an API error
  * and NULL will be returned.
  *
- * Returns a new xmlChar *, the original @cur is reallocated if needed
- * and should not be freed
+ * Returns a new xmlChar *, the original @cur is reallocated and should
+ * not be freed.
  */
 
 xmlChar *
@@ -519,7 +519,8 @@
  * encoded in UTF-8 or an encoding with 8bit based chars, we assume
  * a termination mark of '0'.
  *
- * Returns a new xmlChar * containing the concatenated string.
+ * Returns a new xmlChar * containing the concatenated string. The original
+ * @cur is reallocated and should not be freed.
  */
 xmlChar *
 xmlStrcat(xmlChar *cur, const xmlChar *add) {
@@ -822,7 +823,7 @@
  * @len:  the number of characters in the array
  *
  * storage size of an UTF8 string
- * the behaviour is not garanteed if the input string is not UTF-8
+ * the behaviour is not guaranteed if the input string is not UTF-8
  *
  * Returns the storage size of
  * the first 'len' characters of ARRAY
diff --git a/xmlunicode.c b/xmlunicode.c
index ce6e9a4..6d0a96a 100644
--- a/xmlunicode.c
+++ b/xmlunicode.c
@@ -29,14 +29,14 @@
 } xmlUnicodeRange;
 
 typedef struct {
-    xmlUnicodeRange *table;
+    const xmlUnicodeRange *table;
     int		    numentries;
 } xmlUnicodeNameTable;
 
 
 static xmlIntFunc *xmlUnicodeLookup(xmlUnicodeNameTable *tptr, const char *tname);
 
-static xmlUnicodeRange xmlUnicodeBlocks[] = {
+static const xmlUnicodeRange xmlUnicodeBlocks[] = {
   {"AegeanNumbers", xmlUCSIsAegeanNumbers},
   {"AlphabeticPresentationForms", xmlUCSIsAlphabeticPresentationForms},
   {"Arabic", xmlUCSIsArabic},
@@ -945,7 +945,7 @@
 static xmlIntFunc
 *xmlUnicodeLookup(xmlUnicodeNameTable *tptr, const char *tname) {
     int low, high, mid, cmp;
-    xmlUnicodeRange *sptr;
+    const xmlUnicodeRange *sptr;
 
     if ((tptr == NULL) || (tname == NULL)) return(NULL);
 
diff --git a/xmlwriter.c b/xmlwriter.c
index 69541b8..b5cd171 100644
--- a/xmlwriter.c
+++ b/xmlwriter.c
@@ -110,7 +110,7 @@
 static int xmlCmpTextWriterNsStackEntry(const void *data0,
                                         const void *data1);
 static int xmlTextWriterWriteDocCallback(void *context,
-                                         const xmlChar * str, int len);
+                                         const char *str, int len);
 static int xmlTextWriterCloseDocCallback(void *context);
 
 static xmlChar *xmlTextWriterVSprintf(const char *format, va_list argptr) LIBXML_ATTR_FORMAT(1,0);
@@ -190,9 +190,7 @@
     }
     memset(ret, 0, (size_t) sizeof(xmlTextWriter));
 
-    ret->nodes = xmlListCreate((xmlListDeallocator)
-                               xmlFreeTextWriterStackEntry,
-                               (xmlListDataCompare)
+    ret->nodes = xmlListCreate(xmlFreeTextWriterStackEntry,
                                xmlCmpTextWriterStackEntry);
     if (ret->nodes == NULL) {
         xmlWriterErrMsg(NULL, XML_ERR_NO_MEMORY,
@@ -201,9 +199,7 @@
         return NULL;
     }
 
-    ret->nsstack = xmlListCreate((xmlListDeallocator)
-                                 xmlFreeTextWriterNsStackEntry,
-                                 (xmlListDataCompare)
+    ret->nsstack = xmlListCreate(xmlFreeTextWriterNsStackEntry,
                                  xmlCmpTextWriterNsStackEntry);
     if (ret->nsstack == NULL) {
         xmlWriterErrMsg(NULL, XML_ERR_NO_MEMORY,
@@ -329,9 +325,7 @@
         return NULL;
     }
 
-    out = xmlOutputBufferCreateIO((xmlOutputWriteCallback)
-                                  xmlTextWriterWriteDocCallback,
-                                  (xmlOutputCloseCallback)
+    out = xmlOutputBufferCreateIO(xmlTextWriterWriteDocCallback,
                                   xmlTextWriterCloseDocCallback,
                                   (void *) ctxt, NULL);
     if (out == NULL) {
@@ -3754,6 +3748,7 @@
             if (count < 0)
                 return -1;
             sum += count;
+            /* Falls through. */
         case XML_TEXTWRITER_DTD_ENTY:
         case XML_TEXTWRITER_DTD_PENT:
             count = xmlOutputBufferWriteString(writer->out, ">");
@@ -4421,12 +4416,12 @@
  * Returns -1, 0, 1
  */
 static int
-xmlTextWriterWriteDocCallback(void *context, const xmlChar * str, int len)
+xmlTextWriterWriteDocCallback(void *context, const char *str, int len)
 {
     xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) context;
     int rc;
 
-    if ((rc = xmlParseChunk(ctxt, (const char *) str, len, 0)) != 0) {
+    if ((rc = xmlParseChunk(ctxt, str, len, 0)) != 0) {
         xmlWriterErrMsgInt(NULL, XML_ERR_INTERNAL_ERROR,
                         "xmlTextWriterWriteDocCallback : XML error %d !\n",
                         rc);
@@ -4452,7 +4447,7 @@
 
     if ((rc = xmlParseChunk(ctxt, NULL, 0, 1)) != 0) {
         xmlWriterErrMsgInt(NULL, XML_ERR_INTERNAL_ERROR,
-                        "xmlTextWriterWriteDocCallback : XML error %d !\n",
+                        "xmlTextWriterCloseDocCallback : XML error %d !\n",
                         rc);
         return -1;
     }
diff --git a/xpath.c b/xpath.c
index 3472ff0..d134025 100644
--- a/xpath.c
+++ b/xpath.c
@@ -14,10 +14,17 @@
  *
  */
 
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
 #define IN_LIBXML
 #include "libxml.h"
 
+#include <limits.h>
 #include <string.h>
+#include <stddef.h>
 
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
@@ -153,7 +160,7 @@
     int misc = 0, precedence1 = 0, precedence2 = 0;
     xmlNodePtr miscNode1 = NULL, miscNode2 = NULL;
     xmlNodePtr cur, root;
-    long l1, l2;
+    ptrdiff_t l1, l2;
 
     if ((node1 == NULL) || (node2 == NULL))
 	return(-2);
@@ -167,12 +174,12 @@
     switch (node1->type) {
 	case XML_ELEMENT_NODE:
 	    if (node2->type == XML_ELEMENT_NODE) {
-		if ((0 > (long) node1->content) && /* TODO: Would a != 0 suffice here? */
-		    (0 > (long) node2->content) &&
+		if ((0 > (ptrdiff_t) node1->content) &&
+		    (0 > (ptrdiff_t) node2->content) &&
 		    (node1->doc == node2->doc))
 		{
-		    l1 = -((long) node1->content);
-		    l2 = -((long) node2->content);
+		    l1 = -((ptrdiff_t) node1->content);
+		    l2 = -((ptrdiff_t) node2->content);
 		    if (l1 < l2)
 			return(1);
 		    if (l1 > l2)
@@ -217,7 +224,7 @@
 		node1 = node1->parent;
 	    }
 	    if ((node1 == NULL) || (node1->type != XML_ELEMENT_NODE) ||
-		(0 <= (long) node1->content)) {
+		(0 <= (ptrdiff_t) node1->content)) {
 		/*
 		* Fallback for whatever case.
 		*/
@@ -267,7 +274,7 @@
 		node2 = node2->parent;
 	    }
 	    if ((node2 == NULL) || (node2->type != XML_ELEMENT_NODE) ||
-		(0 <= (long) node2->content))
+		(0 <= (ptrdiff_t) node2->content))
 	    {
 		node2 = miscNode2;
 		precedence2 = 0;
@@ -340,12 +347,12 @@
      */
     if ((node1->type == XML_ELEMENT_NODE) &&
 	(node2->type == XML_ELEMENT_NODE) &&
-	(0 > (long) node1->content) &&
-	(0 > (long) node2->content) &&
+	(0 > (ptrdiff_t) node1->content) &&
+	(0 > (ptrdiff_t) node2->content) &&
 	(node1->doc == node2->doc)) {
 
-	l1 = -((long) node1->content);
-	l2 = -((long) node2->content);
+	l1 = -((ptrdiff_t) node1->content);
+	l2 = -((ptrdiff_t) node2->content);
 	if (l1 < l2)
 	    return(1);
 	if (l1 > l2)
@@ -408,12 +415,12 @@
      */
     if ((node1->type == XML_ELEMENT_NODE) &&
 	(node2->type == XML_ELEMENT_NODE) &&
-	(0 > (long) node1->content) &&
-	(0 > (long) node2->content) &&
+	(0 > (ptrdiff_t) node1->content) &&
+	(0 > (ptrdiff_t) node2->content) &&
 	(node1->doc == node2->doc)) {
 
-	l1 = -((long) node1->content);
-	l2 = -((long) node2->content);
+	l1 = -((ptrdiff_t) node1->content);
+	l2 = -((ptrdiff_t) node2->content);
 	if (l1 < l2)
 	    return(1);
 	if (l1 > l2)
@@ -470,84 +477,66 @@
  *									*
  ************************************************************************/
 
-#ifndef TRIO_REPLACE_STDIO
-#define TRIO_PUBLIC static
+#ifndef NAN
+#define NAN (0.0 / 0.0)
 #endif
-#include "trionan.c"
 
-/*
- * The lack of portability of this section of the libc is annoying !
- */
-double xmlXPathNAN = 0;
-double xmlXPathPINF = 1;
-double xmlXPathNINF = -1;
-static double xmlXPathNZERO = 0; /* not exported from headers */
-static int xmlXPathInitialized = 0;
+#ifndef INFINITY
+#define INFINITY HUGE_VAL
+#endif
+
+double xmlXPathNAN = NAN;
+double xmlXPathPINF = INFINITY;
+double xmlXPathNINF = -INFINITY;
 
 /**
  * xmlXPathInit:
  *
  * Initialize the XPath environment
+ *
+ * Does nothing but must be kept as public function.
  */
 void
 xmlXPathInit(void) {
-    if (xmlXPathInitialized) return;
-
-    xmlXPathPINF = trio_pinf();
-    xmlXPathNINF = trio_ninf();
-    xmlXPathNAN = trio_nan();
-    xmlXPathNZERO = trio_nzero();
-
-    xmlXPathInitialized = 1;
 }
 
 /**
  * xmlXPathIsNaN:
  * @val:  a double value
  *
- * Provides a portable isnan() function to detect whether a double
- * is a NotaNumber. Based on trio code
- * http://sourceforge.net/projects/ctrio/
- *
  * Returns 1 if the value is a NaN, 0 otherwise
  */
 int
 xmlXPathIsNaN(double val) {
-    return(trio_isnan(val));
+#ifdef isnan
+    return isnan(val);
+#else
+    return !(val == val);
+#endif
 }
 
 /**
  * xmlXPathIsInf:
  * @val:  a double value
  *
- * Provides a portable isinf() function to detect whether a double
- * is a +Infinite or -Infinite. Based on trio code
- * http://sourceforge.net/projects/ctrio/
- *
- * Returns 1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise
+ * Returns 1 if the value is +Infinite, -1 if -Infinite, 0 otherwise
  */
 int
 xmlXPathIsInf(double val) {
-    return(trio_isinf(val));
+#ifdef isinf
+    return isinf(val) ? (val > 0 ? 1 : -1) : 0;
+#else
+    if (val >= HUGE_VAL)
+        return 1;
+    if (val <= -HUGE_VAL)
+        return -1;
+    return 0;
+#endif
 }
 
 #endif /* SCHEMAS or XPATH */
-#ifdef LIBXML_XPATH_ENABLED
-/**
- * xmlXPathGetSign:
- * @val:  a double value
- *
- * Provides a portable function to detect the sign of a double
- * Modified from trio code
- * http://sourceforge.net/projects/ctrio/
- *
- * Returns 1 if the value is Negative, 0 if positive
- */
-static int
-xmlXPathGetSign(double val) {
-    return(trio_signbit(val));
-}
 
+#ifdef LIBXML_XPATH_ENABLED
 
 /*
  * TODO: when compatibility allows remove all "fake node libxslt" strings
@@ -935,7 +924,7 @@
     int value3;
     void *value4;
     void *value5;
-    void *cache;
+    xmlXPathFunction cache;
     void *cacheURI;
 };
 
@@ -971,6 +960,8 @@
 xmlXPathCompOpEvalToBoolean(xmlXPathParserContextPtr ctxt,
 			    xmlXPathStepOpPtr op,
 			    int isPredicate);
+static void
+xmlXPathFreeObjectEntry(void *obj, const xmlChar *name);
 
 /************************************************************************
  *									*
@@ -1414,7 +1405,8 @@
 	    default:
 		if (xmlXPathIsNaN(cur->floatval)) {
 		    fprintf(output, "Object is a number : NaN\n");
-		} else if (cur->floatval == 0 && xmlXPathGetSign(cur->floatval) != 0) {
+		} else if (cur->floatval == 0) {
+                    /* Omit sign for negative zero. */
 		    fprintf(output, "Object is a number : 0\n");
 		} else {
 		    fprintf(output, "Object is a number : %0g\n", cur->floatval);
@@ -1672,10 +1664,17 @@
 
     fprintf(output, "%s", shift);
 
-    fprintf(output, "Compiled Expression : %d elements\n",
-	    comp->nbStep);
-    i = comp->last;
-    xmlXPathDebugDumpStepOp(output, comp, &comp->steps[i], depth + 1);
+#ifdef XPATH_STREAMING
+    if (comp->stream) {
+        fprintf(output, "Streaming Expression\n");
+    } else
+#endif
+    {
+        fprintf(output, "Compiled Expression : %d elements\n",
+                comp->nbStep);
+        i = comp->last;
+        xmlXPathDebugDumpStepOp(output, comp, &comp->steps[i], depth + 1);
+    }
 }
 
 #ifdef XP_DEBUG_OBJ_USAGE
@@ -3103,9 +3102,11 @@
 	if (xmlXPathIsNaN(number)) {
 	    if (buffersize > (int)sizeof("NaN"))
 		snprintf(buffer, buffersize, "NaN");
-	} else if (number == 0 && xmlXPathGetSign(number) != 0) {
+	} else if (number == 0) {
+            /* Omit sign for negative zero. */
 	    snprintf(buffer, buffersize, "0");
-	} else if (number == ((int) number)) {
+	} else if ((number > INT_MIN) && (number < INT_MAX) &&
+                   (number == (int) number)) {
 	    char work[30];
 	    char *ptr, *cur;
 	    int value = (int) number;
@@ -3225,7 +3226,7 @@
  */
 long
 xmlXPathOrderDocElems(xmlDocPtr doc) {
-    long count = 0;
+    ptrdiff_t count = 0;
     xmlNodePtr cur;
 
     if (doc == NULL)
@@ -3257,7 +3258,7 @@
 	    }
 	} while (cur != NULL);
     }
-    return(count);
+    return((long) count);
 }
 
 /**
@@ -3325,13 +3326,13 @@
      */
     if ((node1->type == XML_ELEMENT_NODE) &&
 	(node2->type == XML_ELEMENT_NODE) &&
-	(0 > (long) node1->content) &&
-	(0 > (long) node2->content) &&
+	(0 > (ptrdiff_t) node1->content) &&
+	(0 > (ptrdiff_t) node2->content) &&
 	(node1->doc == node2->doc)) {
-	long l1, l2;
+	ptrdiff_t l1, l2;
 
-	l1 = -((long) node1->content);
-	l2 = -((long) node2->content);
+	l1 = -((ptrdiff_t) node1->content);
+	l2 = -((ptrdiff_t) node2->content);
 	if (l1 < l2)
 	    return(1);
 	if (l1 > l2)
@@ -3342,13 +3343,13 @@
      * compute depth to root
      */
     for (depth2 = 0, cur = node2;cur->parent != NULL;cur = cur->parent) {
-	if (cur == node1)
+	if (cur->parent == node1)
 	    return(1);
 	depth2++;
     }
     root = cur;
     for (depth1 = 0, cur = node1;cur->parent != NULL;cur = cur->parent) {
-	if (cur == node2)
+	if (cur->parent == node2)
 	    return(-1);
 	depth1++;
     }
@@ -3388,13 +3389,13 @@
      */
     if ((node1->type == XML_ELEMENT_NODE) &&
 	(node2->type == XML_ELEMENT_NODE) &&
-	(0 > (long) node1->content) &&
-	(0 > (long) node2->content) &&
+	(0 > (ptrdiff_t) node1->content) &&
+	(0 > (ptrdiff_t) node2->content) &&
 	(node1->doc == node2->doc)) {
-	long l1, l2;
+	ptrdiff_t l1, l2;
 
-	l1 = -((long) node1->content);
-	l2 = -((long) node2->content);
+	l1 = -((ptrdiff_t) node1->content);
+	l2 = -((ptrdiff_t) node2->content);
 	if (l1 < l2)
 	    return(1);
 	if (l1 > l2)
@@ -4021,13 +4022,7 @@
 		set1->nodeTab = temp;
 		set1->nodeMax *= 2;
 	    }
-	    if (n2->type == XML_NAMESPACE_DECL) {
-		xmlNsPtr ns = (xmlNsPtr) n2;
-
-		set1->nodeTab[set1->nodeNr++] =
-		    xmlXPathNodeSetDupNs((xmlNodePtr) ns->next, ns);
-	    } else
-		set1->nodeTab[set1->nodeNr++] = n2;
+	    set1->nodeTab[set1->nodeNr++] = n2;
 skip_node:
 	    {}
 	}
@@ -4196,33 +4191,6 @@
 }
 
 /**
- * xmlXPathNodeSetClear:
- * @set:  the node set to clear
- *
- * Clears the list from all temporary XPath objects (e.g. namespace nodes
- * are feed), but does *not* free the list itself. Sets the length of the
- * list to 0.
- */
-static void
-xmlXPathNodeSetClear(xmlNodeSetPtr set, int hasNsNodes)
-{
-    if ((set == NULL) || (set->nodeNr <= 0))
-	return;
-    else if (hasNsNodes) {
-	int i;
-	xmlNodePtr node;
-
-	for (i = 0; i < set->nodeNr; i++) {
-	    node = set->nodeTab[i];
-	    if ((node != NULL) &&
-		(node->type == XML_NAMESPACE_DECL))
-		xmlXPathNodeSetFreeNs((xmlNsPtr) node);
-	}
-    }
-    set->nodeNr = 0;
-}
-
-/**
  * xmlXPathNodeSetClearFromPos:
  * @set: the node set to be cleared
  * @pos: the start position to clear from
@@ -4234,7 +4202,7 @@
 static void
 xmlXPathNodeSetClearFromPos(xmlNodeSetPtr set, int pos, int hasNsNodes)
 {
-    if ((set == NULL) || (set->nodeNr <= 0) || (pos >= set->nodeNr))
+    if ((set == NULL) || (pos >= set->nodeNr))
 	return;
     else if ((hasNsNodes)) {
 	int i;
@@ -4251,6 +4219,46 @@
 }
 
 /**
+ * xmlXPathNodeSetClear:
+ * @set:  the node set to clear
+ *
+ * Clears the list from all temporary XPath objects (e.g. namespace nodes
+ * are feed), but does *not* free the list itself. Sets the length of the
+ * list to 0.
+ */
+static void
+xmlXPathNodeSetClear(xmlNodeSetPtr set, int hasNsNodes)
+{
+    xmlXPathNodeSetClearFromPos(set, 0, hasNsNodes);
+}
+
+/**
+ * xmlXPathNodeSetKeepLast:
+ * @set: the node set to be cleared
+ *
+ * Move the last node to the first position and clear temporary XPath objects
+ * (e.g. namespace nodes) from all other nodes. Sets the length of the list
+ * to 1.
+ */
+static void
+xmlXPathNodeSetKeepLast(xmlNodeSetPtr set)
+{
+    int i;
+    xmlNodePtr node;
+
+    if ((set == NULL) || (set->nodeNr <= 1))
+	return;
+    for (i = 0; i < set->nodeNr - 1; i++) {
+        node = set->nodeTab[i];
+        if ((node != NULL) &&
+            (node->type == XML_NAMESPACE_DECL))
+            xmlXPathNodeSetFreeNs((xmlNsPtr) node);
+    }
+    set->nodeTab[0] = set->nodeTab[set->nodeNr-1];
+    set->nodeNr = 1;
+}
+
+/**
  * xmlXPathFreeValueTree:
  * @obj:  the xmlNodeSetPtr to free
  *
@@ -4560,7 +4568,7 @@
 	    xmlFree(strval);
 	}
     }
-    xmlHashFree(hash, (xmlHashDeallocator) xmlFree);
+    xmlHashFree(hash, xmlHashDefaultDeallocator);
     return(ret);
 }
 
@@ -4872,7 +4880,9 @@
 	return(-1);
     if (f == NULL)
         return(xmlHashRemoveEntry2(ctxt->funcHash, name, ns_uri, NULL));
-    return(xmlHashAddEntry2(ctxt->funcHash, name, ns_uri, XML_CAST_FPTR(f)));
+XML_IGNORE_PEDANTIC_WARNINGS
+    return(xmlHashAddEntry2(ctxt->funcHash, name, ns_uri, (void *) f));
+XML_POP_WARNINGS
 }
 
 /**
@@ -4953,7 +4963,9 @@
     if (ctxt->funcHash == NULL)
 	return(NULL);
 
-    XML_CAST_FPTR(ret) = xmlHashLookup2(ctxt->funcHash, name, ns_uri);
+XML_IGNORE_PEDANTIC_WARNINGS
+    ret = (xmlXPathFunction) xmlHashLookup2(ctxt->funcHash, name, ns_uri);
+XML_POP_WARNINGS
     return(ret);
 }
 
@@ -5022,10 +5034,9 @@
 	return(-1);
     if (value == NULL)
         return(xmlHashRemoveEntry2(ctxt->varHash, name, ns_uri,
-	                           (xmlHashDeallocator)xmlXPathFreeObject));
+	                           xmlXPathFreeObjectEntry));
     return(xmlHashUpdateEntry2(ctxt->varHash, name, ns_uri,
-			       (void *) value,
-			       (xmlHashDeallocator)xmlXPathFreeObject));
+			       (void *) value, xmlXPathFreeObjectEntry));
 }
 
 /**
@@ -5115,7 +5126,7 @@
     if (ctxt == NULL)
 	return;
 
-    xmlHashFree(ctxt->varHash, (xmlHashDeallocator)xmlXPathFreeObject);
+    xmlHashFree(ctxt->varHash, xmlXPathFreeObjectEntry);
     ctxt->varHash = NULL;
 }
 
@@ -5146,9 +5157,9 @@
 	return(-1);
     if (ns_uri == NULL)
         return(xmlHashRemoveEntry(ctxt->nsHash, prefix,
-	                          (xmlHashDeallocator)xmlFree));
+	                          xmlHashDefaultDeallocator));
     return(xmlHashUpdateEntry(ctxt->nsHash, prefix, (void *) xmlStrdup(ns_uri),
-			      (xmlHashDeallocator)xmlFree));
+			      xmlHashDefaultDeallocator));
 }
 
 /**
@@ -5197,7 +5208,7 @@
     if (ctxt == NULL)
 	return;
 
-    xmlHashFree(ctxt->nsHash, (xmlHashDeallocator)xmlFree);
+    xmlHashFree(ctxt->nsHash, xmlHashDefaultDeallocator);
     ctxt->nsHash = NULL;
 }
 
@@ -5511,6 +5522,11 @@
     xmlFree(obj);
 }
 
+static void
+xmlXPathFreeObjectEntry(void *obj, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlXPathFreeObject((xmlXPathObjectPtr) obj);
+}
+
 /**
  * xmlXPathReleaseObject:
  * @obj:  the xmlXPathObjectPtr to free or to cache
@@ -5700,7 +5716,8 @@
     default:
 	if (xmlXPathIsNaN(val)) {
 	    ret = xmlStrdup((const xmlChar *) "NaN");
-	} else if (val == 0 && xmlXPathGetSign(val) != 0) {
+	} else if (val == 0) {
+            /* Omit sign for negative zero. */
 	    ret = xmlStrdup((const xmlChar *) "0");
 	} else {
 	    /* could be improved */
@@ -5882,10 +5899,10 @@
     double ret;
 
     if (node == NULL)
-	return(xmlXPathNAN);
+	return(NAN);
     strval = xmlXPathCastNodeToString(node);
     if (strval == NULL)
-	return(xmlXPathNAN);
+	return(NAN);
     ret = xmlXPathCastStringToNumber(strval);
     xmlFree(strval);
 
@@ -5906,7 +5923,7 @@
     double ret;
 
     if (ns == NULL)
-	return(xmlXPathNAN);
+	return(NAN);
     str = xmlXPathCastNodeSetToString(ns);
     ret = xmlXPathCastStringToNumber(str);
     xmlFree(str);
@@ -5926,13 +5943,13 @@
     double ret = 0.0;
 
     if (val == NULL)
-	return(xmlXPathNAN);
+	return(NAN);
     switch (val->type) {
     case XPATH_UNDEFINED:
 #ifdef DEGUB_EXPR
 	xmlGenericError(xmlGenericErrorContext, "NUMBER: undefined\n");
 #endif
-	ret = xmlXPathNAN;
+	ret = NAN;
 	break;
     case XPATH_NODESET:
     case XPATH_XSLT_TREE:
@@ -5952,7 +5969,7 @@
     case XPATH_RANGE:
     case XPATH_LOCATIONSET:
 	TODO;
-	ret = xmlXPathNAN;
+	ret = NAN;
 	break;
     }
     return(ret);
@@ -6289,7 +6306,15 @@
  */
 void
 xmlXPathFreeParserContext(xmlXPathParserContextPtr ctxt) {
+    int i;
+
     if (ctxt->valueTab != NULL) {
+        for (i = 0; i < ctxt->valueNr; i++) {
+            if (ctxt->context)
+                xmlXPathReleaseObject(ctxt->context, ctxt->valueTab[i]);
+            else
+                xmlXPathFreeObject(ctxt->valueTab[i]);
+        }
         xmlFree(ctxt->valueTab);
     }
     if (ctxt->comp != NULL) {
@@ -6371,16 +6396,12 @@
     }
     while (tmp != NULL) {
 	switch (tmp->type) {
-	    case XML_COMMENT_NODE:
-	    case XML_PI_NODE:
 	    case XML_CDATA_SECTION_NODE:
 	    case XML_TEXT_NODE:
 		string = tmp->content;
 		break;
-	    case XML_NAMESPACE_DECL:
-		string = ((xmlNsPtr)tmp)->href;
-		break;
 	    default:
+                string = NULL;
 		break;
 	}
 	if ((string != NULL) && (string[0] != 0)) {
@@ -6702,7 +6723,13 @@
 	    valuePush(ctxt, val);
 	    return(xmlXPathCompareValues(ctxt, inf, strict));
 	default:
-	    TODO
+            xmlGenericError(xmlGenericErrorContext,
+                    "xmlXPathCompareNodeSetValue: Can't compare node set "
+                    "and object of type %d\n",
+                    val->type);
+            xmlXPathReleaseObject(ctxt->context, arg);
+            xmlXPathReleaseObject(ctxt->context, val);
+            XP_ERROR0(XPATH_INVALID_TYPE);
     }
     return(0);
 }
@@ -7010,7 +7037,7 @@
 		    valuePush(ctxt, arg2);
 		    xmlXPathNumberFunction(ctxt, 1);
 		    arg2 = valuePop(ctxt);
-		    /* no break on purpose */
+                    /* Falls through. */
 		case XPATH_NUMBER:
 		    /* Hand check NaN and Infinity equalities */
 		    if (xmlXPathIsNaN(arg1->floatval) ||
@@ -7446,20 +7473,7 @@
     if ((ctxt == NULL) || (ctxt->context == NULL)) return;
     CAST_TO_NUMBER;
     CHECK_TYPE(XPATH_NUMBER);
-    if (xmlXPathIsNaN(ctxt->value->floatval))
-        ctxt->value->floatval=xmlXPathNAN;
-    else if (xmlXPathIsInf(ctxt->value->floatval) == 1)
-        ctxt->value->floatval=xmlXPathNINF;
-    else if (xmlXPathIsInf(ctxt->value->floatval) == -1)
-        ctxt->value->floatval=xmlXPathPINF;
-    else if (ctxt->value->floatval == 0) {
-        if (xmlXPathGetSign(ctxt->value->floatval) == 0)
-	    ctxt->value->floatval = xmlXPathNZERO;
-	else
-	    ctxt->value->floatval = 0;
-    }
-    else
-        ctxt->value->floatval = - ctxt->value->floatval;
+    ctxt->value->floatval = -ctxt->value->floatval;
 }
 
 /**
@@ -7551,25 +7565,7 @@
     xmlXPathReleaseObject(ctxt->context, arg);
     CAST_TO_NUMBER;
     CHECK_TYPE(XPATH_NUMBER);
-    if (xmlXPathIsNaN(val) || xmlXPathIsNaN(ctxt->value->floatval))
-	ctxt->value->floatval = xmlXPathNAN;
-    else if (val == 0 && xmlXPathGetSign(val) != 0) {
-	if (ctxt->value->floatval == 0)
-	    ctxt->value->floatval = xmlXPathNAN;
-	else if (ctxt->value->floatval > 0)
-	    ctxt->value->floatval = xmlXPathNINF;
-	else if (ctxt->value->floatval < 0)
-	    ctxt->value->floatval = xmlXPathPINF;
-    }
-    else if (val == 0) {
-	if (ctxt->value->floatval == 0)
-	    ctxt->value->floatval = xmlXPathNAN;
-	else if (ctxt->value->floatval > 0)
-	    ctxt->value->floatval = xmlXPathPINF;
-	else if (ctxt->value->floatval < 0)
-	    ctxt->value->floatval = xmlXPathNINF;
-    } else
-	ctxt->value->floatval /= val;
+    ctxt->value->floatval /= val;
 }
 
 /**
@@ -7594,7 +7590,7 @@
     CHECK_TYPE(XPATH_NUMBER);
     arg1 = ctxt->value->floatval;
     if (arg2 == 0)
-	ctxt->value->floatval = xmlXPathNAN;
+	ctxt->value->floatval = NAN;
     else {
 	ctxt->value->floatval = fmod(arg1, arg2);
     }
@@ -8114,12 +8110,12 @@
 		return(NULL);
 	    return(cur->parent);
 	case XML_ATTRIBUTE_NODE: {
-	    xmlAttrPtr att = (xmlAttrPtr) ctxt->context->node;
+	    xmlAttrPtr att = (xmlAttrPtr) cur;
 
 	    return(att->parent);
 	}
 	case XML_NAMESPACE_DECL: {
-	    xmlNsPtr ns = (xmlNsPtr) ctxt->context->node;
+	    xmlNsPtr ns = (xmlNsPtr) cur;
 
 	    if ((ns->next != NULL) &&
 	        (ns->next->type != XML_NAMESPACE_DECL))
@@ -8236,10 +8232,16 @@
 
     if (cur == NULL) {
         cur = ctxt->context->node;
-        if (cur->type == XML_NAMESPACE_DECL)
-            return(NULL);
-        if (cur->type == XML_ATTRIBUTE_NODE)
+        if (cur->type == XML_ATTRIBUTE_NODE) {
             cur = cur->parent;
+        } else if (cur->type == XML_NAMESPACE_DECL) {
+            xmlNsPtr ns = (xmlNsPtr) cur;
+
+            if ((ns->next == NULL) ||
+                (ns->next->type == XML_NAMESPACE_DECL))
+                return (NULL);
+            cur = (xmlNodePtr) ns->next;
+        }
     }
     if (cur == NULL) return(NULL) ; /* ERROR */
     if (cur->next != NULL) return(cur->next) ;
@@ -8300,10 +8302,16 @@
     if ((ctxt == NULL) || (ctxt->context == NULL)) return(NULL);
     if (cur == NULL) {
         cur = ctxt->context->node;
-        if (cur->type == XML_NAMESPACE_DECL)
-            return(NULL);
-        if (cur->type == XML_ATTRIBUTE_NODE)
-            return(cur->parent);
+        if (cur->type == XML_ATTRIBUTE_NODE) {
+            cur = cur->parent;
+        } else if (cur->type == XML_NAMESPACE_DECL) {
+            xmlNsPtr ns = (xmlNsPtr) cur;
+
+            if ((ns->next == NULL) ||
+                (ns->next->type == XML_NAMESPACE_DECL))
+                return (NULL);
+            cur = (xmlNodePtr) ns->next;
+        }
     }
     if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL))
 	return (NULL);
@@ -8348,8 +8356,16 @@
         cur = ctxt->context->node;
         if (cur == NULL)
             return (NULL);
-        if (cur->type == XML_NAMESPACE_DECL)
-            return (NULL);
+        if (cur->type == XML_ATTRIBUTE_NODE) {
+            cur = cur->parent;
+        } else if (cur->type == XML_NAMESPACE_DECL) {
+            xmlNsPtr ns = (xmlNsPtr) cur;
+
+            if ((ns->next == NULL) ||
+                (ns->next->type == XML_NAMESPACE_DECL))
+                return (NULL);
+            cur = (xmlNodePtr) ns->next;
+        }
         ctxt->ancestor = cur->parent;
     }
     if (cur->type == XML_NAMESPACE_DECL)
@@ -9634,18 +9650,6 @@
     xmlXPathReleaseObject(ctxt->context, cur);
 }
 
-/*
- * To assure working code on multiple platforms, we want to only depend
- * upon the characteristic truncation of converting a floating point value
- * to an integer.  Unfortunately, because of the different storage sizes
- * of our internal floating point value (double) and integer (int), we
- * can't directly convert (see bug 301162).  This macro is a messy
- * 'workaround'
- */
-#define XTRUNC(f, v)            \
-    f = fmod((v), INT_MAX);     \
-    f = (v) - (f) + (double)((int)(f));
-
 /**
  * xmlXPathFloorFunction:
  * @ctxt:  the XPath Parser context
@@ -9658,19 +9662,11 @@
  */
 void
 xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs) {
-    double f;
-
     CHECK_ARITY(1);
     CAST_TO_NUMBER;
     CHECK_TYPE(XPATH_NUMBER);
 
-    XTRUNC(f, ctxt->value->floatval);
-    if (f != ctxt->value->floatval) {
-	if (ctxt->value->floatval > 0)
-	    ctxt->value->floatval = f;
-	else
-	    ctxt->value->floatval = f - 1;
-    }
+    ctxt->value->floatval = floor(ctxt->value->floatval);
 }
 
 /**
@@ -9685,28 +9681,11 @@
  */
 void
 xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs) {
-    double f;
-
     CHECK_ARITY(1);
     CAST_TO_NUMBER;
     CHECK_TYPE(XPATH_NUMBER);
 
-#if 0
     ctxt->value->floatval = ceil(ctxt->value->floatval);
-#else
-    XTRUNC(f, ctxt->value->floatval);
-    if (f != ctxt->value->floatval) {
-	if (ctxt->value->floatval > 0)
-	    ctxt->value->floatval = f + 1;
-	else {
-	    if (ctxt->value->floatval < 0 && f == 0)
-	        ctxt->value->floatval = xmlXPathNZERO;
-	    else
-	        ctxt->value->floatval = f;
-	}
-
-    }
-#endif
 }
 
 /**
@@ -9718,7 +9697,7 @@
  *    number round(number)
  * The round function returns the number that is closest to the
  * argument and that is an integer. If there are two such numbers,
- * then the one that is even is returned.
+ * then the one that is closest to positive infinity is returned.
  */
 void
 xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs) {
@@ -9728,25 +9707,17 @@
     CAST_TO_NUMBER;
     CHECK_TYPE(XPATH_NUMBER);
 
-    if ((xmlXPathIsNaN(ctxt->value->floatval)) ||
-	(xmlXPathIsInf(ctxt->value->floatval) == 1) ||
-	(xmlXPathIsInf(ctxt->value->floatval) == -1) ||
-	(ctxt->value->floatval == 0.0))
-	return;
+    f = ctxt->value->floatval;
 
-    XTRUNC(f, ctxt->value->floatval);
-    if (ctxt->value->floatval < 0) {
-	if (ctxt->value->floatval < f - 0.5)
-	    ctxt->value->floatval = f - 1;
-	else
-	    ctxt->value->floatval = f;
-	if (ctxt->value->floatval == 0)
-	    ctxt->value->floatval = xmlXPathNZERO;
-    } else {
-	if (ctxt->value->floatval < f + 0.5)
-	    ctxt->value->floatval = f;
-	else
-	    ctxt->value->floatval = f + 1;
+    if ((f >= -0.5) && (f < 0.5)) {
+        /* Handles negative zero. */
+        ctxt->value->floatval *= 0.0;
+    }
+    else {
+        double rounded = floor(f);
+        if (f - rounded >= 0.5)
+            rounded += 1.0;
+        ctxt->value->floatval = rounded;
     }
 }
 
@@ -10056,20 +10027,6 @@
 
 #define MAX_FRAC 20
 
-/*
- * These are used as divisors for the fractional part of a number.
- * Since the table includes 1.0 (representing '0' fractional digits),
- * it must be dimensioned at MAX_FRAC+1 (bug 133921)
- */
-static double my_pow10[MAX_FRAC+1] = {
-    1.0, 10.0, 100.0, 1000.0, 10000.0,
-    100000.0, 1000000.0, 10000000.0, 100000000.0, 1000000000.0,
-    10000000000.0, 100000000000.0, 1000000000000.0, 10000000000000.0,
-    100000000000000.0,
-    1000000000000000.0, 10000000000000000.0, 100000000000000000.0,
-    1000000000000000000.0, 10000000000000000000.0, 100000000000000000000.0
-};
-
 /**
  * xmlXPathStringEvalNumber:
  * @str:  A string to scan
@@ -10101,7 +10058,7 @@
     if (cur == NULL) return(0);
     while (IS_BLANK_CH(*cur)) cur++;
     if ((*cur != '.') && ((*cur < '0') || (*cur > '9')) && (*cur != '-')) {
-        return(xmlXPathNAN);
+        return(NAN);
     }
     if (*cur == '-') {
 	isneg = 1;
@@ -10132,20 +10089,25 @@
 #endif
 
     if (*cur == '.') {
-	int v, frac = 0;
+	int v, frac = 0, max;
 	double fraction = 0;
 
         cur++;
 	if (((*cur < '0') || (*cur > '9')) && (!ok)) {
-	    return(xmlXPathNAN);
+	    return(NAN);
 	}
-	while (((*cur >= '0') && (*cur <= '9')) && (frac < MAX_FRAC)) {
+        while (*cur == '0') {
+	    frac = frac + 1;
+	    cur++;
+        }
+        max = frac + MAX_FRAC;
+	while (((*cur >= '0') && (*cur <= '9')) && (frac < max)) {
 	    v = (*cur - '0');
 	    fraction = fraction * 10 + v;
 	    frac = frac + 1;
 	    cur++;
 	}
-	fraction /= my_pow10[frac];
+	fraction /= pow(10.0, frac);
 	ret = ret + fraction;
 	while ((*cur >= '0') && (*cur <= '9'))
 	    cur++;
@@ -10159,12 +10121,13 @@
         cur++;
       }
       while ((*cur >= '0') && (*cur <= '9')) {
-	exponent = exponent * 10 + (*cur - '0');
+        if (exponent < 1000000)
+	  exponent = exponent * 10 + (*cur - '0');
 	cur++;
       }
     }
     while (IS_BLANK_CH(*cur)) cur++;
-    if (*cur != 0) return(xmlXPathNAN);
+    if (*cur != 0) return(NAN);
     if (isneg) ret = -ret;
     if (is_exponent_negative) exponent = -exponent;
     ret *= pow(10.0, (double)exponent);
@@ -10221,20 +10184,25 @@
     }
 #endif
     if (CUR == '.') {
-	int v, frac = 0;
+	int v, frac = 0, max;
 	double fraction = 0;
 
         NEXT;
         if (((CUR < '0') || (CUR > '9')) && (!ok)) {
             XP_ERROR(XPATH_NUMBER_ERROR);
         }
-        while ((CUR >= '0') && (CUR <= '9') && (frac < MAX_FRAC)) {
+        while (CUR == '0') {
+            frac = frac + 1;
+            NEXT;
+        }
+        max = frac + MAX_FRAC;
+        while ((CUR >= '0') && (CUR <= '9') && (frac < max)) {
 	    v = (CUR - '0');
 	    fraction = fraction * 10 + v;
 	    frac = frac + 1;
             NEXT;
         }
-        fraction /= my_pow10[frac];
+        fraction /= pow(10.0, frac);
         ret = ret + fraction;
         while ((CUR >= '0') && (CUR <= '9'))
             NEXT;
@@ -10248,7 +10216,8 @@
 	    NEXT;
 	}
         while ((CUR >= '0') && (CUR <= '9')) {
-            exponent = exponent * 10 + (CUR - '0');
+            if (exponent < 1000000)
+                exponent = exponent * 10 + (CUR - '0');
             NEXT;
         }
         if (is_exponent_negative)
@@ -10379,6 +10348,7 @@
     NEXT;
     name = xmlXPathParseQName(ctxt, &prefix);
     if (name == NULL) {
+        xmlFree(prefix);
 	XP_ERROR(XPATH_VARIABLE_REF_ERROR);
     }
     ctxt->comp->last = -1;
@@ -10452,6 +10422,8 @@
 #endif
 
     if (CUR != '(') {
+	xmlFree(name);
+	xmlFree(prefix);
 	XP_ERROR(XPATH_EXPR_ERROR);
     }
     NEXT;
@@ -10480,6 +10452,8 @@
 	    nbargs++;
 	    if (CUR == ')') break;
 	    if (CUR != ',') {
+		xmlFree(name);
+		xmlFree(prefix);
 		XP_ERROR(XPATH_EXPR_ERROR);
 	    }
 	    NEXT;
@@ -11915,11 +11889,11 @@
 		}
 	    }
 
-            frame = xmlXPathSetFrame(ctxt);
 	    valuePush(ctxt, contextObj);
+            frame = xmlXPathSetFrame(ctxt);
 	    res = xmlXPathCompOpEvalToBoolean(ctxt, exprOp, 1);
-            tmp = valuePop(ctxt);
             xmlXPathPopFrame(ctxt, frame);
+            tmp = valuePop(ctxt);
 
 	    if ((ctxt->error != XPATH_EXPRESSION_OK) || (res == -1)) {
                 while (tmp != contextObj) {
@@ -12054,6 +12028,8 @@
 	(exprOp->value4 != NULL) &&
 	(((xmlXPathObjectPtr) exprOp->value4)->type == XPATH_NUMBER))
     {
+        double floatval = ((xmlXPathObjectPtr) exprOp->value4)->floatval;
+
 	/*
 	* We have a "[n]" predicate here.
 	* TODO: Unfortunately this simplistic test here is not
@@ -12064,13 +12040,12 @@
 	* like it "[position() < 5]", is also not detected.
 	* Maybe we could rewrite the AST to ease the optimization.
 	*/
-	*maxPos = (int) ((xmlXPathObjectPtr) exprOp->value4)->floatval;
 
-	if (((xmlXPathObjectPtr) exprOp->value4)->floatval ==
-	    (float) *maxPos)
-	{
-	    return(1);
-	}
+        if ((floatval > INT_MIN) && (floatval < INT_MAX)) {
+	    *maxPos = (int) floatval;
+            if (floatval == (double) *maxPos)
+                return(1);
+        }
     }
     return(0);
 }
@@ -12411,7 +12386,7 @@
 			    default:
 				break;
 			}
-		    } else if (cur->type == type) {
+		    } else if (cur->type == (xmlElementType) type) {
 			if (cur->type == XML_NAMESPACE_DECL)
 			    XP_TEST_HIT_NS
 			else
@@ -12772,11 +12747,15 @@
                 xmlXPathCompOpEvalFirst(ctxt, &comp->steps[op->ch2],
                                         first);
 	    CHECK_ERROR0;
-            CHECK_TYPE0(XPATH_NODESET);
-            arg2 = valuePop(ctxt);
 
-            CHECK_TYPE0(XPATH_NODESET);
+            arg2 = valuePop(ctxt);
             arg1 = valuePop(ctxt);
+            if ((arg1 == NULL) || (arg1->type != XPATH_NODESET) ||
+                (arg2 == NULL) || (arg2->type != XPATH_NODESET)) {
+	        xmlXPathReleaseObject(ctxt->context, arg1);
+	        xmlXPathReleaseObject(ctxt->context, arg2);
+                XP_ERROR0(XPATH_INVALID_TYPE);
+            }
 
             arg1->nodesetval = xmlXPathNodeSetMerge(arg1->nodesetval,
                                                     arg2->nodesetval);
@@ -12907,11 +12886,15 @@
                 && (ctxt->value->nodesetval != NULL)
                 && (ctxt->value->nodesetval->nodeNr >= 1)) { /* TODO: NOP ? */
             }
-            CHECK_TYPE0(XPATH_NODESET);
-            arg2 = valuePop(ctxt);
 
-            CHECK_TYPE0(XPATH_NODESET);
+            arg2 = valuePop(ctxt);
             arg1 = valuePop(ctxt);
+            if ((arg1 == NULL) || (arg1->type != XPATH_NODESET) ||
+                (arg2 == NULL) || (arg2->type != XPATH_NODESET)) {
+	        xmlXPathReleaseObject(ctxt->context, arg1);
+	        xmlXPathReleaseObject(ctxt->context, arg2);
+                XP_ERROR0(XPATH_INVALID_TYPE);
+            }
 
             arg1->nodesetval = xmlXPathNodeSetMerge(arg1->nodesetval,
                                                     arg2->nodesetval);
@@ -13022,13 +13005,7 @@
 		(ctxt->value->nodesetval != NULL) &&
 		(ctxt->value->nodesetval->nodeTab != NULL) &&
 		(ctxt->value->nodesetval->nodeNr > 1)) {
-		ctxt->value->nodesetval->nodeTab[0] =
-		    ctxt->value->nodesetval->nodeTab[ctxt->
-		    value->
-		    nodesetval->
-		    nodeNr -
-		    1];
-		ctxt->value->nodesetval->nodeNr = 1;
+                xmlXPathNodeSetKeepLast(ctxt->value->nodesetval);
 		*first = *(ctxt->value->nodesetval->nodeTab);
 	    }
 	    return (total);
@@ -13445,11 +13422,15 @@
 	    ctxt->context->contextSize = cs;
             total += xmlXPathCompOpEval(ctxt, &comp->steps[op->ch2]);
 	    CHECK_ERROR0;
-            CHECK_TYPE0(XPATH_NODESET);
-            arg2 = valuePop(ctxt);
 
-            CHECK_TYPE0(XPATH_NODESET);
+            arg2 = valuePop(ctxt);
             arg1 = valuePop(ctxt);
+            if ((arg1 == NULL) || (arg1->type != XPATH_NODESET) ||
+                (arg2 == NULL) || (arg2->type != XPATH_NODESET)) {
+	        xmlXPathReleaseObject(ctxt->context, arg1);
+	        xmlXPathReleaseObject(ctxt->context, arg2);
+                XP_ERROR0(XPATH_INVALID_TYPE);
+            }
 
 	    if ((arg1->nodesetval == NULL) ||
 		((arg2->nodesetval != NULL) &&
@@ -13507,10 +13488,8 @@
                         xmlXPathCompOpEval(ctxt, &comp->steps[op->ch1]);
                 if (op->value5 == NULL) {
 		    val = xmlXPathVariableLookup(ctxt->context, op->value4);
-		    if (val == NULL) {
-			ctxt->error = XPATH_UNDEF_VARIABLE_ERROR;
-			return(0);
-		    }
+		    if (val == NULL)
+			XP_ERROR0(XPATH_UNDEF_VARIABLE_ERROR);
                     valuePush(ctxt, val);
 		} else {
                     const xmlChar *URI;
@@ -13525,10 +13504,8 @@
                     }
 		    val = xmlXPathVariableLookupNS(ctxt->context,
                                                        op->value4, URI);
-		    if (val == NULL) {
-			ctxt->error = XPATH_UNDEF_VARIABLE_ERROR;
-			return(0);
-		    }
+		    if (val == NULL)
+			XP_ERROR0(XPATH_UNDEF_VARIABLE_ERROR);
                     valuePush(ctxt, val);
                 }
                 return (total);
@@ -13565,7 +13542,7 @@
 		    }
                 }
                 if (op->cache != NULL)
-                    XML_CAST_FPTR(func) = op->cache;
+                    func = op->cache;
                 else {
                     const xmlChar *URI = NULL;
 
@@ -13592,7 +13569,7 @@
                                         (char *)op->value4);
                         XP_ERROR0(XPATH_UNKNOWN_FUNC_ERROR);
                     }
-                    op->cache = XML_CAST_FPTR(func);
+                    op->cache = func;
                     op->cacheURI = (void *) URI;
                 }
                 oldFunc = ctxt->context->function;
@@ -13677,7 +13654,8 @@
                             (ctxt->value->type == XPATH_NODESET) &&
                             (ctxt->value->nodesetval != NULL) &&
                             (ctxt->value->nodesetval->nodeNr > 1))
-                            ctxt->value->nodesetval->nodeNr = 1;
+                            xmlXPathNodeSetClearFromPos(ctxt->value->nodesetval,
+                                                        1, 1);
                         return (total);
                     }
                 }
@@ -13711,15 +13689,8 @@
                             (ctxt->value->type == XPATH_NODESET) &&
                             (ctxt->value->nodesetval != NULL) &&
                             (ctxt->value->nodesetval->nodeTab != NULL) &&
-                            (ctxt->value->nodesetval->nodeNr > 1)) {
-                            ctxt->value->nodesetval->nodeTab[0] =
-                                ctxt->value->nodesetval->nodeTab[ctxt->
-                                                                 value->
-                                                                 nodesetval->
-                                                                 nodeNr -
-                                                                 1];
-                            ctxt->value->nodesetval->nodeNr = 1;
-                        }
+                            (ctxt->value->nodesetval->nodeNr > 1))
+                            xmlXPathNodeSetKeepLast(ctxt->value->nodesetval);
                         return (total);
                     }
                 }
@@ -14908,10 +14879,11 @@
 static int
 xmlXPathCompiledEvalInternal(xmlXPathCompExprPtr comp,
 			     xmlXPathContextPtr ctxt,
-			     xmlXPathObjectPtr *resObj,
+			     xmlXPathObjectPtr *resObjPtr,
 			     int toBool)
 {
     xmlXPathParserContextPtr pctxt;
+    xmlXPathObjectPtr resObj;
 #ifndef LIBXML_THREAD_ENABLED
     static int reentance = 0;
 #endif
@@ -14939,43 +14911,26 @@
     pctxt = xmlXPathCompParserContext(comp, ctxt);
     res = xmlXPathRunEval(pctxt, toBool);
 
-    if (resObj) {
-	if (pctxt->value == NULL) {
-	    xmlGenericError(xmlGenericErrorContext,
-		"xmlXPathCompiledEval: evaluation failed\n");
-	    *resObj = NULL;
-	} else {
-	    *resObj = valuePop(pctxt);
-	}
+    if (pctxt->error != XPATH_EXPRESSION_OK) {
+        resObj = NULL;
+    } else {
+        resObj = valuePop(pctxt);
+        if (resObj == NULL) {
+            if (!toBool)
+                xmlGenericError(xmlGenericErrorContext,
+                    "xmlXPathCompiledEval: No result on the stack.\n");
+        } else if (pctxt->valueNr > 0) {
+            xmlGenericError(xmlGenericErrorContext,
+                "xmlXPathCompiledEval: %d object(s) left on the stack.\n",
+                pctxt->valueNr);
+        }
     }
 
-    /*
-    * Pop all remaining objects from the stack.
-    */
-    if (pctxt->valueNr > 0) {
-	xmlXPathObjectPtr tmp;
-	int stack = 0;
+    if (resObjPtr)
+        *resObjPtr = resObj;
+    else
+        xmlXPathReleaseObject(ctxt, resObj);
 
-	do {
-	    tmp = valuePop(pctxt);
-	    if (tmp != NULL) {
-		stack++;
-		xmlXPathReleaseObject(ctxt, tmp);
-	    }
-	} while (tmp != NULL);
-	if ((stack != 0) &&
-	    ((toBool) || ((resObj) && (*resObj))))
-	{
-	    xmlGenericError(xmlGenericErrorContext,
-		"xmlXPathCompiledEval: %d objects left on the stack.\n",
-		stack);
-	}
-    }
-
-    if ((pctxt->error != XPATH_EXPRESSION_OK) && (resObj) && (*resObj)) {
-	xmlXPathFreeObject(*resObj);
-	*resObj = NULL;
-    }
     pctxt->comp = NULL;
     xmlXPathFreeParserContext(pctxt);
 #ifndef LIBXML_THREAD_ENABLED
@@ -15043,22 +14998,21 @@
         if (ctxt->comp != NULL)
 	    xmlXPathFreeCompExpr(ctxt->comp);
         ctxt->comp = comp;
-	if (ctxt->cur != NULL)
-	    while (*ctxt->cur != 0) ctxt->cur++;
     } else
 #endif
     {
 	xmlXPathCompileExpr(ctxt, 1);
-	if ((ctxt->error == XPATH_EXPRESSION_OK) &&
-	    (ctxt->comp != NULL) &&
-	    (ctxt->comp->nbStep > 1) &&
-	    (ctxt->comp->last >= 0))
-	{
+        CHECK_ERROR;
+
+        /* Check for trailing characters. */
+        if (*ctxt->cur != 0)
+            XP_ERROR(XPATH_EXPR_ERROR);
+
+	if ((ctxt->comp->nbStep > 1) && (ctxt->comp->last >= 0))
 	    xmlXPathOptimizeExpression(ctxt->comp,
 		&ctxt->comp->steps[ctxt->comp->last]);
-	}
     }
-    CHECK_ERROR;
+
     xmlXPathRunEval(ctxt, 0);
 }
 
@@ -15075,8 +15029,7 @@
 xmlXPathObjectPtr
 xmlXPathEval(const xmlChar *str, xmlXPathContextPtr ctx) {
     xmlXPathParserContextPtr ctxt;
-    xmlXPathObjectPtr res, tmp, init = NULL;
-    int stack = 0;
+    xmlXPathObjectPtr res;
 
     CHECK_CTXT(ctx)
 
@@ -15087,37 +15040,18 @@
         return NULL;
     xmlXPathEvalExpr(ctxt);
 
-    if (ctxt->value == NULL) {
-	xmlGenericError(xmlGenericErrorContext,
-		"xmlXPathEval: evaluation failed\n");
-	res = NULL;
-    } else if ((*ctxt->cur != 0) && (ctxt->comp != NULL)
-#ifdef XPATH_STREAMING
-            && (ctxt->comp->stream == NULL)
-#endif
-	      ) {
-	xmlXPatherror(ctxt, __FILE__, __LINE__, XPATH_EXPR_ERROR);
+    if (ctxt->error != XPATH_EXPRESSION_OK) {
 	res = NULL;
     } else {
 	res = valuePop(ctxt);
-    }
-
-    do {
-        tmp = valuePop(ctxt);
-	if (tmp != NULL) {
-	    if (tmp != init)
-		stack++;
-	    xmlXPathReleaseObject(ctx, tmp);
+        if (res == NULL) {
+            xmlGenericError(xmlGenericErrorContext,
+                "xmlXPathCompiledEval: No result on the stack.\n");
+        } else if (ctxt->valueNr > 0) {
+            xmlGenericError(xmlGenericErrorContext,
+                "xmlXPathCompiledEval: %d object(s) left on the stack.\n",
+                ctxt->valueNr);
         }
-    } while (tmp != NULL);
-    if ((stack != 0) && (res != NULL)) {
-	xmlGenericError(xmlGenericErrorContext,
-		"xmlXPathEval: %d object left on the stack\n",
-	        stack);
-    }
-    if (ctxt->error != XPATH_EXPRESSION_OK) {
-	xmlXPathFreeObject(res);
-	res = NULL;
     }
 
     xmlXPathFreeParserContext(ctxt);
@@ -15172,46 +15106,14 @@
  * @str:  the XPath expression
  * @ctxt:  the XPath context
  *
- * Evaluate the XPath expression in the given context.
+ * Alias for xmlXPathEval().
  *
  * Returns the xmlXPathObjectPtr resulting from the evaluation or NULL.
  *         the caller has to free the object.
  */
 xmlXPathObjectPtr
 xmlXPathEvalExpression(const xmlChar *str, xmlXPathContextPtr ctxt) {
-    xmlXPathParserContextPtr pctxt;
-    xmlXPathObjectPtr res, tmp;
-    int stack = 0;
-
-    CHECK_CTXT(ctxt)
-
-    xmlXPathInit();
-
-    pctxt = xmlXPathNewParserContext(str, ctxt);
-    if (pctxt == NULL)
-        return NULL;
-    xmlXPathEvalExpr(pctxt);
-
-    if ((*pctxt->cur != 0) || (pctxt->error != XPATH_EXPRESSION_OK)) {
-	xmlXPatherror(pctxt, __FILE__, __LINE__, XPATH_EXPR_ERROR);
-	res = NULL;
-    } else {
-	res = valuePop(pctxt);
-    }
-    do {
-        tmp = valuePop(pctxt);
-	if (tmp != NULL) {
-	    xmlXPathReleaseObject(ctxt, tmp);
-	    stack++;
-	}
-    } while (tmp != NULL);
-    if ((stack != 0) && (res != NULL)) {
-	xmlGenericError(xmlGenericErrorContext,
-		"xmlXPathEvalExpression: %d object left on the stack\n",
-	        stack);
-    }
-    xmlXPathFreeParserContext(pctxt);
-    return(res);
+    return(xmlXPathEval(str, ctxt));
 }
 
 /************************************************************************
diff --git a/xpointer.c b/xpointer.c
index d8a2e59..6a41f07 100644
--- a/xpointer.c
+++ b/xpointer.c
@@ -14,6 +14,11 @@
  * daniel@veillard.com
  */
 
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
 #define IN_LIBXML
 #include "libxml.h"
 
@@ -99,6 +104,10 @@
 			msg, extra);
 	return;
     }
+
+    /* cleanup current last error */
+    xmlResetError(&ctxt->context->lastError);
+
     ctxt->context->lastError.domain = XML_FROM_XPOINTER;
     ctxt->context->lastError.code = error;
     ctxt->context->lastError.level = XML_ERR_ERROR;
@@ -458,8 +467,6 @@
 	return(NULL);
     if (end == NULL)
 	return(NULL);
-    if (start->type != XPATH_POINT)
-	return(NULL);
     if (end->type != XPATH_POINT)
 	return(NULL);
 
@@ -542,7 +549,7 @@
 	    /*
 	     * Empty set ...
 	     */
-	    if (end->nodesetval->nodeNr <= 0)
+	    if ((end->nodesetval == NULL) || (end->nodesetval->nodeNr <= 0))
 		return(NULL);
 	    endNode = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1];
 	    endIndex = -1;
@@ -949,8 +956,10 @@
     if (name == NULL)
 	XP_ERROR(XPATH_EXPR_ERROR);
 
-    if (CUR != '(')
+    if (CUR != '(') {
+        xmlFree(name);
 	XP_ERROR(XPATH_EXPR_ERROR);
+    }
     NEXT;
     level = 1;
 
@@ -959,6 +968,7 @@
     buffer = (xmlChar *) xmlMallocAtomic(len * sizeof (xmlChar));
     if (buffer == NULL) {
         xmlXPtrErrMemory("allocating buffer");
+        xmlFree(name);
 	return;
     }
 
@@ -983,6 +993,7 @@
     *cur = 0;
 
     if ((level != 0) && (CUR == 0)) {
+        xmlFree(name);
 	xmlFree(buffer);
 	XP_ERROR(XPTR_SYNTAX_ERROR);
     }
@@ -1015,6 +1026,7 @@
 	    if (name2 == NULL) {
 		CUR_PTR = left;
 		xmlFree(buffer);
+                xmlFree(name);
 		XP_ERROR(XPATH_EXPR_ERROR);
 	    }
 	    xmlXPtrEvalChildSeq(ctxt, name2);
@@ -1361,7 +1373,7 @@
 		     */
 		    xmlNodeSetPtr set;
 		    set = tmp->nodesetval;
-		    if ((set->nodeNr != 1) ||
+		    if ((set == NULL) || (set->nodeNr != 1) ||
 			(set->nodeTab[0] != (xmlNodePtr) ctx->doc))
 			stack++;
 		} else
@@ -1796,8 +1808,8 @@
 		case XPATH_RANGE: {
 		    xmlNodePtr node = tmp->user;
 		    if (node != NULL) {
-			if (node->type == XML_ATTRIBUTE_NODE) {
-			    /* TODO: Namespace Nodes ??? */
+			if ((node->type == XML_ATTRIBUTE_NODE) ||
+                            (node->type == XML_NAMESPACE_DECL)) {
 			    xmlXPathFreeObject(obj);
 			    xmlXPtrFreeLocationSet(newset);
 			    XP_ERROR(XPTR_SYNTAX_ERROR);
@@ -1892,8 +1904,8 @@
 		case XPATH_RANGE: {
 		    xmlNodePtr node = tmp->user2;
 		    if (node != NULL) {
-			if (node->type == XML_ATTRIBUTE_NODE) {
-			    /* TODO: Namespace Nodes ??? */
+			if ((node->type == XML_ATTRIBUTE_NODE) ||
+                            (node->type == XML_NAMESPACE_DECL)) {
 			    xmlXPathFreeObject(obj);
 			    xmlXPtrFreeLocationSet(newset);
 			    XP_ERROR(XPTR_SYNTAX_ERROR);
@@ -2034,9 +2046,11 @@
 	xmlXPathFreeObject(set);
         XP_ERROR(XPATH_MEMORY_ERROR);
     }
-    for (i = 0;i < oldset->locNr;i++) {
-	xmlXPtrLocationSetAdd(newset,
-		xmlXPtrCoveringRange(ctxt, oldset->locTab[i]));
+    if (oldset != NULL) {
+        for (i = 0;i < oldset->locNr;i++) {
+            xmlXPtrLocationSetAdd(newset,
+                    xmlXPtrCoveringRange(ctxt, oldset->locTab[i]));
+        }
     }
 
     /*
diff --git a/xzlib.c b/xzlib.c
index 0dcb9f4..a839169 100644
--- a/xzlib.c
+++ b/xzlib.c
@@ -8,7 +8,7 @@
  */
 #define IN_LIBXML
 #include "libxml.h"
-#ifdef HAVE_LZMA_H
+#ifdef LIBXML_LZMA_ENABLED
 
 #include <string.h>
 #ifdef HAVE_ERRNO_H
@@ -31,10 +31,12 @@
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 #include <zlib.h>
 #endif
+#ifdef LIBXML_LZMA_ENABLED
 #include <lzma.h>
+#endif
 
 #include "xzlib.h"
 #include <libxml/xmlmemory.h>
@@ -74,7 +76,7 @@
     char padding1[32];          /* padding allowing to cope with possible
                                    extensions of above structure without
 				   too much side effect */
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     /* zlib inflate or deflate stream */
     z_stream zstrm;             /* stream structure in-place (not a pointer) */
 #endif
@@ -128,7 +130,7 @@
     xz_error(state, LZMA_OK, NULL);     /* clear error */
     state->pos = 0;             /* no uncompressed data yet */
     state->strm.avail_in = 0;   /* no input data yet */
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     state->zstrm.avail_in = 0;  /* no input data yet */
 #endif
 }
@@ -270,7 +272,7 @@
     return 0;
 }
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 static int
 xz_avail_zstrm(xz_statep state)
 {
@@ -347,7 +349,7 @@
     return 1;
 }
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 
 /* Get next byte from input, or -1 if end or error. */
 #define NEXT() ((strm->avail_in == 0 && xz_avail(state) == -1) ? -1 : \
@@ -406,14 +408,14 @@
         state->strm = init;
         state->strm.avail_in = 0;
         state->strm.next_in = NULL;
-        if (lzma_auto_decoder(&state->strm, UINT64_MAX, 0) != LZMA_OK) {
+        if (lzma_auto_decoder(&state->strm, 100000000, 0) != LZMA_OK) {
             xmlFree(state->out);
             xmlFree(state->in);
             state->size = 0;
             xz_error(state, LZMA_MEM_ERROR, "out of memory");
             return -1;
         }
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
         /* allocate inflate memory */
         state->zstrm.zalloc = Z_NULL;
         state->zstrm.zfree = Z_NULL;
@@ -447,7 +449,7 @@
         state->direct = 0;
         return 0;
     }
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     /* look for the gzip magic header bytes 31 and 139 */
     if (strm->next_in[0] == 31) {
         strm->avail_in--;
@@ -548,7 +550,7 @@
             action = LZMA_FINISH;
 
         /* decompress and handle errors */
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
         if (state->how == GZIP) {
             state->zstrm.avail_in = (uInt) state->strm.avail_in;
             state->zstrm.next_in = (Bytef *) state->strm.next_in;
@@ -581,18 +583,22 @@
             xz_error(state, LZMA_DATA_ERROR, "compressed data error");
             return -1;
         }
+        if (ret == LZMA_PROG_ERROR) {
+            xz_error(state, LZMA_PROG_ERROR, "compression error");
+            return -1;
+        }
     } while (strm->avail_out && ret != LZMA_STREAM_END);
 
     /* update available output and crc check value */
     state->have = had - strm->avail_out;
     state->next = strm->next_out - state->have;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     state->zstrm.adler =
         crc32(state->zstrm.adler, state->next, state->have);
 #endif
 
     if (ret == LZMA_STREAM_END) {
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
         if (state->how == GZIP) {
             if (gz_next4(state, &crc) == -1 || gz_next4(state, &len) == -1) {
                 xz_error(state, LZMA_DATA_ERROR, "unexpected end of file");
@@ -782,7 +788,7 @@
     /* free memory and close file */
     if (state->size) {
         lzma_end(&(state->strm));
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
         if (state->init == 1)
             inflateEnd(&(state->zstrm));
         state->init = 0;
@@ -791,8 +797,10 @@
         xmlFree(state->in);
     }
     xmlFree(state->path);
+    if ((state->msg != NULL) && (state->err != LZMA_MEM_ERROR))
+        xmlFree(state->msg);
     ret = close(state->fd);
     xmlFree(state);
     return ret ? ret : LZMA_OK;
 }
-#endif /* HAVE_LZMA_H */
+#endif /* LIBXML_LZMA_ENABLED */